ブランチはアーカイブしません。言い換えると、ブランチは自分自身をアーカイブします。あなたが望むのは、考古学者に関連する情報が信頼できる方法で見つけられることを確実にすることです。毎日の開発を支援し、作業を完了するプロセスに余分なステップを追加しないという点で信頼できます。つまり、ブランチが完成したら、タグを忘れずに追加できるとは思いません。
考古学と開発に大いに役立つ2つの簡単なステップを次に示します。
- 単純な命名規則を使用して、各タスクのブランチを課題追跡の関連する課題にリンクします。
git merge --no-ff
タスクブランチをマージするために常に使用します。1つのコミットだけでも、コミットと履歴をマージする必要があります。
それでおしまい。どうして?コード考古学者として、私はめったにブランチで行われた作業を知りたいと思うことから始めることはないからです。はるかに頻繁に、それはすべての叫び声の9つの地獄でコードがこのように書かれている理由です!?コードを変更する必要がありますが、奇妙な機能がいくつかあり、重要なものを壊さないように、それらを混乱させる必要があります。
次のステップはgit blame
、関連するコミットを見つけて、ログメッセージが説明であることを期待することです。さらに深く掘り下げる必要がある場合は、作業がブランチで行われたかどうかを確認し、ブランチ全体を(課題トラッカーでのコメントとともに)読みます。
git blame
XYZのコミットを指しているとしましょう。私はGit履歴ブラウザー(gitk、GitX git log --decorate --graph
など)を開き、コミットXYZを見つけて表示します...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
私の枝があります!QQ、UU、XYZ、JJ、MMはすべて同じブランチの一部であることを知っているので、詳細についてはログメッセージを確認する必要があります。私はGGがマージコミットになることを知っており、トラッカーの問題に関連付けられていると思われるブランチの名前を持っています。
何らかの理由で古いブランチを見つけたい場合は、実行git log
してマージコミットでブランチ名を検索できます。非常に大規模なリポジトリでも十分高速です。
ブランチが自分自身をアーカイブすると私が言うとき、それは私が意味することです。
すべてのブランチにタグを付けると、物事を成し遂げるために不必要な作業が追加され(冷酷に合理化する必要がある重要なプロセス)、タグリスト(パフォーマンスとは言えないが、人間の読みやすさ)が数百のタグで一杯になり、たまにしか役に立たないため、役に立たない考古学にも非常に役立ちます。
git checkout [rev] file