Git:如果我在推之前忘记更新怎么办 我考虑使用Git(用于Web开发),在LyDaNo浏览了很多课程,现在阅读一些博客文章。但是有一个问题我找不到答案或者不明白它是如何工作的

Git:如果我在推之前忘记更新怎么办 我考虑使用Git(用于Web开发),在LyDaNo浏览了很多课程,现在阅读一些博客文章。但是有一个问题我找不到答案或者不明白它是如何工作的,git,git-merge,overwrite,Git,Git Merge,Overwrite,我有一个web服务器,一个本地服务器上的repo和一个本地机器上的repo 如果我在处理该文件时向本地服务器/web服务器提交了已更新(由其他团队成员更新)的更改,该怎么办?会有警告吗?它会自动合并吗?它会覆盖文件吗 例如:我编辑了一些CSS和PHP文件,以前忘记了更新本地文件。当我将这些文件提交到文件较新的本地服务器时会发生什么情况?当你推送到git中的远程服务器(也称为服务器)时,如果分支的本地版本和远程版本之间的提交顺序不是线性的,那么推送将被拒绝(非常恼人的“非快进”问题)。如果您想避免

我有一个web服务器,一个本地服务器上的repo和一个本地机器上的repo

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


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

当你推送到git中的远程服务器(也称为服务器)时,如果分支的本地版本和远程版本之间的提交顺序不是线性的,那么推送将被拒绝(非常恼人的“非快进”问题)。如果您想避免这样的问题,最好的办法是在推送之前确保您的服务器上有最新版本的代码。我要做的是:

在按下遥控器之前: -
git remote update
获取您的所有远程设备。 -如果您的工作目录中有更改,
git stash
将暂时保存这些更改并清理您的工作目录。 -
git-rebase-origin/master
将把
master
master
origin/master
的最新共同祖先之间的提交应用到
origin/master
并将
master
分支移动到此新位置

显然,您可以使用您选择的遥控器和分支来替换
原点
主机
。现在,当您推送时,您不必担心非快进问题,并且可以确保在推送之前处理的是最新版本的代码


或者,您可以将其设置为只有一个开发人员可以推送到服务器上的分支,这样您就不必担心多人推送到服务器上:相反,一个开发人员管理服务器上的所有更改。

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

您的意思是“先拉后推”吗?提交仅在Git中是本地的,不会修改远程存储库中的任何内容。对不起,这对我来说是全新的:-)谢谢…“会有冲突”意味着我会收到警告,告诉我问题在哪里?就像我们都编辑了行#37-#64?Push不会进行合并,它只会尝试更新远程引用。即使两个更改都可以自动合并,它也会抛出一个错误。谢谢,迈尔斯。有很多命令我直到现在才读过。我会检查一下,看看是否对我有效。