git(tigも)
tigでblame
blameは表示がちょっと複雑なので、tigで見るのが便利。
$ tig blame tools/ansible.md
コミットメッセージの修正
やっちゃったコミットを修正出来る。
git commit --amend
あと、良くあるのが、メールアドレスとかの設定を忘れていた時とかで、その場合は以下のようにしてメールアドレスとかをリセットしてコミットしなおせる。
git commit --amend --reset-author
git logを検索
git logは -G
オプションでcommitの変更を検索出来る。
変更対象がどのタイミングで変更されたのか確認したい時にはblameよりも便利だったりする。
-p
を付けると変更内容も確認出来るのでより分かりやすい。
$ git log -p -G'regex'
tigでも -G
が使えるので便利。
tig -G'regex'
プロジェクトを検索
git grepを使えば、gitの管理対象のみを検索する事が出来る。
git grep "hoge"
defaultでは行番号がないので表示も出来る。
git grep -n "hoge"
また、特定のフォルダを対象にして検索も出来る。またフォルダ名に :!
を除外して検索出来る。
git grep "hoge" -- tools/
git grep "hoge" -- :!tools/
また、特定のコミットでの検索も出来る。
git grep "git" 905c31761aae388b691ea72de8c2ec37704e05f7
gitでpatchファイルの作成
gitは現在からの差分込みでcommit毎のpatchを作成する事が出来る git format-patch機能を利用すればコミットメッセージなど込みのpatchを作成する事が出来る。
$ : logを確認
$ git log -n 4
commit b9375d6752a03fc29d1ac8c8deee2f9844cc48b9 (HEAD -> master, origin/master, origin/HEAD)
Author: Kento Kawakami <kimitoboku@techack.net>
Date: Fri Sep 9 16:32:17 2022 +0900
Add mulit hosts file in one inventory
commit 57809fc213cd0071647cfc19e6bd1891ac5204cd
Author: Kento Kawakami <kimitoboku@techack.net>
Date: Tue Sep 6 12:18:33 2022 +0900
Add how to check MySQL acl
commit 62b91c4141aee331b4b2fee70f683a8077171c07
Author: Kento KAWAKAMI <emaxser@bonprosoft.com>
Date: Sat Apr 9 13:37:33 2022 +0900
fix format
commit d95cb079c2aeef6e925896aecda48614d26b9b1b
Author: Kento KAWAKAMI <emaxser@bonprosoft.com>
Date: Sat Apr 9 13:35:05 2022 +0900
Add new useal options
$ : patchを作成
$ git format-patch 62b91c4141aee331b4b2fee70f683a8077171c07
0001-Add-how-to-check-MySQL-acl.patch
0002-Add-mulit-hosts-file-in-one-inventory.patch
$ : Patchの適用
$ git am 0001-Add-how-to-check-MySQL-acl.patch
$ git am 0002-Add-mulit-hosts-file-in-one-inventory.patch
diffからpatchコマンドから適用出来るpatchを作成する事も出来る。 diffコマンドでは通常だとunstageの変更を出す事が出来る。 もちろんmasterとの差分など普通のdiffコマンドのように使えば良い。
$ : patchの作成
$ git diff > hoge.patch
$ : patchの適用
$ patch -p1 < hoge.patch