我们在Git中有两个分支,master
和develop
。合作伙伴小组不断更新master
,我不断将develop
分支机构重新定位到master
,类似这样:
#(on develop)
$ git pull --rebase origin master #1
$ git rebase origin/develop #2
$ git push origin develop #3
...但是昨天合作伙伴小组中的某个人在没有正确的电子邮件地址的情况下提交到master
,因此我在步骤#2
遇到问题:
git rebase origin/develop
First, rewinding head to replay your work on top of it...
Applying: <...>
<...>
Patch does not have a valid e-mail address.
和git status
显示:
$ git status
# Not currently on any branch.
# You are currently rebasing.
# (all conflicts fixed: run "git rebase --continue")
#
nothing to commit, working directory clean
我所做的是跳过没有git rebase --skip
地址的提交,然后在rebase之后挑选这些提交。但我想知道这是正确的方法吗?我可以直接在原地挑选提交,而不会跳过它吗?如果是,我如何实际找出这个有问题的提交(不在git log
中查找),因为它基本上是 next 提交,将被重新定位到当前的顶部提交,所以git必须知道它是哪一个......?
答案 0 :(得分:2)
您可以尝试Change the author and committer name and e-mail of multiple commits in Git
中的所有建议或者您可以在其中添加-i
以继续运行(如果您有持久的自动工具提交问题,或者只是想继续让别人解决他们的问题,那就很有用)
所以,当我得到
> git rebase master
First, rewinding head to replay your work on top of it...
Patch does not have a valid e-mail address.
我做git rebase --abort
,然后
> git rebase master -i
Successfully rebased and updated refs/heads/mybranch.
对于git 2.1.4。
显然,它会提供一个要编辑的rebase列表,但是你只需保存未经编辑的那个并继续前进。
是的,它与&#34;原作者&lt;&gt;&#34;
一起提交