前回の記事では、基本的なGitワークフローについて学びました。この記事では、その他のリポジトリアクション、分岐、タグ付けなどの高度な機能に焦点を当てます。以前の記事と同様に、これもGitの実践ガイドです。
その他のリポジトリアクション
名前の変更
名前が示すように、名前変更操作は、トレースされたファイルが変更されたことをGitに指示します。ファイルの名前を変更するには、次のコマンドを実行します:
$ git mv README NEW-README
次に、リポジトリのステータスを確認しましょう:
$ git status -s R README -> NEW-README
上記の出力文字R READMEの前に表示されます。これは、ファイルの名前が変更されたことを示します。次の列には、新旧のファイル名が表示されます。
注: リモートリポジトリでこれらの変更を行うには、gitpushコマンドを実行します。
移動
移動操作は、あるディレクトリの場所から別のディレクトリの場所にファイルを移動するために使用されます。ファイルを移動するには、次のコマンドを実行します:
$ mkdir new-dir $ git mv README new-dir/
この例では、新しいディレクトリを作成し、ファイルをそのディレクトリに移動しました。次に、リポジトリのステータスを確認しましょう:
$ git status -s R README -> new-dir/README
上記の出力は、ファイルが新しいディレクトリに移動されたことを示しています。
注: リモートリポジトリでこれらの変更を行うには、gitpushコマンドを実行します。
削除
名前が示すように、削除操作はGitからファイル/ディレクトリを削除します。ファイルを削除するには、次のコマンドを実行します:
$ git rm README
次に、リポジトリのステータスを確認しましょう:
$ git status -s D README
上記の出力では、ファイルがリポジトリから削除されたことを示すREADMEの前に文字Dが表示されます。
注: リモートリポジトリでこれらの変更を行うには、gitpushコマンドを実行します。
リセット
この操作により、現在のHEADが指定された状態にリセットされます。 Gitでは、HEADは最新のコミットを指す参照ポインターです。
例を挙げてこれを理解しましょう:
$ touch AUTHORS $ git add AUTHORS $ git status -s A AUTHORS
上記の例では、AUTHORSファイルを作成し、それをチェンジセットに追加しました。これで、このファイルは次のコミットの一部になります。 GitリセットコマンドはHEAD参照を調整し、チェンジセットからファイルを削除します
$ git reset HEAD AUTHORS
それでは、リポジトリのステータスを確認しましょう:
$ git status -s ?? AUTHORS
予想どおり、上記の出力は、ファイルが変更セットから削除されたことを示しているため、 ?? ファイル名の前に記号が表示されます。
ブランチの操作
バージョン管理システムのブランチは、独立した開発ラインです。他のバージョン管理システムとは異なり、Gitでは分岐は非常に軽量です。このセクションでは、ブランチに関連するさまざまな機能について説明します。
ブランチを作成
新しいブランチを作成するには、次のコマンドを実行します:
$ git branch my-feature-branch
上記のコマンドでは、my-feature-branchはブランチ名です。このコマンドはローカルブランチを作成します。
リモートブランチを作成するには、次のようにgitpushコマンドを実行します。
$ git push origin my-feature-branch
リストブランチ
ブランチを一覧表示するには、引数なしでブランチコマンドを実行します。
$ git branch * master my-feature-branch
たとえば、上記の出力にはローカルブランチが一覧表示されます。アスタリスク記号は現在のブランチを表します。私たちの場合はマスターブランチです。
ローカルブランチとリモートブランチを一覧表示するには、次のコマンドを実行します。
$ git branch -a * master my-feature-branch remotes/origin/HEAD -> origin/master remotes/origin/master
上記の出力で、赤い色で強調表示されているブランチはリモートブランチです。
ブランチを削除
ローカルブランチを削除するには、次のように-dオプションを使用します。
$ git branch -d my-feature-branch
ブランチmy-feature-branchを削除しました(以前は220bf4dでした)。
リモートブランチを削除するには、次のコマンドを実行します:
$ git push origin :my-feature-branch
gitにリモートブランチを削除するように指示するブランチ名でcolon(:)を使用していることに注意してください
ブランチの切り替え
ブランチを切り替えるには、次のようにcheckoutコマンドを実行します。
$ git checkout my-feature-branch
ブランチ「my-feature-branch」に切り替えました
次に、現在のブランチを確認しましょう:
$ git branch master * my-feature-branch
チェックアウトブランチ
これまで、個別のコマンドを使用して、ブランチを作成して切り替えてきました。ただし、これは次のように1つのコマンドで実現できます。
$ git checkout -b my-feature-branch
新しいブランチ「my-feature-branch」に切り替えました
次に、現在のブランチを確認しましょう:
$ git branch master * my-feature-branch
作業ツリーを復元する
Gitを使用すると、コミットされていない変更を破棄できます。これは、checkoutコマンドを使用して実現できます。例を挙げてこれを理解しましょう。
最初に既存のファイルを変更し、リポジトリのステータスを確認します:
$ echo "Update README" >> README $ git status -s M README
READMEファイルの変更を破棄するには、次のコマンドを実行します。
$ git checkout -- README $ git status -s
予想どおり、作業ツリーはクリーンであるため、最後のコマンドは出力を表示していません。
ブランチをマージ
名前が示すように、マージ操作は1つのブランチから別のブランチに変更を適用します。このステップバイステップで理解しましょう。
最初に新しいブランチを作成し、このブランチで変更をコミットします:
$ git checkout -b my-feature-branch
新しいブランチ「my-feature-branch」に切り替えました
$ echo "Update README" >> README.md $ git add README.md $ git commit -m "Updated README" [my-feature-branch 42e28aa] Updated README 1 file changed, 1 insertion(+)
マスターブランチに切り替えて、マスターブランチに変更を適用しましょう
$ git checkout master
ブランチ「マスター」に切り替えました
ブランチは「origin/master」で最新です。
$ git merge my-feature-branch Updating 220bf4d..42e28aa Fast-forward README.md | 1 + 1 file changed, 1 insertion(+)
次に、変更がマスターブランチに適用されていることを確認しましょう:
$ git log -1 --oneline 42e28aa (HEAD -> master, my-feature-branch) Updated README
タグの操作
タグは、Git履歴内の特定のコミットへの参照ポインターです。多くの場合、タグは製品のリリースバージョンをマークするために使用されます。このセクションでは、作成、一覧表示、削除などの基本的なタグ操作について説明します
タグを作成
タグの作成はとても簡単です。タグを作成するには、次のコマンドを実行します:
$ git tag my-tag
上記のコマンドは、my-tagという名前のタグを作成します。リモートリポジトリにタグを作成するには、次のようにpushコマンドを実行します。
$ git push origin my-tag
リストタグ
タグを一覧表示するには、次のように引数なしでGitタグコマンドを実行します。
$ git tag my-tag
タグを削除
タグを削除するには、次のように-d引数を指定してGitタグコマンドを実行します。
$ git tag -d my-tag Deleted tag 'my-tag' (was 220bf4d)
リモートリポジトリからタグを削除するには、次のコマンドを実行します。
$ git push origin :my-tag
結論
この記事では、いくつかの高度なGit操作について例を挙げて説明しました。このチュートリアルを参照すると、プロジェクトでGitを流暢に使用できます。この記事が気に入ったら、フィードバックやコメントを共有してください。