Gitでコンフリクトした時のための備忘録
コンフリクトしたときに便利そうなので、備忘録を残しておく
Gitのコマンド
コンフリクトしているファイルの一覧を表示する。
$ git ls-files -u [<path>]
手動で直す方法
- 修正後にaddが必要
$ vi <path> (手動でコンフリクトを直す) $ git add <path>
mergetool でマージする方法
- -y でデフォルトのマージツールが実行する
で1つずつ指定できる
$ git mergetool -y [<path>]
をHEADと同じ状態にする。
- 修正後にaddが必要
$ git checkout --ours [<path>] $ git add <path>
grep
admin が含まれているファイル一覧
$ git status -s | grep "admin"
view が含まれていないファイル一覧
$ git status -s | grep -v "view"
awk で部分文字列を取得する
コンフリクト(先頭が"UU")しているファイルの一覧
- substr(string, m, n): 文字列 string 内の m 番目から始まる長さ n の部分文字列を返す
$ git status -s | grep "^UU" | awk '{print substr($0,4,1000)}'
bash
for文
$ for x in a, b, c; do echo x; done
上記の組み合わせ
コンフリクトしているファイルをHEADが正としてコンフリクトを解消する。
$ for f in `git status -s <path> | grep "^UU" | awk 'print substr($0,4,1000)}'` do git checkout --ours $f git add $f done
*1:git merge topic とマージしていた場合、topicのこと