我在当地的回购邮件中做了一些提交,并将它们推送到了在线仓库。
然后我意识到有很多提交,我想把它们压成小块。最好是second last one
到first one
。即保持当前提交并压缩所有其他提交。
当我做的时候
git rebase -i origin/branch_name
弹出noop
的窗口。我没有看到任何pick
。我该怎么办?
答案 0 :(得分:2)
当我收到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
答案 1 :(得分:0)
rebase命令的参数是您想要压缩的提交范围。在你的情况下,可能是这样的:
git rebase -i <sha-1 for first commit>..HEAD^
(HEAD ^是分支机构负责人的父提交。)
然后,您通过pick
squash
命令