cd -
私はgit に と同等のものが欲しいと思っています。ブランチにいてmaster
をチェックアウトする場合、に戻るには のfoo
ように入力し、 に戻るにはもう一度 と入力できたらいいと思います。git checkout -
master
foo
このようなものは存在しますか?実装するのは難しいでしょうか?
ベストアンサー1
@{-1}
は、最後にいたブランチを参照する方法です。これは、
オブジェクト名が期待される場所だけでなく、ブランチ名が期待される場所であればどこでも受け入れられ、ブランチ名を入力したかのように動作します。
たとえばgit branch --track mybranch @{-1}
、、git merge @{-1}
およびは
git rev-parse --symbolic-full-name @{-1}
期待どおりに動作します。
そして
git checkout -
は の省略形ですgit checkout @{-1}
。
以前のチェックアウトのリストを表示するには:
i=0; while [ $? -eq 0 ]; do i=$((i+1)); echo -n "$i. "; git rev-parse --symbolic-full-name @{-$i} 2> /dev/null; done
この Bash ワンライナー スクリプトは完璧ではありませんが、ほとんどの場合に機能するはずです。数字がスキップされる場合があることにご注意ください。
ヒント:
.bashrc
として追加できますfunction
。