git工作中的使用技巧

1.現在的工作空間太亂了,工作到一半,臨時插需求。如何獲得一個乾淨的工作空間?

git reset --hard HEAD 使用這條命了,會使你的工作區和緩衝區和HEAD保持一致,原來的工作區的修改和緩存區的修改都不會保留,雖然能得到一個乾淨空間,但是一條很危險的命令。

應該使用git stash命令將工作區和緩存區的內容儲藏起來,當完成臨時的需求後,再使用git stash applygit stash pop恢復。

2.從Git歷史中刪除一個文件,比如有敏感信息(私鑰,內網ip等)或者不需要版本控制的超大文件

git filter-branch --tree-filter 'rm -f passwords.txt' HEAD

3.上一個的commit的message打錯字了,怎麼修改

git commit --amend -m ”Fix bug #42“

如果需要修改更早的commit的信息,怎麼做?

git rebase -i [需要更改的commit的父SHA]在交互式環境下修改。

4.追溯一個指定文件的歷史修改記錄

git blame [filename]

5.代碼有bug,commit很多次了,到底是哪一次修改把bug引入了?

git bisect start [終點SHA] [起點SHA]

git bisect good標記正確,git bisect bad標記錯誤,直到成功找到出問題的那一次提交爲止。這時,Git 會給出如下的提示。

XXXX is the first bad commit

6.提交的版本有bug,怎麼回退版本。

方法一:使用git revert HEAD,前提是工作區和暫存區是乾淨的,新增一次提交,抵消上一次的變化,不會改變歷史,首選方式,沒有任何丟失代碼的風險。

方法二:git reset [SHA],丟棄部分提交,默認暫存區清空,工作區不變動,使用了git reset --hard[SHA]使工作區的文件回到以前的狀態。

7.改寫代碼,發現還是原來的好,還沒有commit時,撤銷工作區的修改

git checkout -- [filename]

兩種情況:

1.修改後還沒有被放到暫存區,撤銷修改就回到和版本庫一模一樣的狀態。

2.已經添加到暫存區後,撤銷修改就回到添加到暫存區後的狀態。

8.撤銷暫存區已經add的文件

有以下三種方法:

  1. git reset HEAD [filename]
  2. git rm --cached [filename]
  3. git reset [filename]

9.本地有A_branch分支,遠程沒有A_branch分支

當你在A分支push的時候會報錯,同時會有提示:git push --set-upstream origin A_branch,即可以完成遠程新建一個A_branch分支,同時也會push上去。

10.遠程有B_branch分支,本地沒有B_branch分支

第一步:git fetch,獲取遠程新建的分支;

第二步:git checkout -b B_branch origin/B_branch 本地新建分支並和遠程分支關聯。

 

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