はじめに
gitでの主要な操作とその取り消し方法をまとめてみました。
基本的なコマンドもまとめてあります。
間違えて操作してもこれで問題なし!
clone
まずはリモートリポジトリからローカルリポジトリへクローンする。
$ git clone <リモートリポジトリURL>
branch
作業するブランチを整理する。
ブランチを作成(すでにリモートにある場合)
$ git branch <ブランチ名> origin/<ブランチ名>
$ git checkout <ブランチ名>
#もしくは
$ git checkout -b <ブランチ名> origin/<ブランチ名>
ブランチを作成(新たにリモートに作成する場合)
$ git checkout -b <ブランチ名>
$ git push -u origin <ブランチ名>
リモートとローカルを紐付ける
※別々に作成してしまった場合のみ
# ブランチが紐付いているか確認
git branch -vv
# 紐付いていない場合は紐付ける
$ git branch -u origin/<リモートブランチ名> <ローカルブランチ名>
ブランチを確認
# ローカルブランチのみ
$ git branch
# リモートブランチも含めて
$ git branch -a
ブランチを削除
# ローカルブランチを削除
$ git branch -D <ブランチ名>
# リモートブランチを削除
$ git push origin :<ブランチ名>
add
ワーキングツリーの編集内容をインデックスへ。
変更があったファイル全てをaddする
$ git add -A
※追加したくないものは.gitignoreファイルに記述しておく
( *.txtなど )
addを取り消す
$ git reset HEAD <ファイル名>
※全て取り消す場合はファイル名なし
commit
インデックスからローカルリポジトリへ。
commitする
$ git commit -m "<メッセージ>"
直前のcommitを修正する
※入れ替えるイメージ
$ git commit --amend -m "<メッセージ>"
commitを取り消す
# addの後の状態まで戻る
$ git reset --soft HEAD^
# addの前の状態まで戻る
$ git reset HEAD^
# 直前のcommitの状態まで戻る
$ git reset —-hard HEAD^
pull
リモートリポジトリからローカルリポジトリへ。
pullする
$ git pull origin <ブランチ名>
# すでにリモートブランチとローカルブランチが紐づいている場合
$ git pull
pullを取り消す
$ git reset —-hard HEAD^
push
ローカルリポジトリからリモートリポジトリへ。
pushする
$ git push origin <ブランチ名>
# ローカルとリモートが紐づいており、 "push.default = current" の設定をしている場合
$ git push
pushを取り消す
※打ち消し命令を出すイメージ
$ git revert HEAD^
$ git push origin <ブランチ名>
# おすすめはしないが履歴を残さずに取り消す方法
$ git reset --hard HEAD^
$ git push origin +<ブランチ名>
diff
編集した差分を確認する。
※前提として新たに追加したファイルなどは表示されません。
※比較しているのは直前のcommit内容とです。
# pullやpushの前に差分確認
$ git diff origin/<ブランチ名>
# addする前に差分確認
$ git diff
# addした後に差分確認
$ git diff —-cached
# commitした後に差分確認
$ git diff HEAD^
その他
commit履歴の確認
$ git log
ワーキングツリー ・ インデックス ・ ローカルリポジトリの状態確認
$ git status
configの確認
$ git config -l —-global
configの変更
$ git config --global <変更内容>
ワーキングツリーを直前のcommit状態まで戻す
$ git reset —-hard HEAD
ailias
あると便利なailias
※個人的なものなので参考程度に
st = status -sb
ad = add -A
cm = commit -m
ch = checkout
cb = checkout -b
b = branch
ba = branch -a
l = log --graph
ll = log --oneline
d = diff
dw = diff —-word-diff
f = fech -—prune
ame = commit —-amend -m
rh = reset —-hard
rs = reset —-soft
cl = config -l —-global