ブランチと手術

マージとリベース

サイドバーから

ブランチを右クリックすると 現在のブランチへマージ や この上にリベース が 選べます。普通のマージがいつも同じところで失敗するなら オプション付きでマージ… を使ってください。マージオプション を参照。

ref を別の ref にドラッグする

アプリでいちばん速いジェスチャーです。ブランチをつかんで、別のブランチの上に落と します。Gitcito はそのドロップがどういう意味になりうるかを小さなメニューで見せ、 あなたが選ぶまで何もしません。

ブランチを別のブランチにドラッグすると、そのドロップの意味を選ぶメニューが開く

ref が表示される 両方 の場所で使えます — サイドバーのブランチ、リモート、タグ の行と、グラフのなかの色付き ref バッジ です。どの組み合わせでもドラッグでき、 ドロップ先はホバー中にハイライトされます。

ドロップ 意味
{source} を {target} にマージ ターゲットをチェックアウトし、そこへソースをマージします
{source} を {target} の上にリベース ソースのコミットをターゲットの上に載せ直します
比較 比較 を開きます — 何も変更しません

メニューには git にできることだけが並びます。 マージはターゲットの上にコミット するので、ターゲットはローカルブランチでなければなりません。タグやリモート追跡 ref にはマージできません。リベースはソースを書き換えるので、ソースがローカルブラ ンチである必要があります。リモートブランチの上にタグを落とすと 比較 しか出てき ませんが、それが本当に唯一できることだからです。

リベースは先に確認を求めます。載せ直したコミットにはすべて新しいハッシュが付くの で、ブランチをすでに公開しているなら強制プッシュになるからです。マージは尋ねませ ん — 追加するだけだからです。どちらの場合も、取り消し 一回で元に戻せます。

マージ

可能なら fast-forward、トポロジーを記録に残したいときはマージコミットを強制でき ます。コンフリクトしたら リゾルバ に着地します。

任意の 2 つの ref を比較する

ベースと比較対象の ref を選ぶと — ブランチ、タグ、生の SHA が使え、入れ替えボタン も付いています — 進み/遅れの件数、それぞれの側に固有のコミット、まとめた差分の全 体、そして PR を作成 へのワンクリックの受け渡しが得られます。

2 つのブランチの比較。それぞれの側に固有のものと、まとめた差分

サイドバー(現在のブランチとの比較)、ツールメニュー、⌘K から開けます。

チェリーピック、リバート、リセット

チェリーピックとリバートは、これまでどおりグラフのコンテキストメニューにあります。 リセットは 1 つの項目 — コミットへリセット… — になりました。互いに矛盾する soft/mixed/hard の生の 3 項目を並べるのはやめました。

修正・取り消し・リセットは単一コミットメニューの先頭に並び、危険なときも 表示されたまま です。無効になり、理由を伝えるツールチップが付きます。 取り消しは未プッシュの HEAD 専用です。修正は公開済みの HEAD にも使えますが、 強制プッシュが必要になると警告します。リセットが届くのはローカルの祖先と最初の 公開済みコミットまでで、それより古い任意の履歴には届きません。

リセットのダイアログはモードを明示します:

コミットへリセットのダイアログ。3 つのモードが明記されている

モード 結果
Soft 変更をステージされたまま残す
Mixed 変更をステージされていない状態で残す
Hard コミットとその変更を破棄する

Hard があらかじめ選ばれていることは決してありません。作業ツリーが汚れていると 追加の警告が出ます。リセットは進行中の作業を上書きしたりコンフリクトさせたり しうるからです。GitHub で見る はコピー系のアクションと並んでいて、github.com リモートに公開済みのコミットに対してだけ開きます。

先に複数のコミットを選択しておけば、チェリーピックは選択したものを順番にまとめて 適用します。

何かをマージする前に

コンフリクトレーダー は、すべてのブランチをベースに対して スキャンし、どれが揉めるかを何もチェックアウトせずに教えてくれます。

関連項目: 対話的リベース · スタックブランチ · コンフリクトレーダー

この翻訳を GitHub で改善