2020年12月24日木曜日

git-crecord

はじめに


gitのコミット時に行単位でコミットする部分を選択できるツール git-crecord に4年ぶりにリリースタグが付けられていましたので、 設定方法をメモしておきます。

git-crecordには、

  • 部分選択コミット作業に特化
  • テキストユーザーインターフェイス(ncursesベースのCUI)
  • 操作方法が直感的なので覚えることはほぼなし(習得が簡単!)
という特徴があります。コミット以外の作業もテキストユーザーインターフェイスで行いたい場合は 多機能なtigのほうが便利でしょう。 なお、git-crecordはMercurialの拡張機能であるcrecord(※1)のgit移植版です。

設定


https://github.com/andrewshadura/git-crecord からgitでcloneします。このメモの作成時点では Python 3.6 以降が必要とのことです。

あとは、cloneしたディレクトリにあるgit-crecordがgitから見つけられるようPATHを通すだけです。 すでに、~/.local/bin/にパスが通っているのであれば、 そこにgit-crecordへのリンクを作成するのが最も簡単でしょう。 名前はgit-crecordのままである必要があります。

実行例


gitリポジトリでgit crecordを実行すると、
Select hunks to commit - [x]=selected **=collapsed  c: confirm     
q: abort  arrow keys: move/expand/collapse  space: deselect        
?: help                                                            
[x]    diff --git a/aaa.txt b/a.txt                                
       similarity index 100%                                       
       rename from aaa.txt                                         
       rename to a.txt                                             
                                                                   
___________________________________________________________________
[x]    diff --git a/b.txt b/b.txt                                  
       new file mode 100644                                        
                                                                   
   [x]     @@ -0,0 +1,1 @@                                         
      [x]  +bbb                                                    
___________________________________________________________________
[~]    diff --git a/c.txt b/c.txt                                  
       index 1e2c877..7bd5b45 100644                               
       2 hunks, 3 lines changed                                    
                                                                   
   [~]     @@ -1,3 +1,4 @@                                         
            ccc                                                    
      [x]  -ddd                                                    
      [ ]  +111                                                    
      [x]  +dDd                                                    
            eee                                                    
                                                                   
   [x]     @@ -3,0 +5,1 @@                                         
      [x]  +333                                                    
のような画面が表示されます。使い方はみたままです。 スペースキーでコミットする部分を行単位またはハンク単位、ファイル単位で選択できますので、選んだ後にcキーを押せばコミット処理が開始されます。

補足


(※1) Mercurialの設定ファイルに
[ui]
interface = curses
と書いておけば hg commit -i で使えます。

0 件のコメント :