Git:如果我在推送前忘记更新怎么办?

时间:2013-06-29 15:24:05

标签: git git-merge overwrite

我考虑使用git(用于网站开发)并在lynda.com上观看了很多课程,现在阅读一些博客文章。但有一个问题我找不到答案或者不理解它是如何运作的。

我有一台网络服务器,一台本地服务器上的仓库和本地机器上的仓库。

如果我在处理该文件时更改了(由另一个团队成员)更新的本地服务器/ Web服务器,该怎么办?会有警告吗?它会自动合并吗?它会覆盖文件吗?

例如:我编辑了一些CSS和PHP文件,忘记更新我的本地文件。当我将这些文件提交到文件较新的本地服务器时会发生什么?

2 个答案:

答案 0 :(得分:1)

当您使用git(也就是您的服务器)推送到远程控制器时,如果本地版本的分支与远程版本之间的提交顺序不是线性的,则推送将被拒绝(永远如此)烦人的“非快进”问题)。如果您想避免这样的问题,最好的办法是确保在推送之前在服务器上安装了最新版本的代码。我要做的是以下几点:

在推送到遥控器之前: - git remote update获取所有遥控器。 - 如果您的工作目录中有更改,git stash将保存它们并清理您的工作目录。 - git rebase origin/master会将master与最新共同祖先masterorigin/master之间的提交应用于origin/master,并将master分支移至这个新的位置

显然,您可以将originmaster替换为您选择的远程和分支。现在,当您推送时,您不必担心非快进问题,并且您可以确保在推送之前处理最新版本的代码。

或者,您可以对其进行设置,以便只有一个开发人员可以推送到服务器的分支机构,因此您不必担心多人推送到服务器:相反,一个开发人员管理对服务器的所有更改

答案 1 :(得分:0)

它不会覆盖该文件。它可能只应用这两个更改(您的和您的团队成员)。如果两者都修改了文件的相同部分,则会发生冲突,您必须解决该冲突,然后再次推送。