这个问题与其他问题的不同之处在于,我想在恢复一些提交的同时保留一些提交。
这是我的设置。
Upstream repo on github (public repo which I don't own)
Personal repo on my server(git clone --bare $upstream)
我的工作流程是这样的:
Need to customize my personal branch
1. check out origin/master(Personal)
2. make changes
3. push to origin/master
Need to get new feature or bug fix from the original author(github)
1. git fetch upstream
2. git merge upstream/master
现在我发现 upstream/master 有一个 bug 并且想要恢复,
我如何回到最后一次获取/合并上游之前的状态?
编辑。
认为
- 我在上游合并
- 我合并了团队成员推送到 origin/master 的内容(个人)
现在我想撤消第 1 步。
git reset --hard commit_sha_of_one_prior_the_merge_1
(虽然找到sha并不容易。git log显示了很多上游的提交sha,所以不容易找到commit-sha-of_one_prior_the_merge_1不是属于
upstream
但属于的origin/master
)
如何保持第 2 步合并?
假设一个稍微复杂的场景
- 我在上游合并
- 我合并了其他团队成员推送到个人的内容
- 我也把我的工作推到了个人
现在我想撤消上游合并。我该怎么做?