我认为使用git(用于web开发)并在lynda.com上观看了很多课程并阅读了一些博客文章。但有一个问题我找不到答案,或者不明白它是如何工作的。Git:如果我在推送前忘记更新会怎么样
我有一个Web服务器,本地服务器上的回购和本地机器上的回购。
如果我在更改本地服务器/ Web服务器(由其他团队成员更新)的同时处理该文件,该怎么办?会有警告吗?它会自动合并?它会覆盖文件吗?
例如:我编辑一些CSS和PHP文件,忘记更新我的本地文件。当我将这些文件提交到文件较新的本地服务器时会发生什么?
我认为使用git(用于web开发)并在lynda.com上观看了很多课程并阅读了一些博客文章。但有一个问题我找不到答案,或者不明白它是如何工作的。Git:如果我在推送前忘记更新会怎么样
我有一个Web服务器,本地服务器上的回购和本地机器上的回购。
如果我在更改本地服务器/ Web服务器(由其他团队成员更新)的同时处理该文件,该怎么办?会有警告吗?它会自动合并?它会覆盖文件吗?
例如:我编辑一些CSS和PHP文件,忘记更新我的本地文件。当我将这些文件提交到文件较新的本地服务器时会发生什么?
当你在git(又名你的服务器)中推送到远程时,如果你的本地版本的分支和远程版本之间的提交顺序不是线性的,那么推送将被拒绝(永远不会-annoying“非快进”问题)。如果你想避免这样的问题,最好的办法是在推送之前确保你的服务器上有最新版本的代码。我会做的是以下几点:
在推送到远程之前: - git remote update
提取所有的遥控器。 - 如果您的工作目录中有更改,git stash
将暂时保存并清理您的工作目录。 - git rebase origin/master
将适用master
和master
最近的共同祖先与origin/master
之间的提交到origin/master
和移动master
分支到这个新的位置
很明显,你可以选择你的远程和分支取代origin
和master
。现在,当您推动时,您不必担心非快速转发问题,并且您可以确保在推送之前处理最新版本的代码。
或者,您可以对其进行设置,以便只有一名开发人员可以推送到您服务器上的分支,因此您不必担心多人推送到服务器:相反,一名开发人员管理所有更改服务器。
谢谢,迈尔斯。直到现在我还没有读过很多命令。将检查他们,看看是否适合我。 – quinny
你的意思是“拉前推”?提交仅在Git中是本地的,不会修改远程存储库中的任何内容。 – nif
是的,我认为“推”不是“承诺”。对不起,这对我来说都是新的:-) – quinny