reset current branch to here是git命令中的一種回滾操作。
其使用場(chǎng)景如下,
- 1)提交了多次錯(cuò)誤的提交,想回滾到之前的某次提交。
- 2)合并了錯(cuò)誤的分支,想回滾到合并之前。
該操作回滾到某次commit提交后,該commit提交之后提交的代碼都可以再次修改重新提交。
另外,還有一種情況,邊拉代碼邊提交代碼可能導(dǎo)致拉取的代碼一直有沖突,解決辦法可以把本地代碼暫存(git stash changes)起來(lái),然后回滾到某個(gè)commit(git reset current branch to here),最后在取出暫存代碼(git unstash changes),注意這里stash相當(dāng)于一個(gè)棧的操作進(jìn)行壓棧和出棧,如果有多次stash注意取的代碼是哪一次壓棧。
git reset current branch to here回滾有四種模式,soft,mixed,hard,keep。一般情況下,不要輕易使用hard模式,這幾種有什么區(qū)別,如何使用往下看,其中三種如下圖,
- Working Tree?當(dāng)前的工作區(qū)域
- Index/Stage?暫存區(qū)域,和git stash命令暫存的地方不一樣。使用git add xx,就可以將xx添加近Stage里面
- Repository?提交的歷史,即使用git commit提交后的結(jié)果
文件從工作樹(shù)存入到倉(cāng)庫(kù)的流程參考文末1。
git reset current branch to here的本質(zhì):是移動(dòng) HEAD 以及它所指向的 branch。幾種模式的主要區(qū)別是:
-
--soft:重置位置的同時(shí),保留working Tree工作目錄和index暫存區(qū)的內(nèi)容,只讓repository中的內(nèi)容和?reset?目標(biāo)節(jié)點(diǎn)保持一致,因此原節(jié)點(diǎn)和reset節(jié)點(diǎn)之間的【差異變更集】會(huì)放入index暫存區(qū)中(Staged files)。所以效果看起來(lái)就是工作目錄的內(nèi)容不變,暫存區(qū)原有的內(nèi)容也不變,只是原節(jié)點(diǎn)和Reset節(jié)點(diǎn)之間的所有差異都會(huì)放到暫存區(qū)中。
-
--mixed(默認(rèn)):重置位置的同時(shí),只保留Working Tree工作目錄的內(nèi)容,但會(huì)將?Index暫存區(qū)?和?Repository?中的內(nèi)容更改和reset目標(biāo)節(jié)點(diǎn)一致,因此原節(jié)點(diǎn)和Reset節(jié)點(diǎn)之間的【差異變更集】會(huì)放入Working Tree工作目錄中。所以效果看起來(lái)就是原節(jié)點(diǎn)和Reset節(jié)點(diǎn)之間的所有差異都會(huì)放到工作目錄中。
-
--hard:重置位置的同時(shí),直接將?working Tree工作目錄、?index 暫存區(qū)及?repository?都重置成目標(biāo)Reset節(jié)點(diǎn)的內(nèi)容,所以效果看起來(lái)等同于清空暫存區(qū)和工作區(qū)。
-
--keep:重置位置的同時(shí),直接將?working Tree工作目錄 和?repository?都重置成目標(biāo)Reset節(jié)點(diǎn)的內(nèi)容,index 暫存區(qū)?的內(nèi)容保持不變。
參考鏈接:
1、Git Reset 三種模式hard,soft,mix - 博客 - 編程圈 (bianchengquan.com)
2、Git 中文開(kāi)發(fā)手冊(cè) - 開(kāi)發(fā)者手冊(cè) - 云+社區(qū) - 騰訊云文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-804448.html
3、Git讓你從入門(mén)到精通,看這一篇就夠了! - SegmentFault 思否文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-804448.html
到了這里,關(guān)于git reset current branch to here的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!