編碼後,我意識到我犯了一個錯誤。我用如何從github的結帳中推送?
git checkout 7e57dbf5a7245...
恢復到舊的承諾。現在當我承諾使用
git commit -a
它說我正在承諾一個[分離HEAD f69ae14]。當我使用
git push origin master
它說一切的最新...我怎麼輸入推這個[分離的頭]提交回主?
編碼後,我意識到我犯了一個錯誤。我用如何從github的結帳中推送?
git checkout 7e57dbf5a7245...
恢復到舊的承諾。現在當我承諾使用
git commit -a
它說我正在承諾一個[分離HEAD f69ae14]。當我使用
git push origin master
它說一切的最新...我怎麼輸入推這個[分離的頭]提交回主?
您當前日誌必須是這樣的
*-*-*-*[7e57db]-*-*-*<master>
\
*-*-*-*<HEAD>
現在你應該重新master
當前HEAD
位置,使master
當前分支並將其推到origin
:
git branch -f master HEAD
git checkout master
git push origin master
請注意,您丟失7e57db
與當前master
之間的所有提交。
您可以通過使用
git reset --hard 7e57dbf5a7245...
# and then
git push origin master --force
通過這樣做,你將失去新老頭之間更改的頭分離的頭部復位。
如果您想保留這些更改,您可以從分離的頭創建一個新的分支並將其合併到您的頭部,然後提交您的更改並推送新的分支。
去掉馬克斯說,你的日誌最初的樣子:
*-*[7e57db]-*-*<master>
你結帳7e57db和git commit
,和你結束了:
*-*[7e57db]-*-*<master>
\
*<HEAD>
你真的喜歡什麼要做的是在HEAD上進行提交,並將7e57db上引入的更改重放到master上。您使用的命令是git rebase
。特別是,一旦你做了提交,你可以運行:
git rebase master
在這一點上你的歷史將是:
*-*[7e57db]-*-*<old-master>-*<master>
然後,你可以git push origin master
更新遠程參考。
爲什麼你添加rails(3)標籤到這個問題? –