[Git] FAQ¶
改行コードに関するもの¶
warning: LF will be replaced by CRLF in
¶
gitのconfigでcore.autoCRLF
がtrue
になっていないか確認する。
$ git config --global core.autoCRLF
true
になっていたらfalse
にする。
$ git config --global core.autoCRLF false
改行コードを強制したい¶
autocrlf設定によって変わってしまう改行コードを抑制したい場合。
.gitattributes
に設定する。
例
* text=auto
*.bat text eol=crlf
*.vbs text eol=crlf
*.sh text eol=lf
*.txt -text
text
属性を付けるとautocrlfによって自動で改行変換するtext eol=..
で改行コードを指定すると、必ずその改行コードに変換する-text
でtext
属性を外すと改行変換しない
git diffの行末に『^M』が表示される¶
color.ui = auto
のときにCR改行が含まれると表示されてしまう。
core.whitespace = cr-at-eol
を設定すると表示されなくなる。
git config --global core.whitespace cr-at-eol
ブランチとタグが同じ名前になってしまいエラーが出る¶
src refspec <tag_name> matches more than one.
タグを消したい場合
git push origin :refs/tags/<tag_name>
ブランチを消したい場合
git push origin :refs/heads/<branch_name>
競合を解消したい¶
1. 内容を1つにマージする¶
好きなエディタでファイルをマージする。
一方で完全に上書きしたい場合は以下のコマンドを使える。競合が激しいときはこっちの方がいいかも。
# 現在のブランチを優先
git checkout --ours <files...>
# マージするブランチを優先
git checkout --theirs <files...>
2. 変更点をコミット¶
add
を忘れやすいので注意。
git add <files...>
git commit
メッセージは自動で生成してくれる。
GitHubにpushすると画像ファイルが不正になる¶
画像ファイルがテキストと判断され、改行コードと一致するバイナリが自動変換されていないか確認する.
git add
で改行コード変換メッセージが出たら要注意.
.gitattributes
に* text eol=lf
のような記載がある場合は以下のように定義を追加する.
*.png binary
*.jpg binary
*.gif binary
※ 他にもバイナリとみなしたいものは列挙が必要
git-lfsの対象に特定ディレクトリ配下指定したい¶
.gitattribute
にblob表現で指定する。
dir/**/* filter=lfs diff=lfs merge=lfs -text