2018-08-14 git reset file

  1. http://cache.baiducontent.com/c?m=9d78d513d9961ae94fede53e5a5780200e54f137678987013894cd47c9221d030671e2c83a3f554196d27c1050f31902b7a57765377471eac4d5cb118ee7d1737cd47b6f23409b030fd71bacc94624cb37902db3e946b9&p=8b2a970286cc42ad58b0d4625b0a86&newp=816ec30d85cc43ff57ee967e514e94231610db2151d7d6126b82c825d7331b001c3bbfb423251a02d7cf776c06af425decf73d72310923a3dda5c91d9fb4c57479&user=baidu&fm=sc&query=git+reset+file&qid=9239f9000001f2a6&p1=3

Git reset

1. 文件從暫存區(qū)回退到工作區(qū) 2. 版本回退

1.1 git reset HEAD filename :回退文件,將文件從暫存區(qū)回退到工作區(qū)  //也可以使用 git reset filename

1.2 git reset HEAD^:回退版本,一個(gè)^表示一個(gè)版本,可以多個(gè),另外也可以使用 git reset HEAD~n這種形式。

如果HEAD指針指向的是master分支,那么HEAD還可以換成master,如果知道特定的commit-id,那么還可以直接使用 git reset commit-id如果不加參數(shù),實(shí)際上使用的是默認(rèn)的參數(shù)mixed,

我們可以使用git log -3來(lái)查看最近三次的提交,形如 git log -n ,n就是想要輸出的個(gè)數(shù),可以看到commit-id,author,date等信息

下面介紹三種參數(shù):

(1) soft 參數(shù):git reset --soft HEAD~1意為將版本庫(kù)軟回退1個(gè)版本,所謂軟回退表示將本地版本庫(kù)的頭指針全部重置到指定版本,且將這次提交之后的所有變更都移動(dòng)到暫存區(qū)

(2) 默認(rèn)的mixed參數(shù):git reset HEAD~1意為將版本庫(kù)回退1個(gè)版本,將本地版本庫(kù)的頭指針全部重置到指定版本,且會(huì)重置暫存區(qū),即這次提交之后的所有變更都移動(dòng)到未暫存階段

(3) hard參數(shù):git reset --hard HEAD~1意為將版本庫(kù)回退1個(gè)版本,但是不僅僅是將本地版本庫(kù)的頭指針全部重置到指定版本,也會(huì)重置暫存區(qū),并且會(huì)將工作區(qū)代碼也回退到這個(gè)版本

了解這三個(gè)參數(shù)已足夠我們?nèi)粘i_發(fā)使用了,** 注意soft參數(shù)與默認(rèn)參數(shù)都不會(huì)修改工作區(qū)代碼,只有hard參數(shù)才會(huì)修改工作區(qū)代碼。**

1.3 git reset配合 git commit追加提交

什么時(shí)候會(huì)用到追加提交,追加提交有什么優(yōu)點(diǎn)?

(1) 對(duì)未merge的版本庫(kù)中的提交不滿意,希望修改其中的某些信息,如代碼,如提交描述等,可以使用git commit --amend進(jìn)行追加提交,優(yōu)點(diǎn)是不會(huì)產(chǎn)生新的commit-id 

(2) 修改方法:如果想修改的不是最新一版的提交,那么可以通過(guò)git reset --hard HEAD~n將版本回退到需要的那版,如果想修改代碼,那么直接在工作區(qū)進(jìn)行代碼修改,

修改完之后git add到暫存區(qū)而不必再git pull,而如果是修改其他信息,那么可以直接使用git commit --amend進(jìn)行追加提交,git commit --amend命令會(huì)打開一個(gè)編輯器,可以修改其中的信息,

如果修改了代碼而不修改其他信息,則直接 Ctrl + X離開編輯器,再git push推送到遠(yuǎn)程服務(wù)器,如果也修改了其他信息,那么需要先使用Ctrl + M寫入信息,再Ctrl + X離開編輯器,再推送。

1.4 查看幫助

git reset -h | git reset --help

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 以下筆記主要參考gitgot,大致了解git使用和原理。 第一部分我們從個(gè)人的視角去研究如何用好Git,并且揭示G...
    carolwhite閱讀 2,531評(píng)論 0 1
  • 簡(jiǎn)介 Git是一個(gè)開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。 Git 與常用的版本控制工具 ...
    閩越布衣閱讀 2,875評(píng)論 0 18
  • 目錄 Git 筆記系列(一)—— Git簡(jiǎn)介 Git 筆記系列(二)—— Git工作流程 Git 筆記系列(三)—...
    吃蘑菇De大灰狼閱讀 1,446評(píng)論 0 3
  • 有時(shí)候,我們用Git的時(shí)候有可能commit提交代碼后,發(fā)現(xiàn)這一次commit的內(nèi)容是有錯(cuò)誤的,那么有兩種處理方法...
    carway閱讀 460,844評(píng)論 31 339
  • Git權(quán)威指南 Git初始化 創(chuàng)建版本庫(kù)以及第一次提交 本章主要學(xué)習(xí):git init、git add和git c...
    阿洋12138閱讀 523評(píng)論 0 0

友情鏈接更多精彩內(nèi)容