我知道如何使用vimdiff合并修改,但是,假设我只知道整个文件可以保留或丢弃,我该怎么做?
我不想为每个人打开vimdiff,我改变了想要一个"保持本地"或"保持远程"的命令.
EG:我与标记为已更改的文件合并,因为有人在Windows下打开它,更改EOL,然后提交.合并时,我想保留自己的版本并丢弃他的版本.
我也对此感兴趣:我搞砸了很长时间并希望接受远程文件,丢弃我的更改.
Wai*_*... 272
你也可以这样做:
git checkout --theirs /path/to/file
Run Code Online (Sandbox Code Playgroud)
保留远程文件,并:
git checkout --ours /path/to/file
Run Code Online (Sandbox Code Playgroud)
保留本地文件.
然后git add他们就完成了一切.
kef*_*ich 92
这种方法看起来更简单,无需单独选择每个文件:
# keep remote files
git merge --strategy-option theirs
# keep local files
git merge --strategy-option ours
Run Code Online (Sandbox Code Playgroud)
要么
# keep remote files
git pull -Xtheirs
# keep local files
git pull -Xours
Run Code Online (Sandbox Code Playgroud)
直接复制: 解决Git合并冲突,以支持他们在拉动期间的更改
Ben*_*lde 12
git checkout {branch-name} -- {file-name}
这将使用来自所选分支的文件.
我喜欢这个,因为posh-git自动完成功能很好用.它还消除了哪个分支是远程的以及哪个分支是本地的歧义.并--theirs没有为我反正工作.
对于线端的东西,请参考man git-merge:
--ignore-space-change
--ignore-all-space
--ignore-space-at-eol
Run Code Online (Sandbox Code Playgroud)
一定要添加autocrlf = false和/或添加safecrlf = false到Windows克隆(.git/config)
如果您配置这样的合并工具:
git config mergetool.cp.cmd '/bin/cp -v "$REMOTE" "$MERGED"'
git config mergetool.cp.trustExitCode true
Run Code Online (Sandbox Code Playgroud)
那么简单
git mergetool --tool=cp
git mergetool --tool=cp -- paths/to/files.txt
git mergetool --tool=cp -y -- paths/to/files.txt # without prompting
Run Code Online (Sandbox Code Playgroud)
会做的工作
在其他情况下,我假设
git checkout HEAD -- path/to/myfile.txt
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩
编辑反向(因为你搞砸了):
git checkout remote/branch_to_merge -- path/to/myfile.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99554 次 |
| 最近记录: |