Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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修改合并请求的电子邮件(github)?_Git_Github_Rebase - Fatal编程技术网

Git修改合并请求的电子邮件(github)?

Git修改合并请求的电子邮件(github)?,git,github,rebase,Git,Github,Rebase,我正在尝试做一个交互式的重新基址,以改变一个拉请求的电子邮件。它出现在git日志中 commit 0b7e8dc4ebe9fb6ee4394cbf6effb3d43b8cd6a8 Merge: 9de954e 30a5ede Author: test user <testuser@gmail.com> Date: Sun Feb 11 08:29:41 2018 +0100 Merge pull request #1 from tester/greenkeep/init

我正在尝试做一个交互式的重新基址,以改变一个拉请求的电子邮件。它出现在git日志中

commit 0b7e8dc4ebe9fb6ee4394cbf6effb3d43b8cd6a8
Merge: 9de954e 30a5ede
Author: test user <testuser@gmail.com>
Date:   Sun Feb 11 08:29:41 2018 +0100

    Merge pull request #1 from tester/greenkeep/initial
据我所知,拉动请求是在几次提交后完成的

有什么想法吗?

默认情况下,重基放弃合并,如中所示

拉请求本质上是向其他人发送一条消息,要求他们将您的提交合并到他们的工作中或重新设置其基础,因此要回答的第一个问题是您是否需要在这一系列提交中进行自己的合并如果他们选择对您的一系列提交重新设置基础,他们的重新设置基础将放弃您的合并。(如果他们在GitHub上选择非合并“挤压”选项,这也是正确的。您可以在没有GitHub的情况下以传统方式发出拉请求,但由于您已经用GitHub标记了此请求,我将假定您也使用GitHub发出拉请求。)

但是,如果它们要合并,那么您的合并将包括在它们合并您的提交时添加到其存储库中的一系列提交中。在这种情况下,您可能希望将现有的合并提交(使用不正确的作者)替换为新的已更正的合并提交(使用正确的作者)。这可能相当困难,如果在您的一系列提交的顶端不正确的话。在这种情况下,请务必查看的答案,并注意,
git rebase--preserve merges
实际上重新执行合并

您也可以考虑使用<代码> Git筛选器分支>代码>只更改一个提交,如使用但使用<代码> $GITYORACKION>代码>变量来测试一个特定的提交哈希ID。请注意,过滤器分支难以正确使用;始终在存储库的副本上进行实验

但是,如果合并提交正好位于您请求其他人执行的提交的顶端,那么有一种更简单的方法:只需使用
git commit--amend--reset author
--amend
代码知道如何将合并提交复制到修改后的合并提交,并且由于合并提交后没有提交,因此没有后续提交需要使用新的“修改”提交的新哈希ID的更改操作的副本

(<代码>筛选器分支<代码>和交互ReBASE代码部分是复杂的,因为一旦复制,但在一系列提交的中间调整了提交,每个后续提交也必须被复制但被调整,以使用其替换父的新散列ID。当使用<代码> GIT提交-修改< /C>时,没有后续。提交,因此这种复杂情况就消失了。)

默认情况下,重基放弃合并,如中所示

拉取请求本质上是向其他人发送一条消息,要求他们将您的提交合并或重新设置为其工作的基础,因此要回答的第一个问题是您是否需要在这一系列提交中进行自己的合并。如果他们选择重新设置您的提交的基础,他们的重新设置将放弃您的合并。(如果他们在GitHub上选择了非合并“挤压”选项,这也是正确的。在没有GitHub的情况下,您可以按照传统的方式发出拉请求,但由于您已经用GitHub标记了它,因此我假设您也使用GitHub发出拉请求。)

但是,如果他们要合并,则在合并您的提交时,您的合并将包含在他们添加到其存储库中的一系列提交中。在这种情况下,您可能希望将现有的合并提交(使用其不正确的作者)替换为新的更正的合并提交(使用正确的作者)。如果在一系列提交的顶端不正确,那么这可能相当困难。在这种情况下,请务必查看的答案,并注意,
git rebase--preserve merges
实际上会重新执行合并

您也可以考虑使用<代码> Git筛选器分支>代码>只更改一个提交,如使用但使用<代码> $GITYORACKION>代码>变量来测试一个特定的提交哈希ID。请注意,过滤器分支使用起来很难;总是在存储库的副本上进行实验。 但是,如果合并提交正好位于您请求其他人执行的提交的顶端,那么有一种更简单的方法:只需使用

git commit--amend--reset author
--amend
代码知道如何将合并提交复制到修改后的合并提交,并且由于合并提交后没有提交,因此没有后续的提交需要一个带有更改操作的副本来使用新的“修改”提交的新哈希ID


(<代码>筛选器分支<代码>和交互ReBASE代码部分是复杂的,因为一旦复制,但在一系列提交的中间调整了提交,每个后续提交也必须被复制但被调整,以使用其替换父的新散列ID。当使用<代码> GIT提交-修改< /C>时,没有后续。提交,所以这个复杂的问题就消失了。)

可能重复的可能重复的可能重复的感谢。是的,这就是我需要的。谢谢。是的,这就是我需要的。
git rebase -i head~20