我一直在使用Windows上的Git (msysgit)来跟踪我一直在做的一些设计工作的更改。

今天我一直在一台不同的PC上工作(与远程repo brian),我现在正试图将今天完成的编辑合并到我笔记本电脑上的常规本地版本。

在我的笔记本电脑上,我已经使用git pull brian master将更改拉到我的本地版本。除了主InDesign文档之外,一切都很好-这显示为冲突。

PC (brian)上的版本是我想保留的最新版本,但我不知道什么命令告诉回购使用这一个。

我试图直接复制文件到我的笔记本电脑上,但这似乎打破了整个合并过程。

有人能告诉我正确的方向吗?


当前回答

对于这种情况,Git签出接受我们的或他们的选项。因此,如果你有一个合并冲突,你知道你只是想从你合并的分支文件,你可以这样做:

$ git checkout --theirs -- path/to/conflicted-file.txt

使用该版本的文件。同样,如果您知道您想要自己的版本(而不是被合并的版本),则可以使用

$ git checkout --ours -- path/to/conflicted-file.txt

其他回答

这个过程是在你向Github提交了一个pull请求后解决二进制文件冲突:

所以在Github上,你发现你的拉请求在二进制文件上有冲突。 现在回到本地计算机上相同的git分支。 您(a)再次重新制作/重新构建这个二进制文件,(b)将生成的二进制文件提交到相同的git分支。 然后你把这个相同的git分支再次推到Github。

在Github上,在你的拉请求时,冲突应该会消失。

我遇到过在windows上使用Git管理二进制文件的差异/合并的两种策略。

Tortoise git lets you configure diff/merge tools for different file types based on their file extensions. See 2.35.4.3. Diff/Merge Advanced Settings http://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html. This strategy of course relys on suitable diff/merge tools being available. Using git attributes you can specify a tool/command to convert your binary file to text and then let your default diff/merge tool do it's thing. See http://git-scm.com/book/it/v2/Customizing-Git-Git-Attributes. The article even gives an example of using meta data to diff images.

我让这两种策略都适用于软件模型的二进制文件,但我们使用了tortoise git,因为配置很简单。

mipadi的回答对我不太管用,我需要这样做:

Git签出——我们的路径/to/file.bin

或者,保持被合并的版本:

Git签出——他们的路径/to/file.bin

then

选择add path/to/file

然后我可以再次使用"git合并工具"继续处理下一个冲突。

从git签出文档

git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>... --ours --theirs When checking out paths from the index, check out stage #2 (ours) or #3 (theirs) for unmerged paths. The index may contain unmerged entries because of a previous failed merge. By default, if you try to check out such an entry from the index, the checkout operation will fail and nothing will be checked out. Using -f will ignore these unmerged entries. The contents from a specific side of the merge can be checked out of the index by using --ours or --theirs. With -m, changes made to the working tree file can be discarded to re-create the original conflicted merge result.

对于这种情况,Git签出接受我们的或他们的选项。因此,如果你有一个合并冲突,你知道你只是想从你合并的分支文件,你可以这样做:

$ git checkout --theirs -- path/to/conflicted-file.txt

使用该版本的文件。同样,如果您知道您想要自己的版本(而不是被合并的版本),则可以使用

$ git checkout --ours -- path/to/conflicted-file.txt