gpt4 book ai didi

Git merge - 将任何自动文件更改视为冲突(不要暂存),如 --squash

转载 作者:太空狗 更新时间:2023-10-29 14:05:54 25 4
gpt4 key购买 nike

我正在将大量未包装的标签从 master merge 到一个主题分支中,并且正在使用:

git --no-commit --no-ff tagName^0 

它的工作方式应该。除了创建的实际硬文件冲突之外,我还需要检查和手动编辑大量文件,这些文件由于需要人工来确定正确的策略(就像你在 git add -p filename )。

那么,首先,有没有一种方法可以防止在 merge 中自动暂存任何(所有)文件?

有没有一种方法可以执行“merge --squash”,手动编辑文件(git add -p),然后在下一次提交时将其实际转换为 MERGE_HEAD,以便提交有两个父项并成为下一个 merge 基地。

最佳答案

is there a way to prevent auto-staging of any (all) files in a merge?

是的。使用 git merge --no-ff --strategy=ours 保留未提交的无操作 merge ,这是进行手动 merge 的基准,然后使用git read-tree 的 merge 设置可以执行除冲突解决之外的所有低级准备,选择您希望它为您处理的情况的选项。

git merge --no-ff --no-commit -s ours topic
git read-tree -um $(git merge-base @ topic) @ topic

git merge docs . . . git read-tree docs

这会做所有只有一个分支更改的事情,但会留下任何有冲突的线索供您解决。

您可以获得每个需要 merge 的文件的三个不同版本

git ls-files -u \
| git checkout-index --stage=all --stdin

# do the manual resolutions you don't want any automerge for here

git ls-files docs . . . git checkout-index docs

当你完成所有 git 根本不应该触及的手动解决方案时,你可以使用 git 的自动解析器清理其余部分 git merge-index -ao git-merge-one-file

git merge-index -ao git-merge-one-file

# resolve any conflicts automerge can't figure for you

git add all-the-correctly-merged-files-you-havent-already-added
git commit

git merge-index docs

关于Git merge - 将任何自动文件更改视为冲突(不要暂存),如 --squash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31644096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com