3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Git チートシート

Posted at

ローカルリポジトリの新規作成

git init

Gitリポジトリのコピーを作成する

リモートリポジトリからローカルへ

git clone <リポジトリ名>

変更をステージに追加

git add <ファイル名>
git add <ディレクトリ名>
git add .

変更を記録する(コミット)

ステージからリモートリポジトリへスナップショットを記録

git commit
# CLI上でコミットメッセージを書ける。
git commit -m "<メッセージ>"
# 変更内容の差分を表示
git commit -v
#空のコミット
git commit --allow-empty -m  "<メッセージ>" 

現在の変更状況を確認する

git status

変更差分を確認する

# git addする前の変更分
git diff
git diff <ファイル名>

# git addした後の変更分
git diff --staged

変更履歴を確認する

git log

# 一行で表示する
git log --oneline

# ファイルの変更差分を表示する
git log -p index.html

# 表示するコミット数を制限する
git log -n <コミット数>

# グラフにして表示する
git log --graph

ファイルの削除を記録する

# ファイルごと削除
git rm <ファイル>
git rm -r <ディレクトリ>

# ファイルを残したいとき
git rm --cached <ファイル>

ファイルの移動を記録する

git mv <旧ファイル> <新ファイル>

# 以下のコマンドと同じ
mv <旧ファイル> <新ファイル>
git rm <旧ファイル>
git add <新ファイル>

リモートリポジトリ(GitHub)を新規追加する

git remote add origin https://github.com/<ユーザ名>/<リポジトリ名>.git

リモートリポジトリ(GitHub)へ送信する

ローカルリポジトリからリモートリポジトリへ

git push <リモート名> <ブランチ名>
git push origin main

コマンドにエイリアスを付ける

git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.co commit

管理しないファイルをGitの管理から外す

.gitignoreファイル
# 指定したファイルを除外
index.html
# ルートディレクトリを指定
/root.html
# ディレクトリ以下を除外
dir/
# /以外の文字列にマッチ「*」
/*/*.css

ファイルへの変更を取り消す

ローカル環境のワークツリー内の変更を取り消す。

git checkout -- <ファイル名>
git checkout -- <ディレクトリ名>

#全変更を取り消す
git checkout -- .

ステージした変更を取り消す

ステージした状態を消すだけなので、ワークツリー内の変更はない。

git reset HEAD <ファイル名>
git reset HEAD <ディレクトリ名>

# 全変更を取り消す
git reset HEAD .

直前のコミットをやり直す

リモートリポジトリにpushしたコミットはやり直してはいけない。

git commit --amend 

リモートを表示する

git remote
# 対応するURLを表示
git remote -v

リモートリポジトリを新規追加する

git remote add <リモート名> <リモートURL>

git remote add hoge https://github.com/<ユーザ名>/<リポジトリ名>.git

リモートから情報を取得する(フェッチ)

fetch→ローカルリポジトリ→merge→ワークツリー

git fetch <リモート名>
git fetch origin

リモートから情報を取得してマージする(プル)

git pull <リモート名> <ブランチ名>
git pull origin main
# 上記コマンドは、省略可能
git pull

#同じ
git fetch origin main
git merge orgin/main

リモートの詳細情報を表示する

git remote show <リモート名>
git remote show origin

リモートを変更・削除する

# 変更する
git remote rename <旧リモート名> <新リモート名>
git remote rename hoge new_hoge

# 削除する
git remote rm <旧リモート名> <新リモート名>
git remote rename new_hoge

ブランチを追加する

git branch <ブランチ名>
git branch feature

ブランチの一覧を表示する

git branch

# 全てのブランチを表示する
git branch -a

ブランチを切り替える

git checkout <既存のブランチ名>
git checkout feature

#ブランチを新規作成して切り替える
git checkout -b <新ブランチ名>

変更履歴をマージする

git merge <ブランチ名>
git merge <リモート名/ブランチ名>
git merge origin/main

ブランチを変更・削除

# 作業しているブランチ名を変更
git branch -m <ブランチ名>
git branch -m new_branch

# ブランチを削除する
git branch -d <ブランチ名>
git branch -d feature

#強制削除する
git branch -D <ブランチ名>

リベースで履歴を整えた形で変更を統合する

ブランチの基点となるコミットを別のコミットに移動する。

git rebase <ブランチ名>

プル型のリベース

mergeのコミットが残らないので、GitHubの内容を取得したいときだけ使う方法。

リモートリポジトリ→fetch→ローカルリポジトリ→rebase→ワークツリー

git pull --rebase <リモート名> <ブランチ名>
git pull --rebase origin main

プルをリベース型に設定する

git config --global pull pull.rebase true

# mainブランチでgit pullするときだけ
git config branch.main.rebase true

複数のコミットをやり直す

git rebase -i <コミットID>
git rebase -i HEAD~3

pick 3ee3651 add:file
pick 7bbf693 Create README.md
pick 366aa90 add:dir

# やり直したいcommitをeditにする。
edit 3ee9251 add:chapter3.3
pick 7bbe693 Create README.md
pick 366aa32 add:file

# やり直したら実行する
git commit --amend

# 次のコミットへ進む(リベース完了)
git rebase --continue

コミットを並び替える・削除する

git rebase -i HEAD~3

pick 3ee3651 add:file
pick 7bbf693 Create README.md
pick 366aa90 add:dir

# 削除したり、順番を入れ替えたりできる。
pick 7bbf693 Create README.md
pick 3ee3651 add:file

コミットをまとめる

git rebase -i HEAD~3

pick 3ee3651 add:file
pick 7bbf693 Create README.md
pick 366aa90 add:dir

# コミットを1つにまとめる。
squash 3ee3651 add:file
squash 7bbf693 Create README.md
pick 366aa90 add:dir

コミットを分割する

git rebase -i HEAD~3

pick 3ee3651 add:file
pick 366aa90 add:dir
pick 7bbf693 README.mdとindex.htmlを追加

# コミットを1つにまとめる。
pick 3ee3651 add:file
pick 366aa90 add:dir
edit 7bbf693 README.mdとindex.htmlを追加

git reset HEAD^
git add README.me
git commit -m 'READEME.meを追加'
git add index.html
git commit -m 'index.htmlを追加'
git rebase --continue

タグの一覧を表示する

git tag

タグを作成する

git tag -a [タグ名] -m "[メッセージ]"
git tag -a 20230704 -m "version 20230704"

# 軽量バージョン
git tag [タグ名]
git tag -a 20230704

# 後からタグ付けをする
git tag [タグ名] [コミット名]
 8a6hd8f

タグのデータを表示する

git show [タグ名]
git show 20230704

タグをリモートリポジトリに送信する

git push [リモート名] [タグ名]
git push origin 20230704

# タグを一斉送信
git push origin --tags

作業を一時避難する

変更分をstashに一時避難する。

git stash
git stash save

避難した作業を確認する

git stash list

避難した作業を復元する

# 最新の作業を復元する
git stash apply

# stageの状況も復元する
git stash apply --index

# 特定の作業を復元する
git stash apply [スタッシュ名]
git stash apply stash@{1}

避難した作業を削除する

# 最新の作業を削除する
git stash drop

# 特定の作業を削除する
git stash drop [スタッシュ名]
git stash drop stash@{1}

#全作業を削除する
git stash clear

コンピュータにある全てのリポジトリ用にGitユーザ名、メールアドレスを設定する

# ユーザ名を設定
git config --global user.name "<ユーザ名>"
# メールアドレスを設定
git config --global user.email "<メールアドレス>"

#確認方法
git config --global user.name
git config --global user.email

単一のリポジトリ用にGitユーザ名、メールアドレスを設定する

# ユーザ名を設定
git config user.name "<ユーザ名>"
# メールアドレスを設定
git config user.email "<メールアドレス>"

#確認方法
git config user.name
git config user.email

既存のリモートリポジトリを新しいリモートリポジトリへ変更する。

git remote set-url origin <新しいリモートリポジトリURL>
3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?