0

私の github アーカイブに対してプル リクエストを受け取りました。マージする前に最初にテストしたかったので、github が推奨するコマンドライン コマンドを使用しました (contrib1 は寄稿者のユーザー名を表し、patch1 はプル リクエストの名前を表し、repo は名前を表します)。リポジトリの)

   git checkout -b contrib1-patch1 master
   git pull https://github.com/contrib1/repo.git patch1

事前にいくつかの変更を行っていたため、(些細な) マージの競合は解決されました。これは、file1 を編集することで解決しました。このパッチには、他のファイル file2 への競合しない変更も含まれていました...

次に、githubの提案に再び従いました:

   git add file1
   git checkout master
   git merge --no-ff contrib1-patch1
   git push origin master

マージコマンドの結果、「すでに最新です」というメッセージが表示され、最初にコミットするのを忘れていたことがわかったので、基本的に手順を繰り返しました。

   git commit -m "Implements patch1 by contrib1" repo
   git checkout master
   git merge --no-ff contrib1-patch1
   git push origin master

繰り返しgit merge --no-ffますが、「すでに最新です」というメッセージが表示されました。リポジトリは正しいものになりましたが、競合する行だけでなく、すべてのファイルの変更の作成者として自分自身を責めていることを示しています。これは、外部貢献者にクレジットを割り当てるという観点からは悪いと感じています。

問題は、このシナリオを回避し、パッチ作成者が間違いや履歴ビューに表示されるようにするために、次回はどのコマンド シーケンスを使用する必要があるかということです。上記のパッチの履歴を変更することは気にしていないことに注意してください。次のパッチで正しく変更したいだけです。(明らかに「ローカル」の問題)を忘れるという間違いを犯していなければ、おそらく同じ問題が発生していたでしょうが、commit重要な場合は報告する必要があると感じました。

4

1 に答える 1

1

を使用git rebase -iして、コミットの元の作成者を設定します

 git commit --amend --author "Original Author Name <email@address.com>" 

著者を変更する方法の詳細については、こちらをご覧ください。メモリから、マージコミットの作成者を変更するためにジャンプする追加のフープがいくつかありますが、マージを行ったことを考えると、それは問題ないようです。

于 2015-12-06T18:54:56.217 に答える