自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:使用 Git 在錯(cuò)誤的分支上修改了代碼怎么辦?

開發(fā) 前端
我們知道,在使用 Git 的時(shí)候,應(yīng)該要正確使用它的分支(Branch)功能。不同的功能使用不同的分支開發(fā),最后合并進(jìn)入主分支。

[[409023]]

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

我們用一個(gè)簡單的例子來說明這種情況。

首先創(chuàng)建一個(gè)文件夾:test_git,并且在里面創(chuàng)建一個(gè)1.txt 文件,這個(gè)文件的內(nèi)容如下:

  1. 11111 
  2. 22222 
  3. 33333 
  4. 44444 
  5. aaaaa 
  6. bbbbb 
  7. ccccc 

如下圖所示:

接下來,我執(zhí)行命令git init,把當(dāng)前文件夾作為一個(gè)git 源,并把1.txt 提交到源里面,讓 git 進(jìn)行管理。

現(xiàn)在,我基于當(dāng)前分支,創(chuàng)建一個(gè)dev分支。并對(duì)新分支里面的1.txt 文件進(jìn)行修改:

  1. git checkout -b dev 
  2. vim 1.txt 
  3. git add 1.txt 
  4. git commit -m 'change 1.txt' 

好了,現(xiàn)在準(zhǔn)備工作做完了。我現(xiàn)在有兩個(gè)分支master和dev。每個(gè)分支里面都有一個(gè)叫做1.txt的文件。并且這兩個(gè)1.txt文件的內(nèi)容前半截相同,后半截不同。

大家可以看到,我現(xiàn)在在 dev 分支上。這個(gè)時(shí)候,我想修改 master 分支上面的1.txt。但是我忘記切換分支了。于是直接修改了dev 分支上的1.txt:

紅框中的內(nèi)容,原本是想在 master 分支修改的

這個(gè)時(shí)候,如果我直接使用命令git checkout master試圖切換分支,git 會(huì)報(bào)錯(cuò),沒有辦法切過去:

很多人可能會(huì)這樣做:打開一個(gè)記事本,把1.txt 里面修改的內(nèi)容記錄下來。然后使用命令git checkout -- 1.txt恢復(fù)1.txt 到修改之前的內(nèi)容。然后切換到 master 分支。再根據(jù)記事本里面記錄的修改內(nèi)容,把代碼粘貼到1.txt 文件中。如果只有1個(gè)文件修改那還好。但是在軟件開發(fā)中,可能你修改了很多個(gè)文件。所以這種方法會(huì)變得非常笨拙。

但實(shí)際上,git 早就預(yù)料到了你有這個(gè)需求,所以它已經(jīng)有了應(yīng)對(duì)方案。我們現(xiàn)在回到剛剛在 dev 分支修改了1.txt 的時(shí)候:

這個(gè)時(shí)候,千萬不要執(zhí)行g(shù)it add命令。

你只需要按順序執(zhí)行如下三條命令:

  1. git stash 
  2. git checkout master 
  3. git stash pop 

運(yùn)行效果如下圖所示:

然后,我們打開1.txt 文件:

可以看到,剛才的修改已經(jīng)自動(dòng)應(yīng)用到了master 分支的1.txt 上面了。

git stash會(huì)把當(dāng)前修改的內(nèi)容緩存起來,并恢復(fù)當(dāng)前工作區(qū)到你修改之前的狀態(tài)。然后切換回 master 分支,執(zhí)行命令git stash pop,把剛才的修改應(yīng)用到 master 分支的1.txt 文件中。如果不出現(xiàn)沖突,那么它會(huì)自動(dòng)修改1.txt 文件。如果出現(xiàn)了沖突,那么需要你打開1.txt 文件以后,手動(dòng)解除沖突。

可以看到,使用git stash命令,比你單獨(dú)手動(dòng)記錄修改的內(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)載自微信公眾號(hào)「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系未聞Code公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2020-12-01 10:34:04

Git主分支代碼

2021-11-12 05:00:43

裝飾器代碼功能

2021-03-12 21:19:15

Python鏈?zhǔn)?/a>調(diào)用

2021-09-13 20:38:47

Python鏈?zhǔn)?/a>調(diào)用

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2021-07-27 21:32:57

Python 延遲調(diào)用

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2023-10-29 09:16:49

代碼安全命令

2021-10-15 21:08:31

PandasExcel對(duì)象

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2024-11-13 09:18:09

2022-03-12 20:38:14

網(wǎng)頁Python測(cè)試

2021-07-08 21:49:13

前端后端Cookies

2024-08-27 22:08:13

2024-10-16 21:47:15

2021-04-12 21:19:01

PythonMakefile項(xiàng)目

2021-06-08 21:36:24

PyCharm爬蟲Scrapy

2021-03-18 23:28:45

Python反斜杠字符串
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)