自分用Gitコマンドの備忘録です。
内容は少しずつ追加していきたいと思います。
これいいよ!とか言うものがあればぜひコメントで教えていただけると助かります!
Gitでローカルの変更を元に戻す
ファイルの変更をもとに戻す場合
$ git checkout {{ファイル名}}
特定のファイルではなくすべてのファイルの変更を元に戻したい場合
$ git checkout .
Aliasの設定
設定方法
ex) statusのalias設定
$ git config --global alias.st = status
コミットを別ブランチにコピーする
コミット番号を調べる
$ git log --oneline --decorate --graph {{branch_name}}
コピーしたいブランチに移動
$ git checkout {{barnch_name}}
コミットをコピー
$ git cherry-pick {{commit_id}}
直前のコミットメッセージを修正する
$ git commit --amend
コンフリクトが起きた時、どちらかを優先させる
自分のコードを優先したい場合
$ git checkout -ours {{. or /path/to/file}}
マージした側のコードを優先したい場合
$ git checkout -theirs {{. or /path/to/file}}
私のAliasの設定
[alias]コマンドの設定はWindowsでは出来ないので注意!
(別のやり方があれば教えてください)
[alias]
st = status
cm = commit -m
ad = add
ps = push
ft = fetch
pl = pull
co = commit
di = diff
dic = diff --cached
br = branch
bra = branch -a
sh = show
so = remote show origin
cam = commit --amend
wc = whatchanged
lp = log -p
lo = log
dm = diff master
gr = grep --color
gn = grep -n --color
alias = !git config --list | grep 'alias\\.' | sed 's/alias\\.\\([^=]*\\)=\\(.*\\)/\\1\\\t => \\2/' | sort
today = log --oneline --since='12 hour ago'
ch = checkout
id = log --oneline --decorate --graph
ブランチ間のマージ
ブランチ間のマージ方法です。
ex) testブランチからmasterブランチへのマージ
$ git fetch
$ git checkout master
$ git merge test
マージした際にコンフリクトが発生すると自動コミットされません
コンフリクトが発生しているファイルを確認する場合は、git status
コマンドを打つと、
both modified: file
と表示されているファイルがコンフリクトしているファイルとなります
私はよくコンフリクトを起こしたファイルのみを取り出したいので、
$ git status | grep both
のようにしています
また、コンフリクトを修正後、コミットを行いますが、その際にメッセージを入力せずにコミットすると、
gitが自動的にコミットメッセージを入力してくれます
削除したファイルのインデックス追加
git rm
コマンドを使わずにファイルを削除した場合、
通常のgit add
コマンドではインデックスに追加することが出来ません
やりかたとしては何種類かあるのですが、
手っ取り早いのはgit add -A
で全ファイルインデックス追加処理を行うことです
ただこれでは、インデックスに追加したくないファイルまで追加されてしまいますので、
その場合はgit add -u /path/to/file
コマンドで追加してあげることが出来ます
私はこれを最近まで知らず、SourceTreeから削除したファイルを
1つずつインデックスに追加してあげてました。。。(´・ω・`)