私の 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
重要な場合は報告する必要があると感じました。