git入門總結

  1. Remote:遠程主倉庫
  2. Repository:本地倉庫
  3. Index:Git追蹤樹,暫存區
  4. workspace:本地工做區

通常代碼提交流程爲:

  • 工做區
  • git status 查看狀態
  • git add . 將全部修改加入暫存區
  • git commit -m "提交描述" 將代碼提交到本地倉庫
  • git push 將本地倉庫代碼更新到遠程倉庫

git add 進階

  • 場景1:工做區

當改動了工做區的某個文件時,想恢復修改前,用命令 git checkout --fliegit

  • 場景2:暫存區

當不但改動了工做區的某個文件時,想恢復修改前,還 git add 添加到了暫存區時,想丟棄修改,分兩步,第一步用命令 git reset HEAD <file>,就回到了場景1,第二步按場景1操做。fetch

git commit 進階

  • 場景1:更改commit 信息

git commit --amend -m 「新提交消息」優化

  • 場景2:漏提交
  1. git add <file>   git commit -m「提交消息」 此時,git 上會出現兩次 commit
  2. git add <file>   git commit --amend --no-edit --no-edit 表示提交消息不會更改,在 git 上僅爲一次提交
  • 場景3:提交了錯誤文件

git reset 刪除指定的 commit
--mixed 默認選項,會把暫存區裏的東西重置到指定提交狀態,而且指針指向這個提交。spa

修改版本庫,保留暫存區,保留工做區
git reset --soft HEAD~1
將版本庫軟回退1個版本,軟回退表示將本地版本庫的頭指針所有重置到指定版本,且將此次提交以後的全部變動都移動到暫存區。指針

修改版本庫,修改暫存區,修改工做區
git reset --hard HEAD~1
將版本庫回退1個版本,不單單是將本地版本庫的頭指針所有重置到指定版本,也會重置暫存區,而且會將工做區代碼也回退到這個版本code

git版本回退,回退到特定的commit_id版本,能夠經過git log查看提交歷史,以便肯定要回退到哪一個版本(commit 以後的即爲ID)
git reset --hard commit_idcdn


git revert
撤銷某次操做,這次操做以前和以後的commit和history都會保留,而且把此次撤銷做爲一次最新的提交。blog

// 撤銷前一次 commit
git revert HEAD
// 撤銷前前一次 commit
git revert HEAD^
// 撤銷指定的版本,撤銷也會做爲一次提交進行保存。
git revert commit-id
ip

git revert是提交一個新的版本,將須要revert的版本的內容再反向修改回去, 版本會遞增,不影響以前提交的內容rem

分支branch

  • 查看,建立項目分支
    git branch
    git checkout -b [name_new_branch]

  • 刪除分支
    git branch -d [name_branch]

  • 切換分支
    git checkout [branch-name]

  • 分區合併
    git merge [your_branch]
    注意:若是你合併master ,首先須要切換到master 分支下進行合併。

  • 分區對比
    git diff [branch]..[branch]

  • 重命名branch
    git branch -m [branch] [new_name_branch]

遠程 remote

  • 添加遠程地址
    git remote add origin [git_address]

  • 拉取遠程主機某分支的更新,再與本地的指定分支合併(至關與fetch加上了合併分支功能的操做)
    git pull

  • 分支推送到遠程的版本
    git push origin master

優化操做

拉取代碼 pull --rebase

tip:rebasegit 中,算得上是『危險行爲』,

使用 git pull --rebase比直接 pull 容易致使衝突的產生,若是預期衝突比較多的話,建議仍是直接 pull。

注意: git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase

相關文章
相關標籤/搜索