- ターミナルを選択
- Git がインストールされていることを確認します。
- Gitの設定
- リポジトリの選択
- リポジトリのクローン
- ブランチ
- コマンドラインからの Git の高度な使い方
- フォークしたリポジトリでの変更をアップストリームと同期させます。
コマンドライン Git
Gitはオープンソースの分散バージョン管理システムです。GitLabはGitの上に構築されています。
GitLabでは多くのGitオペレーションを直接行うことができます。しかし、複雑なマージ競合の修正やコミットのロールバックのような高度な作業にはコマンドラインが必要です。
Gitの初心者で、自分のプロジェクトで作業しながら学びたい場合は、最初のコミットの方法を学びましょう。
Git コマンドのクイックリファレンスは、Git Cheat Sheet をダウンロードしましょう。
GitとGitLabで作業する利点の詳細については、こちらをご覧ください:
- GitLab Source Code Management Walkthroughビデオをご覧ください。
- GitLabがどのようにWorldline開発環境のバックボーンとなったかをご覧ください。
ローカルでの作業を視覚化するために、Git GUIアプリをインストールすることができます。
ターミナルを選択
コンピュータ上で Git コマンドを実行するには、ターミナル(コマンドプロンプト、コマンドシェル、コマンドラインとも呼ばれます)を開く必要があります。以下にいくつかのオプションを示します:
- MacOSユーザーの場合:
- 内蔵ターミナル。⌘ コマンド +スペース を押し、
terminal
と入力します。 - iTerm2。Zshや Oh My Zshとインテグレーションして、カラーハイライトやその他の高度な機能を使うことができます。
- 内蔵ターミナル。⌘ コマンド +スペース を押し、
- Windowsユーザー向け:
- 内蔵コマンドライン。Windowsのタスクバーで、検索アイコンを選択し、
cmd
と入力します。 - PowerShell.
- Git Bash。Git for Windowsに組み込まれています。
- 内蔵コマンドライン。Windowsのタスクバーで、検索アイコンを選択し、
- Linuxユーザー向け:
- Linuxターミナル内蔵。
Git がインストールされていることを確認します。
Gitがすでにインストールされているかどうかは、ターミナルを開いて次のコマンドを実行することで確認できます:
git --version
Gitがインストールされていれば、次のように出力されます:
git version X.Y.Z
お使いのコンピューターがgit
をコマンドとして認識しない場合は、Gitをインストールする必要があります。
Gitの設定
コンピュータからGitを使い始めるには、作品の作成者であることを示す認証情報を入力しなければなりません。ユーザー名とメールアドレスは、GitLabで使っているものと一致させてください。
-
シェルにユーザー名を追加します:
git config --global user.name "your_username"
-
メールアドレスを追加します:
git config --global user.email "your_email_address@example.com"
-
設定を確認するには、以下を実行してください:
git config --global --list
この
--global
オプションは、Git に対して、システムで何かをするときには常にこの情報を使うように指示--global
します。--global
省略--global
したり--local
を使ったりすると、その設定は現在のリポジトリにのみ適用されます。
Git がどのように設定を管理するのかについては、Git configuration documentation を参照ください。
リポジトリの選択
作業を始める前に、作業するリポジトリを選びましょう。GitLab.comや他のGitLabインスタンスでアクセス権限を持っているプロジェクトを使うことができます。
このページの例でリポジトリを使うには
- https://gitlab.com/gitlab-tests/sample-project/ にアクセスしてください。
- 右上にある「Fork」を選択します。
- フォークの名前空間を選択します。
プロジェクトはhttps://gitlab.com/<your-namespace>/sample-project/
で利用可能になります。
あなたがアクセスできるプロジェクトであれば、フォークすることができます。
リポジトリのクローン
リポジトリをクローンすると、リモートリポジトリのファイルがコンピューターにダウンロードされ、接続が作成されます。
この接続には認証情報を追加する必要があります。SSH または HTTPS を使用できます。SSH を推奨します。
SSHでクローン
SSHでクローンを作成する場合は、1回だけ認証を行います。
- SSHドキュメントの指示に従ってGitLabで認証してください。
- プロジェクトのランディングページに移動し、クローンを選択します。Clone with SSH の URL をコピーします。
- ターミナルを開き、ファイルをクローンしたいディレクトリに移動します。Git が自動的にリポジトリ名のフォルダを作成し、そこにファイルをダウンロードします。
-
次のコマンドを実行します:
git clone git@gitlab.com:gitlab-tests/sample-project.git
-
ファイルを表示するには、新しいディレクトリに移動します:
cd sample-project
リポジトリをクローンして Visual Studio Code で直接開くこともできます。
HTTPSでクローン
コンピュータとGitLabの間でオペレーションを行うたびに認証を行いたい場合、HTTPSでクローンを作成します。
- プロジェクトのランディングページに移動し、クローンを選択します。HTTPSでクローン」のURLをコピーします。
- ターミナルを開き、ファイルをクローンしたいディレクトリに移動します。
-
次のコマンドを実行します。Git が自動的にリポジトリ名のフォルダを作成し、そこにファイルをダウンロードします。
git clone https://gitlab.com/gitlab-tests/sample-project.git
-
GitLab はあなたのユーザー名とパスワードを要求します。
アカウントで二要素認証 (2FA) を有効にしている場合は、アカウントのパスワードを使うことはできません。その代わりに、次のいずれかの方法があります:
-
read_repository
またはwrite_repository
の権限を持つトークンを使用してクローンを作成します。 - OAuth認証ヘルパーをインストールします。
2FAを有効にしていない場合は、アカウントのパスワードを使用してください。
-
-
ファイルを表示するには、新しいディレクトリに移動します:
cd sample-project
Access denied
メッセージが表示された場合は、名前空間(ユーザー名またはグループ)をパスに追加してください:git clone https://namespace@gitlab.com/gitlab-org/gitlab.git
.トークンを使用したクローン
以下の場合、トークンを使用してHTTPSでクローンします:
- 2FAを使用したい場合。
- 1つまたは複数のリポジトリにスコープされた、取り消し可能なクレデンシャルのセットを持ちたい場合。
HTTPS 経由でのクローン作成時に、これらのトークンを使用して認証することができます:
git clone https://<username>:<token>@gitlab.example.com/tanuki/awesome_project.git
ローカルディレクトリをリポジトリに変換
ローカルフォルダを初期化して Git がリポジトリとして追跡できるようにすることができます。
- 変換したいディレクトリでターミナルを開きます。
-
次のコマンドを実行します:
git init
あなたのディレクトリに
.git
フォルダーが作成されます。このフォルダにはGitレコードと設定ファイルが含まれます。これらのファイルを直接編集してはいけません。 - Git があなたのファイルを正しいプロジェクトにアップロードできるように、リモートリポジトリへのパスを追加します。
リモートの
remote “を追加すると、GitLabのどのリモートリポジトリがあなたのコンピュータの特定のローカルフォルダに関連付けられているかをGitに伝えることができます。リモートは、Git にどこからプッシュするかプルするかを伝えます。
ローカルコピーにリモートを追加するには
- GitLabで、ファイルを保存するプロジェクトを作成します。
- このプロジェクトのホームページにアクセスし、下にスクロールして既存のフォルダをプッシュし、
git remote add
で始まるコマンドをコピーします。 -
コンピューターで、初期化したディレクトリのターミナルを開き、コピーしたコマンドを貼り付け、enterを押します:
git remote add origin git@gitlab.com:username/projectpath.git
ここまでできたら、ファイルをステージして GitLab にアップロードします。
リモートリポジトリを見る
リモートリポジトリを表示するには、次のように入力します:
git remote -v
-v
フラグは verbose を表します。
プロジェクトの最新の変更点をダウンロード
プロジェクトの最新のコピーで作業するには、pull
プロジェクトのクローンやプルを前回行ったとき以降のユーザーによるすべての変更を取得します。メインブランチのコードを取得するには、<name-of-branch>
をデフォルトブランチの名前に置き換えるか、現在作業しているブランチの名前に置き換えます。
git pull <REMOTE> <name-of-branch>
リポジトリをクローンする場合、REMOTE
は通常origin
になります。これはリポジトリのクローン元で、リモートサーバー上のリポジトリの SSH または HTTPS URL を示しています。<name-of-branch>
は通常デフォルトブランチの名前ですが、既存のブランチでもかまいません。必要に応じて、名前付きリモートやブランチを追加作成できます。
Git がリモートリポジトリを管理する方法については、Git Remote のドキュメントを参照ください。
ブランチ
ブランチは、ブランチを作成した時点でのリポジトリ内のファイルのコピーです。自分のブランチでは、他のブランチに影響を与えることなく作業を進めることができます。変更内容をメインのコードベースに追加する準備ができたら、ブランチをデフォルトブランチmain
などにマージします。
ブランチを使うのは、次のような場合です:
- プロジェクトにコードを追加したいが、正しく動作するかどうかわからない場合。
- プロジェクトで他の人と共同作業をしていて、自分の作業が混ざってしまうのが嫌な場合。
新しいブランチは、デフォルトブランチと区別するためにfeature ブランチと呼ばれることがあります。
ブランチの作成
機能ブランチを作成します:
git checkout -b <name-of-branch>
GitLab は問題を防ぐためにブランチの命名ルールを強制し、マージリクエストの作成を効率化するためにブランチの命名パターンを提供します。
ブランチへの切り替え
Git での作業はすべてブランチで行われます。ブランチを切り替えて、そのブランチでのファイルや作業の状態を見ることができます。
既存のブランチに移動するには
git checkout <name-of-branch>
例えば、main
ブランチに変更する場合:
git checkout main
差分を見る
ローカルのステージされていない変更と、クローンまたはプルした最新バージョンとの差分を表示します:
git diff
変更のあるファイルを表示
ファイルやフォルダーを追加・変更・削除すると、Git はその変更内容を知ることができます。どのファイルが変更されたのかを調べるには
git status
ローカルの変更を追加してコミット
git status
と入力すると、内部で変更されたファイルが赤く表示されます。これらの変更は、新規、変更、または削除されたファイルやフォルダです。
-
コミットするファイルをステージするには
git add <file-name OR folder-name>
-
追加したいファイルやフォルダーごとにステップ1を繰り返します。または、現在のディレクトリとサブディレクトリにあるすべてのファイルをステージするには、
git add .
. -
ファイルがステージングに追加されたことを確認します:
git status
ファイルは緑色のテキストで表示されます。
-
ステージされたファイルをコミットします:
git commit -m "COMMENT TO DESCRIBE THE INTENTION OF THE COMMIT"
ステージを作成し、すべての変更をコミットします。
ショートカットとして、1つのコマンドですべてのローカルの変更をステージに追加し、コミットすることができます:
git commit -a -m "COMMENT TO DESCRIBE THE INTENTION OF THE COMMIT"
GitLab.com に変更を送る
ローカルでの変更をすべてリモートリポジトリにプッシュします:
git push <remote> <name-of-branch>
たとえば、ローカルのコミットをorigin
リモートのmain
ブランチにプッシュします:
git push origin main
Git でリポジトリにプッシュできないこともあります。代わりに、強制的に更新しなければなりません。
ブランチのすべての変更を削除します。
トラックされたファイルのすべての変更を破棄するには
git checkout .
このアクションは、ファイルそのものではなく、ファイルへの変更を削除します。追跡されていない(新しい)ファイルは変更されません。
ステージングエリアに追加されたすべての変更のステージ解除
コミットされていないすべてのファイルをアンステージ(削除)します:
git reset
直近のコミットを取り消す
直近のコミットを取り消します:
git reset HEAD~1
このアクションでは、変更されたファイルやフォルダーはローカルリポジトリにステージされないまま残ります。
Git によるさまざまな取り消し方については、Git Undoing Things ドキュメント を参照ください。
デフォルトブランチとのマージ
デフォルトブランチに変更を加える準備ができたら、機能ブランチをマージします:
git checkout <default-branch>
git merge <feature-branch>
GitLab では、変更をマージするにはコマンドラインではなくマージリクエストを使うのが一般的です。
フォークからアップストリームリポジトリへのマージリクエストを作成するには、フォークワークフローを参照ください。
コマンドラインからの Git の高度な使い方
より高度な Git のテクニックについては、Git rebase、force-push、merge conflicts を参照ください。
フォークしたリポジトリでの変更をアップストリームと同期させます。
ネームスペースにリポジトリのコピーを作成するには、リポジトリをフォークします。リポジトリのコピーに加えられた変更は、元のリポジトリと自動的に同期されません。プロジェクトを元のプロジェクトと同期させるには、元のリポジトリからpull
を取得する必要があります。
元のリポジトリから変更を取り込むには、リモートリポジトリへのリンクを作成する必要があります。このリモートリポジトリをupstream
と呼ぶのが一般的です。
これで、upstream
を<remote>
として使用し、pull
新しい更新 を元のリポジトリから取得したり、origin
を使用してローカルの変更をプッシュしたり、マージリクエストを作成したりできるようになります。