首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mergetool中选择整个远程文件?

如何在mergetool中选择整个远程文件?
EN

Stack Overflow用户
提问于 2019-03-30 16:12:04
回答 3查看 1.7K关注 0票数 8

我使用的是CLI mergetool vimdiff,而不是逐行输入:diffg RE来选择远程版本,有没有一种方法可以让整个文件的远程版本作为目标合并?

EN

回答 3

Stack Overflow用户

发布于 2019-03-31 21:20:44

简短的回答:

使用:%diffget获取所有块。

解释:

与大多数vim命令一样,diffget接受一个范围。引用vimhelp:

代码语言:javascript
复制
                                                        :diffg :diffget
:[range]diffg[et] [bufspec]
                Modify the current buffer to undo difference with another
                buffer.  [...]
                See below for [range].

[...]

When no [range] is given, the diff at the cursor position or just above it is
affected.  When [range] is used, Vim tries to only put or get the specified
lines.

当用作范围时,%是“等于1,$(整个文件)”,请参见:help :%

票数 7
EN

Stack Overflow用户

发布于 2019-03-30 19:52:23

(CLI替代)

我知道它并没有真正回答你的问题,但是如果你需要的是在一个合并的中从一个特定的冲突文件获取所有的东西,你甚至不需要一个工具。

您可以检出所需的文件版本(检查文档herethere),然后使用add来解决冲突:

代码语言:javascript
复制
git checkout --ours path/to/file
# or
git checkout --theirs path/to/file

# and then to conclude the resolution
git add path/to/file

请注意,如果您对此移动感到遗憾,也可以使用冲突标记将其恢复到未合并状态,使用

代码语言:javascript
复制
git checkout -m path/to/file
票数 2
EN

Stack Overflow用户

发布于 2019-04-01 15:53:41

在mergetool中,如果你有2个以上的buffers,你就不能使用:diffget,因为Vim不知道从哪个文件得到diff。

但是,当您解决冲突时(您需要运行mergetool ),您需要使用Git创建的一些文件来管理冲突:

代码语言:javascript
复制
Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

    both modified:   my/conflicting/file.py

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .env
    my/conflicting/file.py.orig
    my/conflicting/file_BACKUP_5038.py
    my/conflicting/file_BASE_5038.py
    my/conflicting/file_LOCAL_5038.py
    my/conflicting/file_REMOTE_5038.py

它们代表了冲突的不同方面:

  • BACKUP是具有冲突标记的文件拷贝,
  • LOCAL是您在冲突之前的当前状态,
  • BASE包含您的本地和要合并的本地之间的公共祖先提交处的文件状态(或在rebase、cherry-pick或stash pop/apply的情况下应用),
  • REMOTE是尝试应用的提交<-在您的情况下,这是您希望的版本

因此,您可以做的就是将_REMOTE_文件复制为您当前的(cp path/to/file_REMOTE_* path/to/file),或者在mergetool中,复制_REMOTE_ (:%y)的内容并用它替换您的文件的内容(ggVGp,转到顶部,转到可视行模式,转到末尾,粘贴)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55429485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档