我在我的本地 repo 中做了一些提交,并将它们也推送到了在线 repo。
然后我意识到有很多提交,我想把它们压缩成很小的。最好从second last one
到first one
。即保持当前提交并压缩所有其他我的提交。
当我做
git rebase -i origin/branch_name
noop
弹出窗口。我没有看到任何pick
。我应该怎么办 ?
当我收到noop
消息时,通常意味着参数中使用的分支在git rebase -i
签出分支之前。
git log A..B
# prints the commits between A's head and B's head
git log B..A
# prints nothing
git status
# On branch A
git rebase -i B
# got 'noop' because there are no commits in the log above
在这种情况下,它有助于交换两个受影响的分支。
git checkout B
git rebase -i A
rebase 命令的参数是要压缩的提交范围。在您的情况下,可能类似于:
git rebase -i <sha-1 for first commit>..HEAD^
(HEAD^ 是您分支负责人的父提交)。
然后,pick
将交互式脚本中的命令替换为squash