Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在';吉特拉力';自动合并?_Git_Git Merge_Git Remote_Git Reset - Fatal编程技术网

Git 在';吉特拉力';自动合并?

Git 在';吉特拉力';自动合并?,git,git-merge,git-remote,git-reset,Git,Git Merge,Git Remote,Git Reset,有时,当作为git pull的结果生成自动合并时,我的合作者会“恐慌”,并且只接受默认的提交消息。在推送此提交之前,我希望确保消息得到修复,但是--amend似乎不起作用。修复此场景中生成的消息的最佳方法是什么。我能给他们提供的最好的指导是 git reset --soft HEAD~ git merge -m <message> <the tracked remote branch> git重置——软头~ git合并-m 但这似乎有点可怕(reset)而且容易出错(

有时,当作为git pull的结果生成自动合并时,我的合作者会“恐慌”,并且只接受默认的提交消息。在推送此提交之前,我希望确保消息得到修复,但是
--amend
似乎不起作用。修复此场景中生成的消息的最佳方法是什么。我能给他们提供的最好的指导是

git reset --soft HEAD~
git merge -m <message> <the tracked remote branch>
git重置——软头~
git合并-m
但这似乎有点可怕(
reset
)而且容易出错(必须明确输入远程跟踪分支)


有没有一种简单的方法来更改刚刚通过合并远程跟踪repo生成的提交消息?为什么
--amend
不起作用?

您可以尝试使用git-pull--rebase将提交放在树的顶部。但git警告不要使用这种说法

“这是一种潜在的危险操作模式。它会重写历史记录,如果您已经发布了该历史记录,这将不是一个好兆头。除非您仔细阅读git rebase(1),否则不要使用此选项。”()


如果您不介意删除合并的历史记录,那么这是您的选择。

@{u}
可以很好地替代您的
,然后您可以将这两个步骤粘合为一个步骤。也许您可以分发给他们一个shell脚本,或者他们可以添加到shell中的别名。

git commit--amend
在这种情况下应该可以工作。到底什么不起作用?

git commit--amend
在这个场景中对我有效(git 1.7.9.5)。你有什么问题吗?仅供参考,您可以使用
@{u}
引用被跟踪的远程分支。@cbuckley:您说得对!那么,
git-reset--softhead~
是“正确”的做法吗?还有其他选择吗?完美–我的回答中忘了提到:
git commit--amend
对于这种情况也是绝对正确的工具。