克隆后如何推送提交?

时间:2015-04-09 17:16:44

标签: git version-control

在备份服务器上,我有一个回购。我通过git clone到我的家用电脑(开发工作电脑)。在clone之后,我git fetch然后git checkout dev。在dev分支中,我想更改最后一次提交注释,例如git commit --amend -m 'Fixed commit',并将其推回git push origin dev,但会发生错误:

To /*****.git
 ! [rejected]        dev -> dev (non-fast-forward)
error: failed to push some refs to '/*********.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

问题出在哪里?如何从远程仓库获取dev分支并将数据推送到它。

2 个答案:

答案 0 :(得分:3)

这是因为git commit --amenddev分支上重写了本地提交历史记录。

如果你100%确定你的提交不会踩到任何人的工作,你可以用git push origin dev -f强制推送分支。

另一个选择是git pull,修复任何合并冲突,使用新合并的代码创建另一个提交,并推送它。这通常被认为是一种安全的做法,但可能会污染您的提交历史记录。

答案 1 :(得分:0)

看起来远程分支超前于您自己,这意味着它至少有一个您没有的提交。尝试git pull然后合并任何更改并再次推送。