[英]Git Cannot Commit After I Did Git Checkout
我每天完成工作后都會使用Git存儲更改:
git add --all
git commit -m 'some comments'
git push origin master
但是今天,我需要我的Git恢復一些文件以跟蹤一些錯誤。 因此,我決定使用以下命令返回3天:
git checkout 203914
然后,在找到錯誤的原因之后,我使用checkout更改回最新的提交:
git checkout 981291 << this is my latest commit, about 3 hours ago
現在,在編輯981291
提交后,我想使用與每天相同的方式創建一個新的提交:
git add --all
git commit -m 'minor fix'
git push origin master
它說:
HEAD detached from 981291
nothing to commit, working directory clean
Everything up-to-date
然后我檢查了我的BitBucket帳戶,找不到“較小修復”提交。 看來,在簽入上一個提交並進行了一些更改之后,我無法再次將新提交提交到我的遠程服務器中。
結帳后如何進行新的提交?
通過執行git checkout 203914
,您已經離開了分支master
,現在處於所謂的“分離頭”狀態。
為了保留您的更改,您將需要執行git checkout master
,然后創建新的提交。
如果您已經不在分支上創建了提交,則可以使用reflog
子命令找到它:
$ git reflog
...
3aa60dd HEAD@{1}: commit: this commit is missing from master
...
如果您在reflog中找到提交,則可以將其直接應用於master
:
git checkout master
git cherry-pick 3aa60dd
有關如何使用Git的其他幾點注意事項:
我建議您提早提交,經常提交 ,而不是每天完成一次。
與其手動檢查特定的提交以查找錯誤, 不如查看git bisect ,它可以為您自動完成該過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.