我的问题非常基本,但对我来说还不清楚。我正在与多个开发人员合作开发一个rails项目。所有这些都可以拉动或推动项目。那么让我解释一下我的情景。如果我第一次在我的代码中进行更改而其他开发人员也在进行更改,那么当我尝试推送项目时,我能够这样做。但另一位开发人员在拉动该项目时遇到了问题。之后如果他们能够进行更改并拉动项目,那么我无法推送项目或拉动项目。这就是我们首先推动项目的方式:
git add .
git commit .
git pull origin master
但错误来自警告:无法合并二进制文件或者我收到错误 git pull失败,“未加工作的工作树文件'blah'将被合并覆盖 < / p>
答案 0 :(得分:1)
问题来了,因为你和你的朋友在文件的同一行上做了更改而git无法决定采取哪一个。所以在这种情况下,最好首先使用stash来保存代码。 代码将是: -
git stash :- To save your code
git pull :- To pull the code from git
git stash apply :- To merge your changes with the pulled files, if any merging error is coming then it will hit an error saying merge-conflict,you have to resolve that manually.
git add :- To add the files
git commit -m "Commit message" :- To commit it
git push :- To push to the repo.
我认为这将解决您的问题
答案 1 :(得分:0)
git checkout接受--ours或 - 这些案例的选项。因此,如果您有合并冲突,并且您知道您只想要合并的分支中的文件,则可以执行以下操作:
$ git checkout --theirs -- path/to/conflicted-file.txt
使用该版本的文件。同样,如果您知道您想要您的版本(不是合并的版本),您可以使用
$ git checkout --ours -- path/to/conflicted-file.txt
REF:Resolving a Git conflict with binary files
在您的情况下,该文件是&#39; blah&#39;在远程位置的工作目录中。所以你可以保留其中一个。