日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

git使用

發(fā)布時(shí)間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

git rebase

rebase是一個(gè)非常強(qiáng)大的指令,可以對(duì)你的提交做各種修改。先體驗(yàn)一下我覺得最厲害的的,比如在某一次提交之后,我又提交了好幾次,但是我發(fā)現(xiàn)我這次提交有問題,想要修改,怎么辦了?也就是去修改幾次前的提交內(nèi)容,rebase 可以幫你實(shí)現(xiàn)。
1.修改中間某一次提交的內(nèi)容:
比如我現(xiàn)在分支上面有兩次提交,內(nèi)容是兩個(gè)txt文件。

現(xiàn)在我再創(chuàng)建一個(gè)文件aa.txt,進(jìn)行第三次交。結(jié)果狀態(tài)如下。

我再創(chuàng)建一個(gè)文件bb.txt,進(jìn)行第四次提交,結(jié)果如下:

這時(shí)候我覺得我第三次提交的aa.txt是有問題的,我需要?jiǎng)h除(這里為了演示方便,如果純粹只是刪除在當(dāng)前直接刪除就可以了),我們用rebase可修改第三次commit。
因?yàn)槭堑箶?shù)第二次,就用 git rebase -i HEAD~2
-i是交互的意思。
我們就進(jìn)入到這個(gè)界面,我們可以在里面編輯。
仔細(xì)看一下下面的注釋,為什么rebase可以對(duì)提交進(jìn)行各種操作,就是這個(gè)命令實(shí)現(xiàn)的。pick就是使用這次提交,我們進(jìn)入界面默認(rèn)就是pick,因?yàn)檫@幾個(gè)提交我們都在使用。reword是重新編輯提交的message,有點(diǎn)像git commit --amend。edit是重新編輯這次提交,即可以改內(nèi)容。squash是把這一次提交與上一次提交合并,注意順序是合并的上一次上面去,比如third合并到second,fixup是合并后把message都不要了,drop是丟掉這次提交。
故我們要修改third提交,就編輯如下:
:wq 保存出來,

這個(gè)提示是說你可以使用git commit --amend來修改提交,如果你修改ok了就執(zhí)行g(shù)it rebase --continue
我們看我們的狀態(tài),

第四次提交已經(jīng)沒有了,我們又回到第三次的狀態(tài),很像reset到第三次。
我們刪除aa.txt
注意需要再一次提交,最后運(yùn)行g(shù)it rebase --continue,再看我們的狀態(tài)

我們又回到第四次提交,但是aa.txt已經(jīng)不在了,中間多出了一次提交remove aa.txt.
是不是很方便,如果是直接reset到第三次,第四次就沒有了,而這樣的做法既刪除了aa.txt,第四次的提交也不用修改。
2.合并多次提交
其實(shí)third remove aa.txt這兩次提交是無用的,我們?cè)趯?shí)際編程中經(jīng)常會(huì)遇到這種多次提交,太多了影響感官。我們想合并最后幾次提交,直接成為third提交。
git rebase -i HEAD~3

當(dāng)然如果確認(rèn)third remove aa.txt無用,直接使用d刪除即可,這次我們還是合并。注意是當(dāng)前的合并到前面的,故
保存退出后出現(xiàn)界面

如果你想修改commit的message就要寫入,帶#就會(huì)被忽略。我們這里默認(rèn)使用了third
再看狀態(tài)

合并成一次提交了,內(nèi)容是第四次提交的內(nèi)容。
交換兩次提交的順序
只需要把pick的順序換一下就可以了。
記住你想操作幾次提交就用git rebase -i HEAD~n

版本回退問題

版本回退我們也是經(jīng)常遇到的,大家都知道用git reset ,但實(shí)際它后面是帶有三種參數(shù),–soft --mixed --hard
這個(gè)圖很好的說明了三個(gè)參數(shù),比如reset某次commit ,soft是回退到git add的狀態(tài),mixed是回退到工作區(qū)狀態(tài),hard是直接抹掉。
比如我發(fā)現(xiàn)了我這次的提交有問題,想返回來修改,則使用mixed,這些修改就還在工作區(qū),我在這次修改上面繼續(xù)修改即可。說白了就是撤回這次提交。
如果我根本不想要這次修改,就直接用hard。這種一般是為了版本回退,比如git reset --hard commit_id .我覺得我這個(gè)用的還挺多的。注意問題是我們?cè)趺丛倩氐阶钚碌腸ommit_id
使用git reflog找到最新的commit_id 就可以使用git reset --hard回到最新的。
這里一定要注意,最好reset hard之前記住最新的id,如果你找不到了,你的代碼就沒有了

總結(jié)

以上是生活随笔為你收集整理的git使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。