GitKraken の詳細なグラフィック チュートリアル

序文

この記事を書いた理由は、グループ内の製品学生と美術学生が git ワークフローに参加し始めたためですが、インターネット上でより詳細なチュートリアルが見つからなかったので、単純に [doge] を書きました。記事の内容は比較的基本的なもので、Git の基本的な概念と基本的な操作を紹介しており、基礎がゼロの人向けの入門ガイドとして適しています。

Git の一般的な概念

1. ウェアハウス (リポジトリ/リポジトリ): コードとリソースのウェアハウス。Git はローカル ウェアハウスとリモート ウェアハウスに分かれており、Git は起動時やアクティブなプル時にリモート ウェアハウスの内容をローカル ウェアハウスに同期します。リモート ウェアハウスはサーバー上でホストされ、コピーは 1 つだけ存在し、常に最新の状態に保たれます。ローカル ウェアハウスのコピーは複数存在でき、各ユーザーのローカル ウェアハウスは相互に影響を与えず、オフラインで変更できます。

2. クローン: リモート倉庫が構築されており、ローカル倉庫がない場合。リモート ウェアハウスはローカルにクローンを作成する必要があります。クローンが完了したばかりの時点では、ローカル ウェアハウスはリモート ウェアハウスとまったく同じになります。

3. ブランチ (ブランチ): ウェアハウスでは、コミットが初期化されるときに初期マスター ブランチが生成されます。その後、このマスター ブランチの上に他の新しいブランチを作成できます。いくつかの操作を実行する必要があり、他の操作に影響を与えたくない場合は、ブランチを個別に作成し、そのブランチ上で関数を開発し、最後にそれをトランクにマージ (マージ) することができます。

ローカルブランチとリモートブランチの間にも違いがあり、リモートブランチはブランチの内容をリモート倉庫に記録します。ローカル ブランチは、ローカル ウェアハウスの変更されたコンテンツを保存するためのものです。リモート ブランチはあるが、対応するローカル ブランチがない場合は、チェックアウト (チェックアウト) してローカル ブランチを取得できます。

GitKraken の左側には、すべてのローカル (Local) およびリモート (Remote) ブランチが表示されます。同時に、中央のメイン パネルにリモート ブランチとローカル ブランチが表示され、リモート ブランチは円形のアイコン、ローカル ブランチは小さなコンピュータ アイコンとして表示されます。

GitKrakenインターフェースの紹介

メインインターフェース

GitKraken のメインインターフェイスは次のとおりで、上部に現在のプロジェクトが表示されます。中央にはグラフィカルな Git 提出レコードがあり、現在のプロジェクトの提出ステータスを確認できます。左側にはローカル/リモート ブランチとストレージ領域があります。右側はファイル変更領域です

Gitファイル変更領域

ファイル変更領域では、ファイルが変更されると、次のプロンプトが表示されます。

「変更の表示」をクリックして次のインターフェースに切り替え、現在の変更を処理します。

右側のファイル変更領域では、いくつかの異なるファイル状態を確認できます。

黄色はファイルが変更されたことを意味します(ローカルとリモートは異なります)

赤はファイルが削除されたことを意味します(リモートは存在しますが、ローカルは存在しません)

緑色は、ファイルが新しいファイルであることを意味します(ローカルに存在し、リモートには存在しません)

ここで注意していただきたいのは、ローカルに変更がなかった場合、変更エリアは表示されないということです。

右側の変更領域でファイルを左クリックすると、変更プレビュー インターフェイスが表示されます。特定のファイルの変更ステータスを確認できます。サイドバーにはファイルの変更ステータスのサムネイルがあり、これをドラッグして対応する変更場所を見つけることができます。左側が実際の改造箇所です。表示後、ファイルを一時的に保存するか、プレビューを閉じるかを選択できます。

GitKrankenの基本操作

変更を破棄 ( Discard )

ローカル変更を望まない場合は、ローカル変更を破棄することを選択できます。具体的な操作は次のとおりです。

(1) 単一の変更を破棄する

変更が必要な場合は、変更領域でファイルを右クリックし、「変更を破棄」を選択します。

その後、確認のポップアップウィンドウが上部に表示されます。「ステージングされていない変更を破棄」ボタンをクリックして、変更前の状態に戻します。

変更されたファイルと削除されたファイルはどちらも破棄できます。新しく追加したファイルの場合、復元したい場合は、右クリックして [ファイルの削除] を選択する必要があります。

(2) フォルダ内の変更内容を破棄します。

ファイル内のすべての変更を破棄したい場合は、最初に変更領域をツリー モードに切り替えて、変更領域内のファイルがツリー構造で表示されるようにする必要があります。

次に、破棄するフォルダーを右クリックして選択し、「フォルダー内のすべての変更を破棄」をクリックします。

次に、上部のポップアップウィンドウで「ファイルをリセット」をクリックします。

(3) すべての変更を破棄します。

すべての変更を無視したい場合は、左上隅にあるゴミ箱をクリックします。

次に、ポップアップウィンドウが上部に表示されます。「すべてリセット」をクリックして変更領域全体をクリアします。

ストレージ (隠し場所)

上部にある [Stash] をクリックして、すべての変更を現在の変更領域に保存します。

対応する変更は、下の図の小さな引き出しに配置されます。そして、Stash にはブランチに応じて自動的に名前が付けられます。開発時に保存されたメッセージには、開発時に自動的に WIP という名前が付けられます。

Stash の名前を変更したい場合は、この小さな引き出しをクリックし、右側の Stash Message ボックスをクリックして、このメッセージを変更します。

将来、このスタッシュ内の変更を復元したい場合は、小さなドロワーが配置されている行を右クリックし、「スタッシュをポップ」を選択します。

変更をコミットする ( Commit )

Git はオフライン開発作業を完了でき、現時点ではリモート ブランチに影響を与えることなく、すべての送信を最初にローカル ブランチに送信 (コミット) できます。

具体的な操作は、変更したファイルにマウスを移動し、右側の StageFile をクリックしてファイルを一時的に保存 (Stage) することです。

ファイルが下の「ステージングされたファイル」領域に移動されたことがわかります。

すべてのファイルを一時的に保存したい場合は、右上隅にある「すべての変更をステージング」をクリックします。

フォルダーごとの一時保存はフォルダーを右クリックし、ステージフォルダーを選択します。

一時的に保存する必要があるすべてのファイルが一時ストレージ領域に配置されたら、コミット メッセージに変更ログを入力し、[変更のコミット] をクリックして変更をローカル ウェアハウスに送信します。

変更を送信すると、メイン インターフェイスのログに対応する送信レコードが表示されることがわかります。

プル_

他の人がリモート ブランチに変更を送信した場合、プル操作を通じて他の人の変更をローカル ブランチに同期する必要があります。Pullの操作は非常に簡単で、上部のPullボタンをクリックするだけです。

プルを行う前には、ローカル ブランチのステータスには次の 2 種類があります。

最初のタイプは最も単純で、ローカルとリモートの両方が同じ回線上にあります。ファイルがローカルにコミットされていないが、他のファイルがいくつかの変更をリモート ブランチにプッシュしたことを示します

この時点で、プル操作の実行後、リモート ブランチとローカル ブランチの識別子は同じ場所にあり、プルが成功し、ローカル ブランチとリモート ブランチがまったく同じであることを示します。

2 番目のタイプの状況は、変更がローカルで行われ、コミット後にリモート エンドにプッシュされない場合です。

現時点では、ローカル ブランチとリモート ブランチは 2 つの回線上にあり、ローカル ブランチとリモート ブランチはマージされていません。リモート ブランチの変更時刻がローカル コミットより後の場合、リモート ブランチはローカル ブランチの上に表示されます。

それ以外の場合は、リモート ブランチがローカル ブランチの下に表示されます。

「プル」をクリックするだけでプルできます。プルが完了すると、リモート コードとローカル コードはまだ 2 行にありますが、リモート ブランチがローカル ブランチに収束していることがわかります。これは、プルが成功したことを意味します。

_を押す

ローカル ブランチの変更をリモート ブランチにプッシュする必要がある場合は、プッシュ操作が必要です。プッシュ操作はプッシュの前に実行する必要があり、プッシュ操作は内容の後にのみ実行できることに注意してください。リモート ブランチはローカル ブランチと同期されます。

プッシュ操作も非常に簡単で、上部の「プッシュ」をクリックするだけです。

プッシュが成功すると、この時点で小さなドットと小さなコンピューターが同じ行にあることがわかります。これは、プッシュが成功し、ローカル ブランチとリモート ブランチがまったく同じであることを意味します。

ブランチの作成 (ブランチの作成)

ブランチを作成する場所を右クリックし、「ここにブランチを作成」を選択します

すると、左側にブランチ名を入力するポップアップウィンドウが表示されますので、ブランチ名を入力後、Enterをクリックするとブランチが作成されます

ここで入力したブランチは testBranch と呼ばれます。作成後、ローカル ブランチを表す小さなコンピュータ アイコンが表示されることがわかります。

チェックアウトブランチ ( Checkout )

ブランチを切り替えたい場合は、切り替えたいブランチを右クリックし、「チェックアウト ブランチ名」を選択することで、チェックアウトから切り替えることができます。(この操作はブランチを直接ダブルクリックして簡略化することもできます)

このブランチに切り替えると、ブランチの左側にチェックマーク」アイコンが表示されます。

Checkout は、ローカル ブランチまたはリモート ブランチに切り替えることを選択できます。ローカル ブランチがない場合は、リモート ブランチがあるドットを直接ダブルクリックできます。

ローカルブランチが自動的に生成されます。

ローカル ブランチがすでに存在し、ローカル ブランチとリモート ブランチが同じ場所にない場合は、[リモート ブランチをチェックアウト] を選択すると、次のプロンプトが表示されます。[ここでローカルをリセット] を選択すると、すべてのローカル ブランチをリセットし、リモート ブランチが存在する場所に同期するのと同じになります。(特に注意してください。この操作ではプッシュされていないローカルコミットがすべて破棄されるため、この操作を安易に実行しないでください)ローカル ブランチをリセットしたくない場合は、[キャンセル] を選択してキャンセルできます。ほとんどの場合、ローカル ブランチがある場合は、まずローカル ブランチをチェックアウトし、次にプルして最新に更新します。

ブランチをマージする ( Merge )

マージ操作は、異なるブランチ間で実行できます。たとえば、ブランチでいくつかの変更を加え、その変更をトランクに同期した後、マージ操作を実行できます。同時に、トランクの変更を自分のブランチに同期させることもできます。

具体的な操作としては、まずターゲットブランチに切り替えてから、マージするソースブランチを右クリックし、「ソースブランチをターゲットブランチにマージ」を選択します。このようにして、ソース ブランチのコンテンツをターゲット ブランチにマージできます。

マージが成功すると、マージされたログが自動的に生成されます。そして、ソースブランチによって表される線もターゲットブランチに収束します

コミットの採用(Cherry Pick Commit)

場合によっては、「ピクチャの追加」(A)、「ピクチャパラメータの変更」(B)、「コードの変更」(C) など、特定のブランチに対して複数の変更を行うことがあります。この時点で、別のターゲット ブランチに変更を適用したいが、他の変更をターゲット ブランチにマージしたくない場合は、Cherry pick commit を通じてこの操作を実装できます。

具体的な手順は、採用する提出物を右クリックし、[Cherry pick commit] を選択します。

操作が完了すると、ターゲットブランチで採用されたコミットと同じログを確認できます。

コミットを元に戻す

送信された変更を送信前の状態に戻したい場合は、「コミットを戻す」操作を使用できます。復元する必要があるコミットを右クリックし、「コミットを元に戻す」を選択するだけです。

操作が完了すると、Revert ログが自動的に生成されます

対立を解決する

競合への対処は、git ワークフローの中で最も面倒な部分です。一般的な理由は、2 つのブランチが同時にファイルを変更したことです。このような状況をシミュレートする簡単な例を次に示します。BranchA と BranchB の両方には、変数 a を宣言するファイル TestScript.cs があり、a の値は最初は 0 です。

System.Collections を使用したXML

System.Collections.Generic を使用します。
UnityEngine を使用する。

public class TestScript : MonoBehaviour
{     int a = 0; }

次に、a の値を BranchA では 100、BranchB では 50 に変更します。次に、BranchB を BranchA にマージしてみます。

左下隅に「マージに失敗しました」というプロンプトが表示されることがわかります。

また、上部には黄色のプロンプトが表示され、ファイル変更領域の競合ファイルにはどのファイルが競合しているかが表示されます。

競合領域内のファイルをクリックして、競合を処理するためのインターフェイスに入ります。競合インターフェイスには 3 つの領域があることがわかります。

左上隅はBranchAのコンテンツです

右上隅はBranchBのコンテンツです

一番下は出力領域の内容です

このとき、BranchA の提出を採用したい場合は、競合が発生している行の左側にあるチェック ボックスをクリックします。

以下の出力エリアの内容もBranchAと同じ変更になっていることがわかります。

この時点で競合は解決されます。右上隅の「保存」ボタンをクリックして、競合処理インターフェースを終了します。

この時点で、TestScript.cs が競合領域から以下の一時記憶領域に移動したことがわかります。そして、コミットメッセージが自動的に入力されます。この競合処理を使用する場合は、左側の「コミットしてマージ」をクリックして、競合をマージするプロセス全体を完了します。

マージ成功のコミットメッセージもメインインターフェイスに表示されます

実際の運用プロセスでは、1 つのファイル内に複数の競合が発生します。出力領域 Output が表示され、競合 n/m が表示されます。n は n 番目の競合が現在表示されていることを意味し、m は合計で競合が何件あるかを意味します。右側の矢印をクリックして、さまざまな競合を切り替えることができます。

場合によっては、1 つのファイル内に競合が多すぎることがあります。あるいはプレハブやシーンを変更しているため、競合にいちいち対処する方法がわかりません。このとき、上部にある 2 つのチェック ボックスを直接クリックして、どのブランチ ファイルを直接使用するかを選択できます。たとえば、左側の A のチェック ボックスをクリックします。これは、BranchA でファイルを直接採用し、BranchB での変更を完全に無視することを意味します。後で、競合が解決されるのを待ってから、BranchB の変更を手動で追加して戻すことができます。

競合に対処するときにどのファイルを直接使用するかを扱うときは、次の原則に従って選択することをお勧めします。

(1)他人が改変したファイルを優先して利用する

(2)リモートブランチファイルの使用を優先する

(3)リビジョンが多いファイルを優先して使用する

競合に対処するもう 1 つの単純かつ失礼な方法があります。それは、[競合したファイル] で [すべて解決済みとしてマーク] を選択することです。

このようにして、GitKranken はすべての競合を解決済みとしてマークします。しかし実際にはファイルの内容は正しくなく、例えば先ほどのaの値を変更する例で、「すべて解決済みとしてマーク」を選択した場合の出力内容は下図のようになります。同時に 2 つのブランチの内容を入力すると、

Git によって自動的に出力されるプロンプト「<<< Head === >>> BranchA」は、最終的には手動で解決する必要があります。

GitKrankenの動作プロセス

1.変更領域をクリアします

ブランチをプルまたは切り替える前に、まず変更領域をクリアする必要があります。

クリアするにはいくつかの方法があります。

(1) 変更の破棄(Discard)

(2) ストレージ(Stash)

(3) 修正を送信(コミット)

特定の操作については、前章の対応する基本操作を参照してください。

2.分岐を決定する

変更領域をクリアした後、どのブランチを操作するかを決定する必要があります。次に、対応するブランチに切り替える必要があります。まず、ブランチがローカルに存在するかどうかを確認できます。(左側のローカル列) (存在する場合)。ブランチを直接ダブルクリックして、ブランチに切り替えます。ブランチのローカル ウェアハウスが存在しない場合は、リモート ブランチを直接ダブルクリックして、対応するブランチをローカルでチェックアウトして切り替えを完了できます。

3.リモートブランチを同期する

対応するブランチに切り替えた後、リモート ウェアハウスの変更をローカル ウェアハウスに同期するには、プル操作が必要です。「プル」ボタンをクリックしてプル操作を完了します

4.ローカルで変更する

ローカルで変更を行う場合、ローカル ブランチを自由に作成し、保存したり、ローカルに送信したりできます。

ストレージ ボタンをクリックすると、上部に小さな引き出しアイコンが表示され、すべてのローカル変更が一時的にこのストレージに保存されます。

次に、最新のブランチを再度プルして、最終的な効果を確認します。

まだ変更する必要がある場合は、最新のブランチで直接変更できます。状況に応じて保存した内容を復元することもできます。保存したばかりの小さな引き出しを右クリックし、[Pop Stash] を選択して、変更を復元します。

よくある質問

1.ファイルが他のプログラムによって使用されている

ファイル操作(Stash、Discardなど)を行う際に、以下のポップアップウィンドウが表示され操作できなくなる場合があります。その理由は、一部のファイルがプレーヤー、画像ビューアーなどの他のプログラムで使用されているためです。このとき、ファイルを占有しているプログラムを閉じる必要があります。これにより、操作がスムーズに進みます。(実際にどのプログラムであるか分からない場合は、コンピュータを再起動してください)

2.ブランチの切り替えに失敗しました。チェックアウトに失敗しました。

分岐切り替えを行う際、変更領域がクリアされていないため、以下のエラーが報告される場合があります。変更エリアをクリアしてから分岐を切り替えます。

作るのは簡単ではありませんが、この記事が役に立ったと思ったら、小さな手を動かして親指を立ててくださいღ( ´・ᴗ・` )愛

おすすめ

転載: blog.csdn.net/shaobing32/article/details/132314377