2

私がプロジェクトで使用した唯一の分散型リビジョン管理システムは bazaar です。チェックアウトの方法を除いて、gitとmercurialについてはあまり知りません。私が bazaar を好きな理由は automv プラグインです。急いでいるときに頻繁に行う傾向があるファイルを手動で(コマンドライン/ ideなどから)移動/削除したことを検出します。しかし、bazaar は非常に遅いので、git に移行することを考えています。git にはこの機能に似た機能がありますか?

4

3 に答える 3

8

移動/名前変更の状況で Git が機能する方法は、まったく異なります。abc123...Git はコンテンツのみを追跡するため、あるコミットでファイル X に SHA1 ハッシュがあり、次のコミットでファイル Y にたまたま同じハッシュがあったことがわかりますabc123...。したがって、Git ツールは、履歴などを表示すると、その時点でファイル X の名前がファイル名 Y に変更されているに違いないと結論付けます。

このようにして、Git は、コミット時にその知識を持っている必要なく、あるコミットから次のコミットに移動するために実行されたアクションを再構築します。ファイルの名前を変更し、ファイル内の何かを変更する状況をイベント検出できます (もちろん、SHA1 ハッシュを比較することによってこれを行うのではなく、コミットで変更されたファイル間のテキスト比較を行うことによって行います)。

于 2008-12-23T07:47:08.287 に答える
2

あなたは探しているかもしれませんgit add --all

git が既に知っているファイルを更新し ( と同じ--update) 、メカニズムによって無視されない追跡されていないすべてのファイルを追加します。.gitignore

(私のものを強調してください。)

于 2008-12-23T15:11:49.683 に答える
1

参考までに、バザーだけが動きを知っています。SVN、Git、hg はバージョン付きのコピーと削除のみを知っています。違うと思います。しかし、前に述べたように、git は automv を非常にうまく処理します (私が聞いた限りでは)。クラスの名前を変更した後、egit が自動コミットを行うと聞きました。

于 2010-09-11T18:54:55.100 に答える