9

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 ファイルを手動で編集するのは非常に困難です。

4

3 に答える 3

1

別のGUIで遊んだ後、動作は実際にはツールに依存しているようです。悲しいことに、それらの多くは構成可能ではありません...

すべてが収まる最適化されたビューと比較して、実際に起こったことのツリービューを持つことを好みます...

私は「gitg」(http://trac.novowork.com/gitg/)に落ち着きました。比較的活発に見えます、そしてそれは私が歴史の見方から期待することを正確に行います。マスターは左端の「レーン」であり、ブランチはそこから分岐し、右からマージされます。私のワークフローと一致していると感じています。また、「非アクティブなレーン」を表示できるので、マスターは常に左端に表示されます(設定ウィンドウで有効/無効)。良い点は、「トポロジカルな順序で履歴を表示する」ことです。オンにすると、gitgはブランチにコミットを一緒に配置しようとします。チェックを外すと、時系列で表示されます。

また、基本的なコミットとステージングも実行できます。

私が見つけることができる唯一の欠点は検索です:sha1sumを入力して正しいコミットを見つけることができないようです。たぶんただのバグ。

元の質問について(gitkを希望どおりに構成できますか?)それが可能かどうかはまだわかりません。おそらく設計上の決定...

于 2010-12-23T15:24:06.100 に答える
1

「git log」はブランチがトランクにマージされていることを示し、gitk はトランクがブランチにマージされていることを示しています。

これは、他の多くのツールと同様に、gitk が親を自由に並べ替えるためです。一番左の親が常に 1 番目の親であるとは限りません。多くの場合、ツールはスペースがあればどこにでも親を配置します。最終的には、よりパックされたビューが提供されます。比較:

git-log のグラフはあまり人間工学的ではないことがわかりました。より多くの空白行が必要です。

于 2010-12-23T02:18:26.600 に答える
-1

github アカウントをお持ちの場合は、そこで " Network " ビューも試すことができます。

于 2010-12-24T23:10:51.020 に答える