Git提交代碼錯(cuò)了吃后悔藥的幾種常用辦法(場景分析)
1. 前言
寫代碼都會(huì)犯錯(cuò)誤,不小心提交了一個(gè)錯(cuò)誤我該怎么辦?提交的描述信息我該怎么辦?如果你也遇到這個(gè)問題,那么今天胖哥分享的這篇文章將非常適合你。
2. Commit 錯(cuò)了怎么辦
放心都是有后悔藥吃的,我們來看看。
場景一
假如你git commit
了一堆代碼,但是你發(fā)現(xiàn)本次Commit的描述信息有點(diǎn)隨意,你可以這樣:
git commit --amend -m“新的提交消息”
場景二
你本來打算Commit五個(gè)文件,但是由于疏忽你Commit了四個(gè)。當(dāng)然你可以再Commit一次來進(jìn)行彌補(bǔ)這個(gè)失誤。但是多了一次Commit,按道理它們應(yīng)該在一次Commit中。git commit --amend
也能幫你解決這個(gè)問題:
git add 忘記提交的文件 git commit --amend --no-edit
場景三
有些項(xiàng)目比較嚴(yán)格,對(duì)提交者的信息(author)有要求。如果你Commit的作者不規(guī)范,也可以通過git commit --amend
來解決:
git commit --amend --author“felorddax@felord.cn”
盡量確保這些錯(cuò)誤在你本地提交時(shí)修復(fù),推送到遠(yuǎn)程時(shí)使用
amend
命令將會(huì)使得代碼歷史變得混亂。另外git commit -am
可不是git commit --amend
的簡寫。
場景四
提交錯(cuò)了想撤回本次提交,無論是撤回遠(yuǎn)程的還是本地的,你可以使用git reset
搞定,如下面這個(gè)例子:
git log # 最新的 commit e49850be48f25d58b977b778d59c48a41e482bb4 (HEAD -> master) Author: felord.cn <dax@felord.cn> Date: Sun Nov 1 23:39:33 2020 +0800 'readme' # 次新的 commit 8e7089f62ad8588f5710f23d6a8ce1158490032b (origin/master, origin/HEAD) Author: felord.cn <dax@felord.cn> Date: Sun Nov 1 22:06:21 2020 +0800
通過git log
我們查詢獲得了最新的兩次提交,但是最新的提交e49850be48f25d58b977b778d59c48a41e482bb4
我們想撤回,也就是把最新的提交移動(dòng)到第二個(gè)上面。我們只需要執(zhí)行 git reset --soft 目標(biāo)提交commitId
,上述例子中的commitId=8e7089f62ad8588f5710f23d6a8ce1158490032b
。
git reset
有四種模式 soft
、mixed
、hard
、keep
,說明如下:
git revert
也能實(shí)現(xiàn),區(qū)別在于revert
會(huì)產(chǎn)生一次Commit,需要填寫提交信息。
場景五
代碼已經(jīng)推送到遠(yuǎn)程服務(wù)器了,我想撤回某個(gè)文件,你可以這么操作:
# 查看文件歷史版本 git log <filename> # 回滾到指定commitId git checkout <commitId> <filename> # 提交被修改的文件 git commit -m '回滾特定文件的變動(dòng)' # 推送 git pus
3. 總結(jié)
我經(jīng)常用的也就這些了,但是吃后悔藥的時(shí)候一定要小心,最好拉一個(gè)新分支在新分支上試試,不要強(qiáng)吃后悔藥,不然你會(huì)后悔的。目前像 IDEA 都是可視化操作你可以不用命令操作,不過胖哥個(gè)人覺得這些命令還是要熟悉的。
到此這篇關(guān)于Git提交代碼錯(cuò)了吃后悔藥的幾種常用辦法(場景分析)的文章就介紹到這了,更多相關(guān)Git提交代碼錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
人工智能機(jī)器學(xué)習(xí)常用算法總結(jié)及各個(gè)常用算法精確率對(duì)比
這篇文章主要介紹了人工智能機(jī)器學(xué)習(xí)常用算法總結(jié)及各個(gè)常用算法精確率對(duì)比,需要的朋友可以參考下2020-03-03Git?Commitizen提交規(guī)范化自動(dòng)生成changelog文件
這篇文章主要為大家介紹了Git?Commitizen提交規(guī)范化自動(dòng)生成changelog文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Spark中的數(shù)據(jù)讀取保存和累加器實(shí)例詳解
這篇文章主要為大家介紹了Spark中的數(shù)據(jù)讀取保存和累加器實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11微信小程序版的知乎日?qǐng)?bào)開發(fā)實(shí)例
相信大家最近都被小程序刷了屏,于是趁周末趕緊擼了個(gè)小程序版的知乎日?qǐng)?bào)壓壓驚, 這篇文章主要是總結(jié)一下這個(gè)開發(fā)體驗(yàn),和踩過的坑。有需要的朋友們可以參考借鑒。2016-09-09