我一直在Windows上使用Git(msysgit)来跟踪我一直在做的一些设计工作的变化.
今天我一直在使用不同的PC(带远程仓库brian
),现在我正在尝试将今天完成的编辑合并到我笔记本电脑上的常规本地版本中.
在我的笔记本电脑上,我习惯git pull brian master
将更改添加到我的本地版本中.除了主要的InDesign文档之外,一切都很好 - 这显示为冲突.
PC(brian
)上的版本是我想要保留的最新版本,但我不知道哪些命令告诉repo使用这个版本.
我试着将文件直接复制到我的笔记本电脑上,但这似乎打破了整个合并过程.
谁能指出我正确的方向?
git checkout
对此类案件接受--ours
或--theirs
选择.因此,如果您有合并冲突,并且您知道您只想要合并的分支中的文件,则可以执行以下操作:
$ git checkout --theirs -- path/to/conflicted-file.txt
使用该版本的文件.同样,如果您知道您想要您的版本(不是合并的版本),您可以使用
$ git checkout --ours -- path/to/conflicted-file.txt
你必须手动解决冲突(复制文件)然后提交文件(无论你是复制它还是使用本地版本),像这样
git commit -a -m "Fix merge conflict in test.foo"
Git通常在合并后自动提交,但是当它检测到冲突时它本身无法解决,它会应用它想出的所有补丁,剩下的就是让你手动解析和提交.在Git的合并手册页中,针对Git SVN速成班或此博客条目可能揭示它是如何工作的一些情况.
编辑:请参阅下面的帖子,您实际上不必自己复制文件,但可以使用
git checkout --ours -- path/to/file.txt git checkout --theirs -- path/to/file.txt
选择所需文件的版本.只有在需要两种版本的混合时,才需要复制/编辑文件.
请将mipadis答案标记为正确答案.
你也可以克服这个问题
git mergetool
这会导致git
创建冲突二进制文件的本地副本并在其上生成默认编辑器:
{conflicted}.HEAD
{conflicted}
{conflicted}.REMOTE
显然,您无法在文本编辑器中有用地编辑二进制文件.而是{conflicted}.REMOTE
在{conflicted}
不关闭编辑器的情况下复制新文件.然后,当您关闭时,编辑器git
将看到未修饰的工作副本已更改,并且您的合并冲突以常规方式解决.
要通过将版本保留在当前分支中来解决(忽略要合并的分支中的版本),只需添加并提交文件:
git commit -a
要通过使用您要合并的分支中的版本覆盖当前分支中的版本来解决,您需要首先将该版本检索到工作目录中,然后添加/提交它:
git checkout otherbranch theconflictedfile git commit -a
更详细地解释
mipadi的回答对我来说不太有用,我需要这样做:
git checkout --ours path/to/file.bin
或者,保持合并版本:
git checkout --theirs path/to/file.bin
然后
git add path/to/file.bin
然后我能够再次执行"git mergetool"并继续下一次冲突.
来自git checkout
文档
git checkout [-f|--ours|--theirs|-m|--conflict=
RankList | 热门文章
- 1在循环内部应用鼠标悬停事件侦听器
- 2如何在Android Studio中的ActionBar上添加后退按钮?
- 3在alertDialog中,简单的微调器项看起来很小
- 4可选参数目标C.
- 5内联函数具有非内联副本
- 6指定要从Rails查询结果中排除的字段
- 7将数字转换为数十,数百,数千
- 8如何找回较旧的Whatsapp个人资料图片?
- 9在Firebase android中编写数组
- 10在Neo4j中存储UUID的最佳方式?
- 11IE 11上的beforeunload - 不提示用户不起作用
- 12使用C#将.doc转换为.docx
- 13如何切换位置或交换两个JComboBox的内容?
- 14C++:检查模板类型是否是可变参数模板类型之一
- 15为什么程序返回的是除我指定的退出代码?
- 16Renderscript的Android Studio 2.0 Preview 2问题
- 17node_modules有很多我不知道的文件
- 18MYSQL按喜欢/不喜欢和受欢迎程度排序
- 19Jsonpath与Jackson或Gson
- 20如何在gsutil rsync中包含文件?