インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Git初心者がとりあえず知っておくと幸せになるコマンド集

Gitを使っていく上で知っておくとスムーズに話を進めることができるよ!というコマンドを集めました。

使わないことには覚えようがないのでバシバシ使っていきましょう!

[2015/01/14 追記]
git pull などを追記

リポジトリを複製する

基本形はこれ

git clone 

ブランチ BRANCH を持つリポジトリを複製するには

git clone -b BRANCH 

現在の状態表示

git status

何をすればよいか、元に戻せるかわけがわからなくなったらこのコマンド叩いて
表示される内容をよく読めばだいたいは解決できるはず。

がんばって英語読みましょう。

pullする

fetch した後に自動的に merge する

git pull

特定のブランチを pull するには

git pull origin (:)

pull は fetch と同時に merge が実行されるので、なるべく使わないようにしています。

fetchする

リモートの履歴情報を受信する

git fetch

特定のブランチを fetch するには

git fetch origin (:)

リモートリポジトリの最新の更新情報を取得します。

作業ディレクトリには影響ありません。

index にファイルを追加する

## 指定したファイルを追加
git add example.rb

## 拡張子が .rb のファイルを全て追加
git add *.rb

##全てのファイルを追加
git add .

変更点を commit する

## git add で対象とするファイルを指定した後に
git commit -m “"

git commit を「-a」オプションを付けて実行すると
変更が加えられたファイルを自動検出して commit できます。

ただし、この場合新規に作成されたファイルは commit 対象にはなりません

ファイルの差分を見る

git diff

index と working tree の差分を表示します。

新規に作成されたファイルは Git に track されていないので、
新規に作成したファイルはこのコマンドでは表示されません。

次の commit で反映される変更を表示させるには下記のコマンドを実行します。

git diff --cached

index と HEAD の差分を表示するコマンドです。
commit 直前によく実行しますね。

ローカルブランチを新規作成する

git branch 

現在の位置に新規ローカルブランチを作成します。

ブランチの切替は行われません。

ブランチを切り替える

git checkout 

作業ディレクトリが最後のコミットから更新されていると失敗します。

commit かstash をしてください。

ブランチ一覧と現在のブランチを確認する

git branch

リモートリポジトリに送信する

git push origin 

merge する

別の更新作業と合わせる

git merge 

よほど大がかりな更新作業でなければ、ログがわかりにくくなるので rebase をしましょう。

相手のブランチの更新を自分のブランチに適用するのであって、
今いるブランチの更新を相手のブランチに適用するのではありません。

rebase する

自分の更新作業を別のブランチのHEADから始めたことにする

git rebase 

マージと同じく2つのブランチの更新内容を併せるので、
マージのように競合が発生する可能性があります。

一度 push したブランチは rebase して push すると
履歴が二重に接ぎ木されるので rebase してはいけません。

stash する

作業ディレクトリの変更内容を一時的に隠す

git stash

新規作成し、git addでgit管理にしていないファイルはスタッシュに含まれません。

stash した変更内容を再度適用する

git stash pop

競合が発生することがあります。
その場合は merge などと違い、git addで競合を解決済みにするだけで大丈夫です。

ローカルリポジトリのブランチを削除する

git branch -d 

リモートリポジトリのブランチを削除する

git push origin :
  • B!