1

通常我通过以下方式将代码推送到“主”分支:

git add . 
git commit -m "message"
git push

工作完美,所有内容都存储在最新状态。

现在其他人已经从不同的位置完成了“大师”的工作。

如何在不覆盖他的更改的情况下将我的更改推送到主控 - 保持他提交中的代码更改完好无损?

当我执行正常的 git push 时,我得到:

christophecompaq@ubuntu:~/Populisto$ git push
To git@github.com:Christophe1/Populisto.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:Christophe1/Populisto.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.
christophecompaq@ubuntu:~/Populisto$ 

如果我使用'git push -f',那不会覆盖他所做的一切吗?

谢谢。

4

1 回答 1

4

在执行 a 之前,git push您必须执行 a git pull。其他人的工作必须先与您的代码合并,然后您才能将更改推送到存储库。git pull 将保持您更新的代码不变,并且仅从上次提交(其他人的代码)添加/更新代码(意味着 git 将合并代码)。

如果两个开发人员都在同一段代码上工作,那么 git 将显示必须首先解决的冲突

于 2013-05-29T10:17:01.383 回答