编码后,我意识到我犯了一个错误。我用如何从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)标签到这个问题? –