改行
改行コードをLFに強制して修正する。
.gitattributes
に以下を設定
*.kt text eol=lf *.java text eol=lf
以下で修正する。
git add --renormalize .
その他
権限
実行権限を付与する
git update-index --chmod=+x path/to/file
ファイル差分
ファイルパーミッションの変更を差分に含めない。
git config core.filemode false
ファイルシステムのキャッシュを使用しない
git diff
で Function not implemented
が出てきた場合に有効。
WSLのネットワーク越しのせいかもしれない。
git config --global core.fscache false
リモート
リモートを追加
git remote add <name> <url>
リモートを変更
git remote set-url origin
リモートブランチ削除
git push origin :branch_name
モジュール
追加
git submodule add git@github.com:qmk/hoge.git directory
submoduleを再帰的に更新
git submodule update --init --recursive
モジュールは別のkeyでcloneする。
GIT_SSH_COMMAND="ssh -i /tmp/ssh_key" git submodule update --init --recursive
gitignore
gitignoreを追加した後
git rm --cached filename
変更
退避
git stash save
確認
git stash list # 変更内容付き git stash list -p
復活
# 削除して復活 git stash pop stash@{0} # 復活 git stash apply stash@{0} # 削除 git stash drop stash@{0}
add
addを取り消す
git reset HEAD .
commit
前回のcommitに上書き
git commit --amend
前のcommitに含める
git commit --amend --no-edit
commitの取り消し
git reset --soft HEAD^
空のブランチの作成
git checkout --orphan
署名
sshで署名する
git config --global gpg.format ssh git config --global user.signingkey ~/.ssh/id_rsa.pub git config --global commit.gpgsign true
GPG
agentの起動
gpg-connect-agent /bye