2022-03-02 如何修改git 已经推送的log日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022-03-02 如何修改git 已经推送的log日志相关的知识,希望对你有一定的参考价值。

参考技术A 1、修改最后一次的 log日志:
git commit --amend
弹出终端vim。修改完后,按esc,输入 :wq保存。
没有push到远端情况的,这里就可以了。

提交到了远端的,执行:

2、修改历史上某次,或某一些次log日志:

3是最近的第几次。

弹出终端vim。在需要修改的记录前,pick 改成reword,然后,按esc,输入 :wq保存。

再次自动打开终端的编辑,本次,修改日志内容,按esc,输入 :wq保存。

(这里除了可以修改log日志,还支持删除、调换顺序、合并多次提交。比如pick改成drop,就是删除记录)

这时候会出现超前xx版本,落后xx版本
执行一下

可以了。
历史提交记录,内容没变,时间变成了今天

只是如果分支被其他用户也checkout过,那么rebase修改分支提交顺序,或者删除某提交历史记。都会影响对方的分支,出现 超前xx分支、落后xx分支的情况。
这种情况,如果有修改,需要先暂存。删除这种分支。重新拉取,再应用暂存。

参考文章:
https://blog.csdn.net/weixin_30268921/article/details/101103160

git 将推送的文件重置为之前的提交。

我把一些变化推到了我的 feature 支部。

file_a 上已经发生了变化。master 的分支。

现在,我想保留我的修改,但为了让我的修改更有说服力,我想让我的修改更有说服力。file_a 我希望它能像在... master

我不想做大量的合并工作,所以我决定将我的文件重置为之前的提交(在我自己推送之前的提交)。

git checkout aaaaaaa -- file_a

现在,文件的 内容 重置到我做修改之前的状态,但并没有重置到那个提交。现在我有未提交的修改。

问题是: 我不能做 git pull origin master --rebase. 我不能把修改藏起来,因为我的编辑会出现。我不想提交它,因为它变成了一个新的提交,然后我就不能在没有合并的情况下重垒(会和我之前的编辑有冲突)。

我在寻找什么:是指 file_a (而不仅仅是内容)在我编辑之前被重置到那个确切的提交,这样我就可以在不合并的情况下重设基础。这可能吗?

答案

我想我想到的最简洁的解决方案是

git reset --soft aaaaaaa

然后,我把所有的编辑都进行了分期。然后,我取消了阶段,并在 file_a 并做我的正常的rebase工作流程

git stash
git pull origin master --rebase
git stash pop
add <directory>
git commit
git push --force-with-lease

这样一来,所有的变化都会被保存下来。file_a 得到更新的版本,而不需要合并。feature 变化将基于最新的 master

以上是关于2022-03-02 如何修改git 已经推送的log日志的主要内容,如果未能解决你的问题,请参考以下文章

Git 推送操作

git 将推送的文件重置为之前的提交。

如何使用 Git 对远程存储库进行初始推送?

git 配置SSH协议

推送后如何在git中压缩提交?

Git更改未推送提交的作者[重复]