Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 避开发散主_Git - Fatal编程技术网

Git 避开发散主

Git 避开发散主,git,Git,我是一个项目的合作者。所有者通常处理不同的文件。我怎样才能避免主人发散呢 github的情况 fileA # modified by owner fileB fileC 本地: fileA fileB fileC # modified by me 我注意到fileA已更改。因此,我尝试了git fetch,因为我的目标是在本地更新fileA。然后我提交了我的fileC并执行了git push,现在它会产生 ! [rejected] master -> master (n

我是一个项目的合作者。所有者通常处理不同的文件。我怎样才能避免主人发散呢

github的情况

fileA # modified by owner
fileB
fileC
本地:

fileA
fileB
fileC # modified by me
我注意到
fileA
已更改。因此,我尝试了
git fetch
,因为我的目标是在本地更新
fileA
。然后我提交了我的
fileC
并执行了
git push
,现在它会产生

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to ...
然后它建议
git pull
,我会得到一些合并的东西。
如何避免这些问题(和分支)?我看到
git-push
git-rebase
git-fetch
,可以避免合并(请参阅)

这将下载最新的文件(此处为
fileA
),但不会影响本地更改

如果已经提交了本地更改(
![rejected]master->master(先提取)
),可以提前执行
git复位头
。因此,完整的配方是

git reset HEAD                 # undo commit, if needed, keeps local changes
git pull --rebase --autostash  # keeps local changes
git commit -m "...." fileC
git push

你有“合并的东西”吗?你是说合并冲突?您研究过如何解决Git中的合并冲突吗?除了在某些极端情况下(如二进制或自动生成的XML文件),解析非常简单。看起来你会从一个基本的Git教程中受益,该教程教你获取、合并、推送或拉取的含义。我只是想事先避免这种情况。我总是要查它,而且我总是不知道它的概貌。你无法避免它。如果两个人同时处理同一个文件,就会发生冲突。学会接受它。这只是开发人员的一部分。这种情况经常发生,你很快就会明白。在那之前,只要把你能找到的任何有帮助的东西加入书签和/或做笔记,然后再参考它们就行了。
git reset HEAD                 # undo commit, if needed, keeps local changes
git pull --rebase --autostash  # keeps local changes
git commit -m "...." fileC
git push