Git常用命令總結

對分支進行操作

  • 查看當前分支:git status
  • 查看某個項目的所有分支:git branch
  • 切換到指定的分支:git checkout branchName
  • 合併某分支到當前分支:git merge branchName
  • 刪除某個分支:git branch -d branchName
  • 創建某個分支並切換到該分支上:git checkout -b branchName

添加文件到git倉庫

  • 添加修改的文件到本地倉庫:git add filePath (將文件添加到暫存區, filePath爲要添加的文件的路徑)
  • 一次提交添加過的文件:git commit -m "註釋內容"(將暫存區的所有文件提交到本地倉庫的分支上)
  • 推送代碼到遠程倉庫:git push (將代碼推送到遠程的git倉庫的對應的分支上)

特別注意:git有一個暫存區的概念,git add命令就是將工作區的修改添加到暫存區,最後通過git commit一次性將暫存區中的文件提交到倉庫的分支上。

回退到某個版本

  1. 查看已經提交的歷史,以便查看回退到哪個版本:git log
  2. 回滾到歷史的某個版本之後,想要再次回到原來的某個版本:git reflog
  3. 當提交出現問題,回退到某個版本:git reset --hard commit_id

對比工作區和分支代碼

  • 對比工作區項目和分支的區別:git diff
  • 對比工作區項目的某個文件和分支上某個文件的區別:git diff HEAD --本地項目的文件路徑

對修改文件進行還原

  • 工作區的文件修改出錯想要還原回修改前的狀態:git checkout -- 本地項目的文件路徑(該文件沒有添加到暫存區)
  • 工作區的文件已經添加到暫存區,這種情況下的還原分爲兩步:第一步先把暫存區中的修改進行還原,可以使用命令git reset HEAD -- 項目的文件路徑;第二步再把工作區中的修改進行還原,可以使用命令git checkout -- 本地項目的文件路徑

對工作區刪除的文件進行還原

  • 刪除工作區的文件:git rm 本地項目的文件路徑
  • 如果工作區的文件被誤刪除,這種情況下的還原分爲兩步:第一步先把暫存區中的修改進行還原,可以使用命令git reset HEAD -- 項目的文件路徑;第二步再把工作區中的修改進行還原,可以使用命令git checkout -- 本地項目的文件路徑

解決衝突

什麼情況下會出現衝突呢?兩個分支都對同一個文件進行了修改,在進行文件合併時,會遇到衝突的問題。這裏會分爲兩種情況,一種情況是工作區修改的文件沒有commit,另一種情況是已經進行了commit。

  1. 針對第一種情況,可以使用命令:git stash,然後再進行merge,最後解決衝突,提交即可
  2. 針對第二種情況,直接merge,解決衝突,提交即可。
  3. 合併分支:git merge --no-ff -m "註釋" branshName(這裏採用強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息)
  4. 在代碼合併時,假如要提交到遠程倉庫的dev分支,首先要將dev的代碼合併到自己的分支上,解決完衝突之後,把代碼提交到分支上之後。再切換到dev分支上,將自己分支的代碼合併到dev上

多分支同時開發

如果我們在dev分支上進行開發,開發了一半。這時需要再創建一個分支,處理其他的bug。這時不能提交開發了一半的代碼。此時需要切換到一個新的分支上來進行開發。這時怎麼處理這些未開發完的代碼呢?將開發了一半的代碼先‘凍結’

  • 使用git stash先‘凍結’代碼
  • 如果在其他分支上開發完成了,需要重新切回分支再繼續開發。首先通過命令git stash list來查看,然後通過git stash pop來恢復‘凍結’’的代碼。

推送分支

  • 推送代碼之前要首先更新一下分支的代碼:git pull,遇到衝突就處理衝突等。
  • 將分支代碼推送到遠程倉庫:git push origin branchName
  • 查看遠程倉庫的版本信息:git remote -v

寫在最後:git的分支的創建時只是創建了一個指針,當前的分支會指向最新的提交,HEAD會指向當前的分支。代碼每次提交,當前的分支會向前移動一步。所以我們會看到分支會是一條線,隨着不斷的提交,這條線會變得越來越長。所以git的創建分支和切換分支時都非常的快,其實只是創建了一個指針,在切換分支時,改變了分支的指向而已。

發佈了38 篇原創文章 · 獲贊 39 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章