4

Git には 2 つのブランチが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、リベース後にこれらのコミットをチェリーピックして戻すことです。しかし、これは適切な方法なのだろうか?コミットをスキップせずに、その場で直接チェリーピックできますか? はいの場合、この問題のあるコミットを実際に見つけるにはどうすればよいですか (で調べずにgit log)、基本的には現在のコミットの先頭にリベースされるのコミットであるため、git はどういうわけかそれがどれであるかを知る必要があります… ?

4

1 に答える 1

2

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 に当てはまります。

明らかに、編集するリベース リストが表示されますが、それを編集せずに保存して先に進みます。

はい、「原作者<>」でコミットします。

于 2015-10-14T23:32:25.460 に答える