svn リポジトリを git に移植しています ( https://www.negativetwenty.net/redmine/projects/show/svn2gitから svn2git を使用)。svn はマージを追跡しないため、.git/info/grafts を手動で編集する必要があります。 . このために、gitk を起動し、コミット メッセージで「Merge」という用語を検索し、マージ コミットの祖先が正しいことを確認し、それに応じて .git/info/grafts を設定します。
私が抱えている問題は、gitk が「マスター」ブランチと混同されているように見えることです。多くの場合、マスターがブランチから「フォーク」され、ブランチのあとがきにマージされていることを示していますが、実際には逆です。
master が可能な限り「直線的」であるべきであり、それが逆ではなく、そこからフォークされるべきブランチであることを理解できないのはなぜですか? gitk の問題ですか、それとも git リポジトリの履歴が不完全ですか? 「git log --pretty=oneline --graph」は正しい動作を示しているようですので、gitkの問題ではないかと思います。
私もgiggleとqgitを試しましたが、どちらにも問題があります。ギグルのツリーは理解しにくいと思います (たとえば、マージは水平ですが、qgit と gitk では斜めになっています...)。また、qgit はいくつかのコミットを表示していないようです (svn でブランチを作成するコミットは、両方で git コミットとして表示されます)。 「git log --pretty=oneline --graph」と gitk ですが、qgit やクスクスではありません)。
テストで「gitk --all」を使用していることに注意してください。
私の質問は次のとおりです。理想的には「左揃え」で、ブランチが分岐され、その逆ではありません。「git log --pretty=oneline --graph」は正しいように見えますが、gitk はどうでしょうか。
ありがとう!
編集: スクリーンショットのリンクは無効です。以前に言った:
さまざまなツールのスクリーンショットをアップロードしました: git log、gitk、giggle、qgit
「git log」はブランチがトランクにマージされていることを示し、gitk はトランクがブランチにマージされていることを示しています。Giggle と qgit は適切なマージを示していますが、いくつかのコミット (ブランチの作成) をドロップすることが多いため、.git/info/grafts ファイルを手動で編集するのは非常に困難です。