git使用之 後悔藥--reset、stash、cherry-pick

1.工做區的代碼想撤銷

背景:有時候編寫了一大段代碼以後,想要撤銷更改(執行add操做以前),vue

 命令:git checkout -- <file路徑>git

使用git checkout -- 命令能夠查看更改文件路徑app

➜ bm-fe git:(tmptest) ✗ git checkout --
M src/management.vue
M config/index.jsit

再執行git checkout -- src/management.vue便可class

2.add到暫存區的代碼想撤銷

背景:執行add,未執行committest

步驟:登錄

1.將暫存區的代碼撤銷到工做區  命令:git reset head
2.將工做區的代碼撤銷(具體操做和’工做區的代碼想撤銷’一致)   命令:同【1.工做區的代碼想撤銷】file

3.提交到本地倉庫的代碼想撤銷

命令:git reset --hard headbug

  git reset --hard <版本號>apply

版本號查看:git log

4.本地更改暫存

背景:更改部分代碼以後,不想馬上提交;或者 正在處理一個需求的時候,須要緊急修復本項目的另外一個bug,可是本次代碼又不想修改

命令: 1.git stash save '暫存標識,好比:新增登陸頁面' 可將本分支本次更改暫存到git棧中。

  2. git stash list 查看git棧中全部暫存,出現list,如stash{0}: ...'暫存標識',stash{1}:...other stash...

  3. git stash apply stash{n}  找到你要繼續編輯的更改 應用便可(n爲list中的stash編號)

注意: 若是新建了文件,使用git stash save 命令,將沒法暫存新建的文件,若此時再切換到其餘分支,會把該部分文件,一同帶到新分支,且查看不出diff。解決方案:

    使用命令 1)git add .

        2)git stash save   '暫存標識'

5.cherry-pick合併其餘分支的commit

背景:作新需求時,忘記新建分支,直接在非生產分支上做出更改(好比commit:x100abcd),且可能更改處較多。

  這種狀況下,能夠 1.在生產分支新建,再挨個兒對比 commit x100abcd 的diff,把更改在新分支上重寫一遍;

          2.使用cherry-pick

命令: 1. git cherry-pick x100abcd(若是要合併多個commit,能夠空格隔開便可)

  2. git commit,git push

具體關於cherry-pick的更多用法,待續

 

--待續

相關文章
相關標籤/搜索