RandomThoughts

RandomThoughts

git

Contents:
  1. 外部リンク
  2. レポジトリにあるファイルをローカルで変更するがgit statusとかには出さない
  3. cherry-pick用のgit logコマンド
  4. cherry-pickで改行コードに違いがある場合
  5. CI用などに空コミット
  6. HEADのファイルのハッシュ値を取得
  7. コミットログを表示
  8. remotes/origin下の不要なブランチの削除
  9. ブランチマネージメント
  10. gitkのソース
  11. gitのクライアントいろいろ
    1. git-guiメモ
    2. tigメモ
    3. gitのターミナルUI系いろいろ
  12. 入門

みんな大好きgit。

外部リンク

レポジトリにあるファイルをローカルで変更するがgit statusとかには出さない

update-indexでassume-unchangedを指定する。

$ git update-index --assume-unchanged .vscode/c_cpp_properties.json

cherry-pick用のgit logコマンド

毎回copilotに聞くのでメモしておく。

$ git log main --pretty=format:"%h %an %s"

cherry-pickで改行コードに違いがある場合

諦めてパッチファイルを作ってunix2dosしてgit amするという手順にした。

gitで改行コードが異なるレポジトリ間でチェリーピック的な事をしたい - なーんだ、ただの水たまりじゃないか

駄目だった試行錯誤

git cherry-pick -x --strategy-option=renormalize XXXX

-xはコミットIDを含める、という奴。

XXXXはハッシュID。

内部コードが違う場合、これでは駄目な事が多い。

駄目だった試行錯誤2

copilotに聞いたら以下を言われた。

git add --renormalize xxx

でxxxファイルの改行コードを直すらしい。 .gitattributesの

* text eol=crlf

と組み合わせると良いと言うが、試したら駄目だった。

CI用などに空コミット

$ git commit --allow-empty -m "CIトラブルのため空コミット"

HEADのファイルのハッシュ値を取得

git rev-parseというコマンドを使う。

$ git rev-parse HEAD:some_dir/some_file.txt

コミットログを表示

ハッシュ値がXXXの時、

$ git log --format=%B -n 1 XXX

remotes/origin下の不要なブランチの削除

$ git remote prune origin

ブランチマネージメント

とりあえずリンクを貼っておく場所。

gitkのソース

gitの一部に入っている模様。tcl/tk(wish)。

ちょっといじりたいと思ったが、なかなか気力がわかないな。 誰かWebUIで同じの作って。

gitのクライアントいろいろ

git-guiメモ

git本家のソースツリーに含まれている、tcl/tkで書かれたgit-gui。ステージングは割と良い。足りない機能を以下にメモしていく。

  • 全ファイルをステージング
  • ファイルのrevert(Hunkのrevertはある)
  • リモートのチェックアウト

tigメモ

TigがWindowsにやってきたのでチュートリアルをまとめる #Git - Qiita

gitのターミナルUI系いろいろ

tigがなかなか良いのだが、コミット周りとかも似たようなのが欲しいなぁ、と思いいろいろ他を物色してみる。

  • lazygit 少し触ったがどうもなじまなかった>その後訓練して馴染んできた
  • gitui なんか良さそう?

gitui、なんかリモートのブランチをチェックアウトしようとするとディレクトリが使用中とかいって中途半端にチェックアウトされてしまう(ファイルだけ更新されてHEADが更新されてない感じ?)。

コンソールとか小さめのgitクライアントをいろいろ触ってみている - なーんだ、ただの水たまりじゃないか

lazygitで差分の方をスクロールするのはShift+j, Shift+kでも出来る(何故かヘルプにはpageup, pagedownしか載ってないが)

入門

公式で配ってるGit - Book Pro Gitという本がとても良く書けているが、 本格的に勉強する用の本なので、入門者に薦めるのはちょっと気がひける。

入門者にとりあえずこれ見て、というには何がいいだろう?と思い、ググってよさそうだったものを貼っておく。

Microsoft Learnはなかなか良い気がする。