git工作中常見問題解決方法

前言:git是一個非常偉大的工具,這篇博客將從實際工作場景遇到的問題出發,運用git解決實際問題,同時配上圖文,力求作爲一個最好的git參考博客!(每日更新一個情景)

情景一:清除工作區untracked files (2018.6.19)

情景 :源碼的開發過程中,某一個項目git倉庫中經常會出現一些untracked files,這些文件是git倉庫沒有管理的,需要清理掉。使用git status查看有兩個文件沒有被git管理:

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    Test.md
    Test2.md

解決方法:

git clean -df //清除當前目錄下所有git倉庫沒有管理的文件或目錄
git clean -df 文件路徑 //指定清除git倉庫中沒有管理的文件或目錄

清除完成後使用 git status查看,兩個untacking file 被刪除了:

On branch master
nothing to commit, working tree clean

情景二:暫存區回退到工作區(2018.6.20)

情景:有的時候我們需要把提交到暫存區的文件回退到工作區中。使用git status查看 Test文件現在存在於暫存區中,我們希望把Test回退到工作區中:

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   Test

操作:

git已經智能的提示我們使用git reset HEAD <file>...來讓暫存區文件回退到工作區。
git reset HEAD 文件路徑 //回退指定的文件到工作區
例如: git reset HEAD Test

再次查看git倉庫狀態,文件處於工作區了:

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    Test

情景三:打patch(2018.6.21)

情景:團隊開發中,自己本地修改了一些代碼,還沒有驗證是否正確,此時不能往git服務器去推送。恰好同事也在跟這個問題,他希望在我的基礎上進行追蹤,希望我把我已經修改的代碼給他。這個時候我可以通過打patch的方式實現。
操作:

生成patch1>首先將自己的修改的代碼本地進行提交即commit
2>git format-patch <指定的commitId>//注意生成的patch是這個commitId以上的提交

比如有三個commitId: ac4f6d -- bcef67 -- adfc34
執行git format-patch adfc34 就會生成兩個patch
第一個patch是 bcef67 -- adfc34 這兩次提交的差異文件
第二個patch是 ac4f6d -- bcef67 這兩次提交的差異文件

所以打patch就是生成提交之間的差異文件

應用patch:
git am 指定的patch
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章