gpt4 book ai didi

git - 解压之前压缩的提交

转载 作者:太空狗 更新时间:2023-10-29 13:58:25 25 4
gpt4 key购买 nike

我已经使用git rebase -i HEAD~5完成此操作后,我注意到其中一个必须分开。我尝试使用本手册中的交互模式 https://git-scm.com/docs/git-rebase#_splitting_commits

git rebase --interactive

但是只有

noop

# Rebase 0349ada..0349ada onto 0349ada (1 command(s))
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#

所以我不明白如何指示拆分提交

最佳答案

你有两个选择。

您可以将要拆分的提交设置为 edit,然后在该点进行更改。通常,您会重置为提交之前的状态,然后进行您想要的两次提交:

$ git reset HEAD^
$ git add file1 file2 file3
$ git commit
$ git add file4 file5 file6
$ git commit
$ git rebase --continue

当然,现实世界中的例子不太可能是对单独文件进行编辑的提交,但是在你完成 git reset 之后,你就在提交被分开之前的那个时刻,但在您的工作目录中进行了该提交的更改。您需要做什么来进行您想要的两次提交取决于您的情况。

另一种选择,就是回到你第一次 rebase 之前,然后再做一次,注意不要犯同样的错误。 rebase 之前的提交不会立即被垃圾回收,因此您可以简单地重置为相关提交:

git reset --hard <hash of the HEAD commit before the rebase>

我说的是“简单”,但我意识到您不太可能在进行 rebase 之前记下提交哈希。不过不要害怕,您可以使用它的 reflog 来发现它:

git reflog

这列出了在执行的每个操作中哪个提交是 HEAD。您应该看到一堆标记为 rebase -i 的提交,从这些之前的提交中选择提交哈希。

然后你可以再次做你原来的 rebase ,并做出不同的选择。

关于git - 解压之前压缩的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080016/

25 4 0
文章推荐: 仅适用于应用程序图标的 Android mipmap
文章推荐: html - 如何在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com