git init
リモートリポジトリからローカルへ
git clone <リポジトリ名>
git add <ファイル名>
git add <ディレクトリ名>
git add .
ステージからリモートリポジトリへスナップショットを記録
git commit
git commit -m "<メッセージ>"
git commit -v
#空のコミット
git commit --allow-empty -m "<メッセージ>"
-m | CLI上でコミットメッセージを書ける。 |
-v | 変更内容の差分を表示 |
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 <新ファイル>
git remote add origin https://github.com/<ユーザ名>/<リポジトリ名>.git
ローカルリポジトリからリモートリポジトリへ
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
.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 config --global user.name "<ユーザ名>"
# メールアドレスを設定
git config --global user.email "<メールアドレス>"
#確認方法
git config --global user.name
git config --global user.email
# ユーザ名を設定
git config user.name "<ユーザ名>"
# メールアドレスを設定
git config user.email "<メールアドレス>"
#確認方法
git config user.name
git config user.email
git remote set-url origin <新しいリモートリポジトリURL>