Edited at

gitコマンドの基本的な使い方

More than 3 years have passed since last update.

今更感漂うが、自分用に。


リポジトリの作成/複製


リポジトリの作成

カレントディレクトリに.gitファイルを作成する。gitのリポジトリを新しく作る時用。

> git init


リポジトリの複製

複製する場合はgit cloneを使う。githubから持ってくる場合はこっち。

ローカルでのディレクトリ名を指定したい場合は、ディレクトリ名を引数で渡す。

> git clone <gitのURL> [ディレクトリ名]

最新リビジョンのみ取得したい場合、--depthを用いて指定する。

リビジョンを指定しないと過去の履歴を全て取得するので時間がかかる。

> git clone --depth 1 <gitのURL> [ディレクトリ名]


コミット

git addを実行した後に、git commitを実行する。

git commit実行時にメッセージオプションを付けない場合はエディタが開いてめんどくさいので、つけたほうが楽。

#コミットするファイルを追加

> git add [ファイル1] [ファイル2] ・・・

# 一括で登録する時
> git add [-A | -u | .]

#gitへのコミット
> git commit [-a] [-m "コミットメッセージ"]



  • git add -A 新規作成/変更/削除されたファイル全てを追加(AllのA)


  • git add -u 変更/削除されたファイルを追加。新規作成は対象外。(updateのu)


  • git add . 新規作成/変更されたファイルを追加。削除は対象外。

間違ってコミットした場合は、git resetで取り消せる。

オプションが--softの場合は作業ツリーがそのままだが、--hardだと作業ツリーも削除される。

対象をHEAD^とすると直前に行ったコミットが取り消される

> git reset [--soft | --hard] [対象]

#使用例
> git reset --hard HEAD^

#再コミット
> git commit [-a] -c ORIG_HEAD


プッシュ


外部リポジトリにローカルリポジトリの内容を送信

> git push <送信先リポジトリURL> <送信するブランチ>:<送信先ブランチ>

#送信例
> git push -u https://github.com/wwacky/~~~ master:master

master = デフォルトのブランチ名 (svnでのtrunk)

送信先リポジトリURLは、短縮名をつけることもできる。

以下の例だとgit@github.com:wwacky/~~~にoriginという短縮名をつけている

> git remote add <短縮名> <gitリポジトリのURL>

#使用例
> git remote add origin git@github.com:wwacky/~~~
> git push -u origin master


変更点の確認

作業の変更一覧を確認したい場合はgit statusを使う。

差分を表示したい場合はgit diffを使う。

#変更が加えられたファイル一覧の表示

> git status

#変更点の表示
> git diff <ファイル名>


ブランチ


ブランチの確認

git branchコマンドを使うと、存在するブランチを表示できる。

あんまり調べてないけど、-aオプション付けた方が情報がリッチ。

> git branch

* master
feature_branch_a

> git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/feature_branch_a
remotes/origin/master

branchが出てこない時は、git fetchを使って最新状態にして確認したほうがいい。


チェックアウトをリモートの別のブランチに切り替える

git checkoutコマンドを実行する際に、ブランチを指定する。

やり方は2パターンあるけど、-bオプションを使うほうが楽。

ブランチ名の確認は上記のgit branch -aを使うといい。

ローカルブランチ名はなんでもいいと思うけど、リモートのブランチ名と合わせた方が分かりやすいと思う。

# ブランチの切り替え。-bオプションを付けるとcheckoutも一緒にやる

> git checkout [-b] <ローカルでのブランチ名> <リモートでのブランチ名>

# 使用例(-bオプションあり)
> git checkout -b feature_branch_a origin/feature_branch_a

# 使用例(-bオプションなし)
> git checkout feature_branch_a origin/feature_branch_a
> git checkout feature_branch_a