0

さて、ここに奇妙なものがあります!

私はこの気の利いた小さな 32 ギガのサムドライブを財布に入れています。これには、コンピューターでの生活に必要な最新のすべてのファイルが含まれています。これには、私の BASH コマンド リファレンスがすべて含まれています。ルービック キューブ アルゴリズムから、リファレンスやデジタル ブックに使用する PDF、そしてこれまでに作成したすべてのソフトウェアまで、すべてが含まれています。友人が突然コンピュータを修理する必要がありましたか? バン!左ポケットのソフトでカバーしてもらいました。甘いでしょ?

レポに加えたすべての変更を追跡し、定期的にバックアップしたいと考えています。Git は、すべてのファイルをコピーし、リポジトリのサイズを大幅に膨らませることを除いて、これには非常にうまく機能します! これは実際には大きな問題ではありませんが、面倒です。私は Git がソフトウェア リポジトリに使用されていることを知っています。

だから私はどうにかして git nub として git を使用してリポジトリに加えた変更を記録し、実際のすべての変更の実行中のコピーを保持するのではなく、HEAD バージョンのみを保持することはできますか? したがって、プッシュ/プルを実行すると、レポはすべてのコメントとともにバックアップされますが、フラッシュ ドライブ内のアクティブ ディレクトリ ツリーにあるものだけが Git リポジトリに保存されますか? .exeファイルを削除すると、ログに記録されますが、ファイルは永久に削除されますか?

gitを使わずにこれを行うより良い方法があるでしょうか?たとえば、私は 7ZIP を使用して手動でバックアップを圧縮して作成し、バックアップの冗長性のためにそれらをクラウド サーバーに保存していました。これは時間がかかり、単純なものよりもはるかに面倒でした:

git add .
git commit -m "changes"
(git gc)
git push

どんな助けでも大歓迎です!

4

3 に答える 3

3

git-annexはあなたが望むことをします。バージョン管理に git-plumbing を使用しますが、インデックスとリポジトリにコピーはありません。

于 2012-12-01T22:44:47.963 に答える
1

私があなたを正しく理解していれば、どのファイルがいつ変更されたか、そして何が変更されたかについて人間が書いた説明のログが必要ですが、実際の変更は必要なく、最新の変更だけが必要です。

手動で変更ファイルを作成 (またはタイムスタンプと変更ファイルを取得するための小さなスクリプトを作成) し、rsync を使用してファイルの同期を維持します。単純。

しかし、実際には、変更の完全なリポジトリが必要になるでしょう (今必要でない場合は、今から 6 か月後には必要になります)。フラッシュ ドライブではありません。フラッシュ ドライブに加えた変更のログが必要な理由がわからないので、その要件は省略します。代わりに、完全な git リポジトリと完全なバックアップを備えた実際のディスクで開発を行うことをお勧めします。次に、ファイルをフラッシュ ドライブに展開します。それにはいくつかの方法があります。

1 つはrsyncを使用することです。それが本当に得意で、簡単に利用できます。

または、フラッシュ ドライブに浅いクローンを作成しますgit clone --depth 0 <repo>。このようにして、引き続きプル、差分、およびコミットを行うことができます。完全なログはありませんが、フラッシュ ドライブにログが必要な理由がわかりません。このリポジトリからプッシュすることはできませんが、差分を実行してローカルの変更を確認し、パッチ ファイルを作成することはできます。とにかく、フラッシュドライブで開発するべきではありません。

于 2012-12-01T23:05:19.233 に答える
0

Subversion のような集中ソース管理システムが必要なようですね。Git の要点は、リポジトリをローカルに持つことです。Subversion を使用すると、中央のコピーが 1 つになり、サムドライブで作業コピーだけを持ち運ぶことができます。

Git よりも Subversion から古いコミットを削除する方が簡単かもしれませんが、中央のコピーにはまだ完全な履歴があります。

于 2012-12-01T22:42:09.847 に答える