我在一个月前创建了一个分支机构。从那时起,主分支已经进行了大量更新,并且功能分支不包含这些更新。我希望我的提交位于更新的主分支之上,我只希望我的提交发布。我该怎么做(或者这甚至可能)?
更多信息: 我的本地分支提交已经被推送到远程分支,但不是主分支。
我尝试了git rebase
,但后来我收到一条消息,说我的分支已分歧"并分别对X和Y进行不同的提交。"
我不确定git push -f
是否能解决我的问题。我不希望我的远程分支记录在主分支上所做的更改。我只想让我的远程/本地分支机构“坐在最前面”#34;最新版本的master仍然只显示我的提交。
我不想将master“合并”到我的分支中,因为1000多次提交会掩盖我的提交,我只希望我的提交能够轻易地审核我的提交。
答案 0 :(得分:2)
根据您的说明,我非常确定git rebase
和git push -f
是您想要的。 rebase
命令会在更新的master
分支之上重播您的更改。这张照片(来自here)很好地代表了所发生的事情:
你得到"每个提交X和Y不同的提交"由于rebase导致一系列新提交,因此本地分支的历史记录不再与远程分支的历史记录匹配。
如果您尚未与其他人共享您的功能分支,则使用git push -f
时没有任何问题。这将只是重写远程功能分支以匹配您的本地功能分支。
如果其他人检查了他们的功能分支,他们需要重新同步他们的本地工作副本,可能是运行git fetch
后跟git reset --hard your/feature/branch
。
答案 1 :(得分:1)
这就是我为了改变我的分支而做的事情" davesBranch"和师父一起。