Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 - Fatal编程技术网

git使用不同的消息修改提交

git使用不同的消息修改提交,git,Git,我提交了一个带有消息“m1”的文件。后来,我修改了它,并试图修改最后的提交。但是,我已经更改了最后一条消息,并用消息“m2”提交了更改 情况是我有两个不同的提交,一个等待推送,另一个等待拉取。我完全不理解这种情况,我也不太明白到底发生了什么 有什么想法吗?通过修改提交,您已经改变了存储库的历史记录。Git试图纠正这一点,声称您的分支与远程分支存在分歧,并允许您合并以修复它 不合并。如果修改了提交,则表示您打算重写历史记录 相反,您可以强制推送分支: git push --force 这将告诉G

我提交了一个带有消息“m1”的文件。后来,我修改了它,并试图修改最后的提交。但是,我已经更改了最后一条消息,并用消息“m2”提交了更改

情况是我有两个不同的提交,一个等待推送,另一个等待拉取。我完全不理解这种情况,我也不太明白到底发生了什么


有什么想法吗?

通过修改提交,您已经改变了存储库的历史记录。Git试图纠正这一点,声称您的分支与远程分支存在分歧,并允许您合并以修复它

不合并。如果修改了提交,则表示您打算重写历史记录

相反,您可以强制推送分支:

git push --force

这将告诉Git您完全打算覆盖历史记录,并且您的本地分支机构有正确的历史记录反映在您的远程存储库中。

通过修改提交,您已经更改了存储库的历史记录。Git试图纠正这一点,声称您的分支与远程分支存在分歧,并允许您合并以修复它

不合并。如果修改了提交,则表示您打算重写历史记录

相反,您可以强制推送分支:

git push --force

这将告诉Git您完全打算覆盖历史记录,并且您的本地分支具有要反映在远程存储库上的正确历史记录。

问题在于,
Git提交--amend
不会也确实无法更改提交

相反,它创建了一个新的commit,除了您所修改的内容之外,它闻起来很像旧的commit。然后,它使当前分支名称指向新提交而不是旧提交

如果其他人已经有了旧的提交,他们仍然有。在这种情况下,您要么已经向上游发送了提交(使用
git push
),要么首先从上游获得了提交(使用
git fetch
,然后是将本地分支设置为包含提交的内容,通常是合并或重新基础)。所以他们还有原件,现在你有了副本:

              C'  <-- branch
             /
... <- A <- B
             \
              C   <-- upstream/branch

C'问题在于
git commit--amend
不会也确实不能更改提交

相反,它创建了一个新的commit,除了您所修改的内容之外,它闻起来很像旧的commit。然后,它使当前分支名称指向新提交而不是旧提交

如果其他人已经有了旧的提交,他们仍然有。在这种情况下,您要么已经向上游发送了提交(使用
git push
),要么首先从上游获得了提交(使用
git fetch
,然后是将本地分支设置为包含提交的内容,通常是合并或重新基础)。所以他们还有原件,现在你有了副本:

              C'  <-- branch
             /
... <- A <- B
             \
              C   <-- upstream/branch

C'如果您创建了本地提交,但忘记添加一些文件。您可以运行:

git add .
git commit --amend -m "New Commit Message"
这将在已创建的提交中添加这些新文件,并更新提交消息。如果您只想更新提交消息,而不想更新内容,下面的命令就足够了

git commit --amend -m "New Commit Message"

如果您创建了本地提交,但忘记添加一些文件。您可以运行:

git add .
git commit --amend -m "New Commit Message"
这将在已创建的提交中添加这些新文件,并更新提交消息。如果您只想更新提交消息,而不想更新内容,下面的命令就足够了

git commit --amend -m "New Commit Message"