我考虑使用git(用于网站开发)并在lynda.com上观看了很多课程,现在阅读一些博客文章。但有一个问题我找不到答案或者不理解它是如何运作的。
我有一台网络服务器,一台本地服务器上的仓库和本地机器上的仓库。
如果我在处理该文件时更改了(由另一个团队成员)更新的本地服务器/ Web服务器,该怎么办?会有警告吗?它会自动合并吗?它会覆盖文件吗?
例如:我编辑了一些CSS和PHP文件,忘记更新我的本地文件。当我将这些文件提交到文件较新的本地服务器时会发生什么?
答案 0 :(得分:1)
当您使用git(也就是您的服务器)推送到远程控制器时,如果本地版本的分支与远程版本之间的提交顺序不是线性的,则推送将被拒绝(永远如此)烦人的“非快进”问题)。如果您想避免这样的问题,最好的办法是确保在推送之前在服务器上安装了最新版本的代码。我要做的是以下几点:
在推送到遥控器之前:
- git remote update
获取所有遥控器。
- 如果您的工作目录中有更改,git stash
将保存它们并清理您的工作目录。
- git rebase origin/master
会将master
与最新共同祖先master
和origin/master
之间的提交应用于origin/master
,并将master
分支移至这个新的位置
显然,您可以将origin
和master
替换为您选择的远程和分支。现在,当您推送时,您不必担心非快进问题,并且您可以确保在推送之前处理最新版本的代码。
或者,您可以对其进行设置,以便只有一个开发人员可以推送到服务器的分支机构,因此您不必担心多人推送到服务器:相反,一个开发人员管理对服务器的所有更改
答案 1 :(得分:0)
它不会覆盖该文件。它可能只应用这两个更改(您的和您的团队成员)。如果两者都修改了文件的相同部分,则会发生冲突,您必须解决该冲突,然后再次推送。