1

是否可以将 git 配置为压缩合并,但不能压缩来自拉取的更改?如果可能的话,我将如何以这种方式配置 git?

我通过配置 gitgit config branch.<name>.mergeoptions --squash

虽然这适用于压缩来自合并分支的提交,但它也尝试在进行拉取时压缩传入的更改。

4

2 回答 2

2

在您的 ~/.gitconfig 或 .git/config 每个项目的基础上。

...
[alias]
    ms = merge --squash

编辑:根据 git-config 手册页,无法覆盖内置命令。更新了答案以建议为此使用单独的命令。

git(1) 命令包装器的命令别名 - 例如,在定义“alias.last = cat-file commit HEAD”之后,调用“git last”等效于“git cat-file commit HEAD”。为了避免脚本使用的混乱和麻烦,隐藏现有 git 命令的别名将被忽略。参数由空格分隔,支持通常的 shell 引用和转义。引号对和反斜杠可用于引用它们。

于 2012-12-04T15:18:11.353 回答
0

我认为你需要做 agit fetch然后 agit merge --no-squash做你想做的事。或者,如果您想在单个命令中执行此操作,一个简单的 git 别名(或 bash 别名或函数,就此而言)就足够了:

git config alias.pull-no-squash '!git fetch; git merge --no-squash'

于 2012-12-05T00:48:46.453 回答