#Gitのコマンドの使い方
流行りのバージョン管理システム"Git"を活用するのに最低限知っておくと良いコマンドのまとめです。基本的にgitでコマンドを打つときは管理したいファイルがあるディレクトリ、またはコピーしたいディレクトリに移動してからコマンドを実行します。
##リポジトリの作成など、準備段階で使用するコマンド
###リポジトリを初期化する $git init
gitを使って管理したいフォルダに移動してコマンドを入力することで、そのディレクトリ内を初期化してディレクトリ内でのgitコマンドを可能にする。
実際には$git init
コマンドによってディレクトリ内に.gitファイルが作成され、gitによる操作はこの中に保存されていく。
###リポジトリを複製する $git clone <URL>
既存のリポジトリ(インターネット上にgit hubなどでアップされているもの)を現在のディレクトリに複製する。
##作業ツリー内で操作・管理に使用するコマンド
作業ツリー内での変更点は変更点をコミットすることによって反映されます。
###コミットしたいファイルあるいはディレクトリを一度インデックスにあげる $git add <file name>
変更したファイル、コミットしたいファイルを一度インデックスに登録します。コミットするファイルを指定してaddしないと次のコマンドcommitはコミットするファイルがないというエラーを呼び出します。
ファイル名を列挙してもいいのですが、変更点が多い場合は現在のディレクトリ内を全て指定する$git add .
を使うとディレクトリがインデックスに登録できます。
###インデックスにあがったファイル等をコメントをつけてコミットする $git commit -m 'comment'
$git add
でインデックスに登録したファイルをコミットする。コミットする際にはコメントが必須となっていますが、-mオプションを指定することで一回のコマンド入力でコメントをつけてコミットすることが可能です。
###直前のコミットを取り消す $git reset
コミット後に小さなミスなどに気付いた場合、コミットを取り消してミスを修正してコミットし直したいというようなことがあります。
その際$git reset --soft HEAD^
コマンドで直前のコミットが取り消されます。ファイルを修正してコミットし直しましょう。
作業ツリーへの変更点も取り消したい場合は
--hard HEAD^
オプションを指定することで実現可能です。
###指定したコミット時点に戻す。$git revert <コミット名>
作業ツリーを指定したコミット時点に戻すことができます。
resetと違う点は、過去のある時点での状態を現在の時点に上書きするという寸法なので、revertはlogとして残されます。
###ブランチ関係の操作をする
-
$git branch
存在するブランチの確認。 -
$git branch <ブランチ名>
<ブランチ名>のブランチを作成 -
$git checkout <ブランチ名>
<ブランチ名>のブランチに切り替え。 -
$git merge <ブランチ名>
<ブランチ名>のブランチを現在のブランチに取り込む。この時、変更点が重複している時(同じ箇所に異なる変更が存在した時)にコンフリクト(衝突)が起こる。コンフリクトの解消法は別途参照を願います。
###変更されたファイルの一覧を表示する $git status
変更が加えられたファイルを一覧表示する。
###コミットログを見る $git log
過去のコミットログを表示する。
##リモートリポジトリを活用して作業する時のコマンド
###初期設定
$git remote add <name> <url>
活用するリモートリポジトリをという名前で登録する。push,pullを行うときは、リポジトリ名を省略するとデフォルトでoriginという名前を使用するため、リモートリポジトリにもoriginという名前をつけるのが一般的。
###リモートリポジトリにローカルリポジトリの内容を登録 $git push <リモートリポジトリ名> <ブランチ名>
ローカルでコミットした変更点をローカルリポジトリにpushする。活用しているサービスに応じてユーザー名とパスワードの入力を適宜行ってください。リモートリポジトリ名、ブランチ名は省略可能で、その場合はoriginにpushされます。
###他の変更点をローカルにマージする $git pull <リモートリポジトリ名>
他の開発者がpushした内容を自分のローカルリポジトリにマージします。
リモートリポジトリを指定しない場合はデフォルトでoriginから引っ張ってくる設定になっています。(リモートリポジトリの名前はoriginにしておくと共同開発作業はスムーズに進むでしょう。)