2013-04-04 92 views
3

我正在和一位朋友一起使用远程git工具bitbucket.org处理项目。到目前为止,我们已经在不同的时间在主分支上工作,然后提交并将这些更改推送到远程站点供其他人使用。害怕git提交和推送会意外覆盖更改

现在,他在我自己的工作中承诺并将他的更改推送到存储库,并且如果我推出我的提交,它将完全重写他的提交。我的恐惧是否正确?我想我应该创建一个新的分支,将他的更改提取到主分支中,然后合并这两个分支,然后推送。这是一个好策略吗?或者我无所事事。一点建议会很好。

回答

3

VCS的整个想法是,您不会通过这样做来破坏数据。您可以尝试推送,如果您的代码不同步,您会被告知必须接受上游更改才能提交。

一旦你接受了更改并合并它们,你就可以将你的代码应用到HEAD。

+0

这就是我想的。我刚才在重要的代码方面犯了一些令人遗憾的错误,我不愿意失去改变。 – nook 2013-04-04 03:23:33

+1

可能想要提及的是--force会覆盖这种行为并在使用时非常谨慎。 – Infiltrator 2013-04-04 03:38:14

+0

强调非常!您销毁的所有更改仍可以使用git reflog恢复。 =] – 2013-04-04 03:39:52

1

一般情况下,这不应该发生,但你必须注意。例如,如果您朋友的代码和您的代码之间存在冲突,那么您应该注意您是如何解决冲突的。 (也就是说,不要盲目地接受你的朋友或你自己的版本 - 你可能需要手动解决冲突。)

你可能会练习故意改变同一个文件,以获取更多的东西。