私は次のことをしました:
git fetch upstream
git cherry-pick xyz
選択されたコミットは、ファイルの1つで、前のコミットですでに行ったのとまったく同じ変更があったため、これらの変更が再適用されなかったことを除いて、きれいに適用されました。
コードに関してはすべて問題ありませんが、履歴にコミットハッシュを含めたいと思います。私の歴史では、それは新しい名前で表示されます。これも可能ですか?私がgitmergeの「私たちの」戦略を読んでいる限り、それは一般的に可能であるように思われますが、単一のコミットに対してそれを行う方法は?
私はこれが欲しいので、後でコミットが私が持っていないものを持っていることを簡単に識別upstream
できます。現時点では、githubnetwork
ビューで、厳選されたコミットは、私が持っていない別のものであると考えています。
追加情報:@CharlesBの言うことは私には理にかなっています。merge -s ours
しかし、魔法はどのようになりますか?この場合、私にとって重要ではありませんでしたcherry-pick
。私が取りたかった変更は1つだけであり、の先端にあるためupstream/master
です。だから私はそれを試してみるために:git merge -s ours upstream/master
今やっているgit log --graph --pretty=oneline --abbrev-commit
と、次のようなものが表示されます。
* 9e8108b Merge remote-tracking branch 'mgencur/master' for better github netw
|\
| * aa7117d Fix displaying watchers/watching for incorrect user // this commit magically appeared after merge -s ours
* | ff05f8c Fix displaying watchers/watching for incorrect user // this is commit from cherry-pick of aa7117d
* | b7ca8ec older commit in my fork
* | <more commits in my fork>
|/
* 94d6870 Fix obtaining available users for testing purposes
* <older commits of upstream/master>
以前 の同じコマンドgit merge -s ours
は次のようになりました。
* ff05f8c Fix displaying watchers/watching for incorrect user // this is commit from cherry-pick of aa7117d
* b7ca8ec older commit in my fork
* <more commits in my fork>
* 94d6870 Fix obtaining available users for testing purposes
* <older commits of upstream/master>
コミットaa7117dのチェリーピッキングの後でわかるように、aa7117dがすでに私のフォークリポジトリに適用されているという兆候はありませんでした。しかし、マージ後、ファイル内に何も変更されていなくても、そこにあることが示されます。
そのため、アップストリームに適用されたとおりに正確に適用されていなくても、ブランチに含まれるいくつかのコミットを宣言することは確かに可能であると思います。
update2:Gitで特定のコミットをマージする方法とそのベストアンサーの質問が表示されます。ですから、なぜそれが不可能なのか、あるいは実装されていないのかについての説明もいただければ幸いです。