簡體   English   中英

Git結帳后Git無法提交

[英]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的其他幾點注意事項:

  1. 我建議您提早提交,經常提交 ,而不是每天完成一次。

  2. 與其手動檢查特定的提交以查找錯誤, 不如查看git bisect ,它可以為您自動完成該過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM