这是我的问题。 我在GitHub上分享了一个回购。当repo上有更新时,我使用PR(更改基础)来更新我的fork。所以我的叉子显示
This branch is xx commits ahead of xxx/xxx
然后我改变了我叉子上的一些文件。当我尝试发送到PR时,它包括所有不必要的提交。 (由于PR我更新了我的叉子)。因此,我使用cherry-pick仅使用新分支进行最后一次提交。我的git命令是(branch-2是我添加提交的地方):
$ git branch feature origin/branch-2
$ git checkout feature
$ git cherry-pick branch-2
然后它选择了错误的提交(一些旧的提交)。这些命令有什么问题吗?
所以我试图通过SHA选择。然后它给出fatal: bad object xxxx
。我读到这是因为我的提交已损坏。
我想清理我的分叉,因此消息This branch is xx commits ahead of xxx/xxx
消失了。如果可以的话,我可以稍后添加最后一次提交。
请帮助我。
答案 0 :(得分:0)
要删除消息“此分支是xx在xxx / xxx之前提交”,您需要做的就是删除远程跟踪分支xxx / xxx:
git branch -d -r xxx/xxx
答案 1 :(得分:0)
你在一个分支上做了一个樱桃选择而不是一次提交
git cherry-pick branch-2
git将branch-2
转换为分支所指向的提交,并将其用作提取的提交。
git cherry-pick master
在master分支的顶端应用commit提交的更改,并使用此更改创建一个新的提交。
想要清理我的fork所以消息这个分支是xx提交,xxx / xxx之前就会消失。如果可以的话,我可以稍后添加最后一次提交。
# Discard the last X commits which your branch is ahead of
git reset HEAD~X