1
0

More than 3 years have passed since last update.

ミスってもやり直せるGitまとめ

Last updated at Posted at 2020-05-08

はじめに

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
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0