テキストファイルにユーザー名のリストがあります。このファイルを更新して送信します。最後のコミット以降に変更のリストを取得する方法を探しています。
diff形式はまったく必要ありません。最後のコミット以降、出力が1行に1つのユーザー名になるようにしたいと思います(各コミットに追加されます)。
出力からすべてのgit diff構文を削除する設定が見つからないため、純粋に追加されたばかりの新しい行のリストです。
はい
ソースファイル:
user1
user2
user3
その後、追加します。
user4
user5
その後、送信してください。
私はgit diffを実行し、次を見ることができるようにしたいです。
user4
user5
答え1
Lookahead / lookbehindをgrep diff出力に結合できます。
git diff --unified=0 | grep -Po '(?<=^\+)(?!\+\+).*'
(?<=^\+)
次に始まる行の肯定的なレビューです。+
(?!\+\+)
との一致を防ぐための否定的な予測です+++ a/path/to/file
。
gitオプション--unified=0
は、削除されたdiffコンテキストをフィルタリングする行数を減らすことですが、オプションです。
より良いものがあるかもしれません。私はPCREに精通していません。
答え2
kaikoの答えを借りると、--unified=0
次のような結果が得られます。
git diff HEAD^ HEAD --unified=0 | tail +6 | sed -e 's/^\+//'