一日一技:不小心修改了Git主分支的代碼怎么辦?
在以前的文章:手把手教學(xué),如何解決 git 沖突?中,我提到,主分支 master 或者 main 中的修改,只能通過 merge 合并代碼引入。絕對不應(yīng)該手動在主分支里面修改代碼。在很多正規(guī)項目里面,主分支是不允許直接 push 代碼的。
但在現(xiàn)實中,經(jīng)常出現(xiàn)這樣的情況。上一次合并完成代碼以后,我的分支還停留在主分支。過了十天半個月以后,突然發(fā)現(xiàn)了一個 bug,或者想到了一個需要修改的地方。于是打開 VSCode 或者 IDE 就開始改代碼。改了幾十行代碼,好幾個文件以后,突然發(fā)現(xiàn),糟糕,我在主分支上面改了文件。
有不少同學(xué)遇到這種問題以后,是這樣解決的:
- 先git status 看看修改了哪些文件,去文件夾里面把這些文件復(fù)制出來。
- 使用git checkout -- 文件名把所有修改全部重置
- 重新創(chuàng)建一個新的分支
- 把之前復(fù)制出來的文件覆蓋回去
- ……
這樣做,雖然說確實可以解決問題,但過程非常繁瑣。
那么,遇到這種情況怎么辦呢?實際上非常簡單:
- git add把所有文件加入暫存區(qū)
- git commit把所有文件提交到變更記錄里面
- 執(zhí)行命令git branch -M dev把當(dāng)前的主分支改名為dev
- 執(zhí)行命令git checkout -b main重新創(chuàng)建一個主分支。(注意 Github 新項目的主分支是 main,老項目是 master)
- 執(zhí)行命令git reset --hard HEAD^移除主分支最新的提交
至此,主分支的修改已經(jīng)被抹除。你可以重新轉(zhuǎn)到 dev 分支繼續(xù)剛才未完成的開發(fā)了。
如果大家還不會正確使用 Git,可以點擊閱讀原文,使用微軟提供的交互式環(huán)境來信息和操作,根據(jù)提示一步一步完成操作,也就學(xué)會了 Git。
本文轉(zhuǎn)載自微信公眾號「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系未聞Code公眾號。