すぐ忘れるので、よく使うのをまとめた
ヘルプを表示
# ヘルプを確認する
$ git add --help
$ git diff --help
# ヘルプを抜ける
$ q
gitの簡単な流れ
# 最初だけ
$ git init
# 変更を追加する
$ git add
# 追加分をコミットする
$ git commit -m "メッセージ内容"
# リモートリポジトリを追加
$ git remote add リポジトリ名 URL
# リモートリポジトリを更新
$ git push origin master
# リモートリポジトリをローカルに反映
# fetch + merge
$ git pull
# リモートリポジトリをリモート追跡ブランチに反映
$ git fetch
# リモート追跡ブランチをローカルに反映
$ git merge
git status
# 状態確認
$ git status
git add 関連
# 全てをadd
$ git add -A
# 変更点をadd
$ git add -u
# 全てのファイルを取り消し
$ git rm --cached -r .
# 特定のファイルのみ取り消し
$ git rm --cached -r file_name
$ git reset HEAD sample.txt
# 直前のadd全て取り消し
$ git reset HEAD .
git commit 関連
$ git commit --amend -m #直前のcommitを変更
# 過去のcommitを修正
$ git log --oneline
f4352a2 (HEAD -> develop, origin/develop) commit1
56a4eb1 commit2 # 修正したいcommit
6839af4 commit3 # 修正したいcommit
0340d1a commit4
$ git git rebase -i 0340d1a # 修正したいcommitの1つ前を選択
# vimでエディタが開く
$ pick 56a4eb1 commit2
$ pick 6839af4 commit3
$ pick 0340d1a commit4
# iでINSERTモードにpickをeditに変える
# ESC(Cntl+Cも可)でINSERTモードを抜ける
# :x で保存して終了
$ git commit --amend # editにしたcommitを修正できる。修正したら :x で終了
$ git rebase --continue # rebaseを次に進める(次のeditに移動)
git fecth 関連
# リモートリポジトリで先に更新した時
$ git fetch origin
$ git diff origin/master
$ git merge origin/master
git pull 関連
$ git pull
$ git pull --no-edit # viエディタを開かずにpullする
ブランチ 関連
$ git branch -a 現在のブランチを確認
$ git checkout ブランチ名 ブランチに移動
$ git checkout -b ブランチ名 新規ブランチを作成して、移動
git push 関連
$ git push -u origin develop developブランチを上流ブランチに設定
git diff 差分を確認する
# 前回コミット(HEAD)からの差分
$ git diff HEAD
# git add した後の差分確認
$ git diff --cached
# ファイル名のみを表示
$ git diff --name-only
# 不要な追跡を除外し、ファイルを削除
$ git rm file_name
# 不要な追跡を除外し、ファイルは残す実際のファイルは残して、追跡だけ除外
$ git rm --cached file_name
git log 自分がしたコミットを確認
# コミットログを参照する.
$ git log
# 修正したファイル一覧
$ git log -p --name-only
# 変更内容差分, ファイル名を引数で渡すと単体で指定可
$ git log -p
# コミットログの先頭7桁のコミットIDを表示する.
$ git log --oneline
# コミットログのHEADの位置を明示する.
$ git log --decorate
# コミットログを縦グラフで表示する.
$ git log --graph
# 指定した文字がコミットログに含まれるコミットを表示する.
$ git log --grep [filter]
# 未プッシュのコミットを確認
$ git log origin/[ブランチ名]..[ブランチ名]
# 組み合わせて使える
$ git log --oneline --graph --decorate
退避
変更を退避する
$ git stash save
or
$ git stash
Git管理をはずす
ディレクトリごとはずす
.git
ファイルを削除する
.gitignoreを使って指定したファイルやフォルダをはずす
.gitignoreに記載すると、git管理の対象から外すことができる。
個人的にはパスワードなどの個人情報を含むファイルや、一時的な動作確認でgit管理しないものなどをgitignoreに指定している。
# 特定のファイル(temp.txt)を除外する
tmp.txt
# 特定のフォルダ(tmp)を除外する
tmp/
# 特定の拡張子(.jpg)を除外する
*.jpg
Git を間違ってpushしたとき
git reset
ミスをなかったことにする。
※扱いには注意
# なかったことにする
$ git reset
# resetした後は強制的にpush
$ git push -f
revertをcommitしてpush
ミスの履歴を残す。
revetで新しいcommitができるので、それをpushする
# 直前のコミットを打ち消すコミット
$ git revert
$ git revert HEAD
# 最新をふくめ、過去4つ分のコミットを打ち消す
$ git revert HEAD~3
$ git push origin master
変更してしまっため、revertできない場合
error: Your local changes to the following files would be overwritten by merge:
Please commit your changes or stash them before you merge.
Aborting
fatal: revert failed
$ git stash
で変更を退避してから
$ git revert HEAD
viの操作
:q
または :q!
で抜け出せる。
mergeする
参考資料
基本
基本的なGitコマンドまとめ
gitを使用したブランチ作成からpushまでの簡単な流れ
【初心者向け】git fetch、git merge、git pullの違いについて
第1話 リポジトリを作ってコミットしてみよう【連載】マンガでわかるGit ~コマンド編~
branch
commit
Gitのコミットメッセージの書き方
僕が考える最強のコミットメッセージの書き方
Gitのコミットメッセージを後から変更する方法をわかりやすく書いてみた
Git,rebaseで過去のコミットの修正を行う.
push
git push -u とは?
Git用語:上流ブランチとは?
revert & reset
Git で コミットを無かったことにする方法 (git revert の使い方)
git revertでエラーが出ます
【git】revretしたcommitをまたrevertして戻した話
【gitコマンド】いまさらのrevert
git pushを取り消す方法
git reset --soft で複数のcommitを取り消す
diff
git 差分を見る
忘れやすい人のための git diff チートシート
【初心者向け】git diffの使い方を実例で解説|コードの変更内容の表示、git addしたファイルとの差分、指定したコミット同士で違いを確認する方法
stash
pull
gitのリモートリポジトリの更新を確認する
【初心者向け】git fetch、git merge、git pullの違いについて
git develop, feature branch作成からmergeするまで (自分用メモ)
.gitignore
.gitignore の書き方
.gitignore の書き方。ファイル/ディレクトリの除外
【Git】.gitignoreが反映されない時の対応備忘録
merge
git develop, feature branch作成からmergeするまで (自分用メモ)
その他
git ローカルの変更を元に戻す方法
untracked fileを削除するためにはgit cleanを使う
git 管理をやめる
Vim / Vi を終了させる方法
GitHub – READMEの作成方法と書き方【改行やリンク・画像の入れ方】