コミット後に git ログを自動更新することはできますか、それともターミナルで別のユーティリティを使用して、自動更新する以前のすべてのコミットのリストを表示できますか?
2225 次
3 に答える
8
他のソリューションよりもクリーンなので、次の方が好きです。
watch git log -2
入力がはるかに簡単
2秒ではなく、5秒ごとに更新する場合は、
watch -n 5 git log -2
watch
関数/バイナリがない場合:
function watch()
{
local delay=2
local lines=$(tput lines)
lines=$((${lines:-25} - 1))
if [[ "$1" -eq "-n" ]]; then
shift
delay=$((${1:-2}))
shift
fi
while true
do
clear
"$@" | head -n $lines
sleep $delay
done
}
于 2011-08-23T07:29:15.603 に答える
4
もちろん、sleep
他の回答で説明されているソリューションを使用することもできますが、それらはタイムリーな更新に依存しているため、美しくはなく、コミットとログの更新の間に遅延が発生します。
代わりに、ログが更新されたときに正確に発生する非同期更新が必要です。Linuxでは、ファイルの作成や変更などのファイルシステムイベントを監視するためにinotify-tools
(ここからダウンロードしてください。インストールするのは非常に小さく、前提条件はありません)。
inotifywait -m -r -e modify -e create -e close_write -e attrib .git/ | while read ; do
clear
git --no-pager log -2
done
.git
リポジトリのフォルダー(Gitがコミット時にファイルを変更する場所)で発生するイベントを再帰的に監視します。監視対象のイベントのセットをテストしたところですが、コミットとブランチスイッチのログオンのみを更新するだけで十分なようです。
于 2011-08-23T08:01:36.240 に答える
4
このようなことを意味しますか?
while true; do clear; git log -2 | cat; sleep 5; done
これは、上位 2 つの git ログ エントリを示しており、5 秒ごとに更新されます。"| cat" は、git がページャーを開くのを避けるためにあります。
ただし、これは新しいリモート変更を取得しません。
于 2011-08-23T07:09:07.733 に答える