よく使うgitコマンドまとめ


SourceTreeを卒業し、コマンド操作でgitを利用する事があったので軽くメモ。

ローカル編

リポジトリのダウンロード

$ git clone https://〜〜〜 # リポジトリのURL

ブランチの確認

自分の使用しているブランチの確認と、ブランチ一覧を表示する。

$ git branch

ブランチの切り替え

$ git checkout 切り替え先のブランチ名

ブランチの作成

現在いるブランチにて以下のコマンドで新しいブランチを派生させる。
個人で使うには自由、共同開発現場ではgit-flowチートシートの内容が一般的。

$ git checkout -b ブランチ名

ブランチの削除

削除するブランチから別ブランチへ移動しておくこと。

$ git branch -D ブランチ名

リモートとローカルの同期

以下のコマンドにはgit fetchも含まれている。

$ git pull

差分の確認

差分ファイルを表示する。

$ git status

ファイル内の差分表示する。(ファイルパスはgit statusで表示されたもの)

$ git diff [ファイルパス]

spaceキーで進む。
qキーで確認終了。

差分の取消

変更前の状態に戻す。

$ git checkout [ファイルパス]

全てのファイルの差分を取り消す。

$ git checkout . # ピリオドを使用する

変更(差分)をindexに保持

差分ファイルをindexに保持する。

$ git add [ファイルパス]

-Aオプションは差分が出ている全てのファイルを指定する。

$ git add -A

変更をコミットする

indexに保持した差分をブランチに記録する。

$ git commit -m "hogehoge"

コミット履歴の確認

コミットIDとコミットした際にコメントを付けていれば、コメントが確認できる。

$ git log

コミットの取消

直前のコミットを削除し、差分を残したままにする。

$ git reset --mixed HEAD^

コミットの削除

git logで表示させたコミットIDのうち、指定したコミットIDを削除する。

$ git reset --hard コミットID

ローカルからリモートへPUSHする

originはとりあえず固定でリモートを指すものとしておく。

$ git push origin ブランチ名
強制PUSH

リモートに同名のブランチがあるだけ場合はリモートのブランチを削除後に普通にPUSHする方が良いが必要に応じて使用。

$ git push -f origin ブランチ名

他ブランチから差分をマージで取り込む

開発中のブランチにいる状態でmasterを指定すればmasterの差分が取り込まれる。
コンフリクトが起こったら修正する。
cherry-pickrebaseという手段もあり。

$ git merge 取り込むブランチ名 # 今checkoutしているブランチに取り込まれる

タグを付ける

$ git tag タグ名

タグにコメント(注釈)を付ける

$ git tag -a tag -m "hogehoge"

タグのPUSH

$ git push origin タグ名

全タグのPUSH

$ git push origin --tags

タグを削除

$ git tag -d ダグ名

タグ一覧

$ git tag

リモート編

リモートブランチの削除

ブランチ名の前に:が必要。ローカルのどのブランチで実行してもOK。

$ git push origin :ブランチ名

リモートのタグを削除

タグ名の前に:が必要。

$ git push origin :タグ名

初期設定

初期化

gitが設定されていないディレクトリで以下を実行するとgitが適用される。

$ git init

初期化後にブランチを作成(master)変更をindexに保持ブランチにコミットすることによって、最初のrepositoryが作成される。
初期化した後にファイルの変更を行うと差分が生まれる。

履歴に残る名前を設定

$ git config --global user.name "自分の名前"
$ git config --global user.email "[email protected]"

その他

Serverにrepositoryを用意

Server内でgit用ディレクトリ(xxxx.gitと名前を付ける)に移動し、以下のコマンドを実行。

$ git init --bare --shared

ローカルとリモートの紐付け

ローカルで行う。
domainはIPでもURLでも。
xxxx.gitはServer内のgitディレクトリのフルパス。

$ git remote add origin https://[user名@]domain:xxxx.git

子リポジトリの読み込み

$ git submodule hogehoge

子リポジトリの更新

$ git submodule update

【参考】

originて何?