新聞中心
我們知道,在使用 Git 的時候,應(yīng)該要正確使用它的分支(Branch)功能。不同的功能使用不同的分支開發(fā),最后合并進(jìn)入主分支。但有時候會出現(xiàn)這樣一種情況——我代碼都已經(jīng)寫完了,才發(fā)現(xiàn)我寫錯分支了。這個時候,怎么把我的修改遷移到目標(biāo)分支上,并且不修改現(xiàn)在正在使用的分支?

10年積累的成都網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有撫寧免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
我們用一個簡單的例子來說明這種情況。
首先創(chuàng)建一個文件夾:test_git,并且在里面創(chuàng)建一個1.txt 文件,這個文件的內(nèi)容如下:
- 11111
- 22222
- 33333
- 44444
- aaaaa
- bbbbb
- ccccc
如下圖所示:
接下來,我執(zhí)行命令git init,把當(dāng)前文件夾作為一個git 源,并把1.txt 提交到源里面,讓 git 進(jìn)行管理。
現(xiàn)在,我基于當(dāng)前分支,創(chuàng)建一個dev分支。并對新分支里面的1.txt 文件進(jìn)行修改:
- git checkout -b dev
- vim 1.txt
- git add 1.txt
- git commit -m 'change 1.txt'
好了,現(xiàn)在準(zhǔn)備工作做完了。我現(xiàn)在有兩個分支master和dev。每個分支里面都有一個叫做1.txt的文件。并且這兩個1.txt文件的內(nèi)容前半截相同,后半截不同。
大家可以看到,我現(xiàn)在在 dev 分支上。這個時候,我想修改 master 分支上面的1.txt。但是我忘記切換分支了。于是直接修改了dev 分支上的1.txt:
紅框中的內(nèi)容,原本是想在 master 分支修改的
這個時候,如果我直接使用命令git checkout master試圖切換分支,git 會報錯,沒有辦法切過去:
很多人可能會這樣做:打開一個記事本,把1.txt 里面修改的內(nèi)容記錄下來。然后使用命令git checkout -- 1.txt恢復(fù)1.txt 到修改之前的內(nèi)容。然后切換到 master 分支。再根據(jù)記事本里面記錄的修改內(nèi)容,把代碼粘貼到1.txt 文件中。如果只有1個文件修改那還好。但是在軟件開發(fā)中,可能你修改了很多個文件。所以這種方法會變得非常笨拙。
但實際上,git 早就預(yù)料到了你有這個需求,所以它已經(jīng)有了應(yīng)對方案。我們現(xiàn)在回到剛剛在 dev 分支修改了1.txt 的時候:
這個時候,千萬不要執(zhí)行g(shù)it add命令。
你只需要按順序執(zhí)行如下三條命令:
- git stash
- git checkout master
- git stash pop
運行效果如下圖所示:
然后,我們打開1.txt 文件:
可以看到,剛才的修改已經(jīng)自動應(yīng)用到了master 分支的1.txt 上面了。
git stash會把當(dāng)前修改的內(nèi)容緩存起來,并恢復(fù)當(dāng)前工作區(qū)到你修改之前的狀態(tài)。然后切換回 master 分支,執(zhí)行命令git stash pop,把剛才的修改應(yīng)用到 master 分支的1.txt 文件中。如果不出現(xiàn)沖突,那么它會自動修改1.txt 文件。如果出現(xiàn)了沖突,那么需要你打開1.txt 文件以后,手動解除沖突。
可以看到,使用git stash命令,比你單獨手動記錄修改的內(nèi)容,切換分支再重新改一遍要方便很多。
更多 Git 相關(guān)的小技巧,大家可以在微軟提供的學(xué)習(xí)網(wǎng)站進(jìn)行學(xué)習(xí):Introduction to Git - Learn | Microsoft Docs[1].
參考資料
[1]Introduction to Git - Learn | Microsoft Docs: https://docs.microsoft.com/en-us/learn/modules/intro-to-git/?WT.mc_id=DT-MVP-5003916
本文轉(zhuǎn)載自微信公眾號「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系未聞Code公眾號。
網(wǎng)站標(biāo)題:一日一技:使用Git在錯誤的分支上修改了代碼怎么辦?
本文網(wǎng)址:http://m.5511xx.com/article/djiceoh.html


咨詢
建站咨詢
