2016-07-20 14 views
0

私はちょうど新しいコンピュータにここでgitのクローンを終えた、と私は今、面白い状態のレポを持っている:クリアアウトgitの作業ディレクトリ

何のブランチにチェックアウトはありません。作業ディレクトリは空ですが、repoはすべて.gitメタデータで圧縮されています。

ここで欠けているステップは、ブランチに作業コピーを取得するためにgit checkoutを実行することですが、この状態は私には分かりません。これは非常に大きなレポです。私は非常に頻繁にアクセスする必要はないと思っていますので、私は今、疑問を呈しています。ブランチがチェックアウトされていないこの「クリーン」状態に戻る方法はありますか?ファイルはメタデータとしてのみ存在しますか?

これは、いくらかのディスク容量を節約するのに大いに役立ちます。

私はすべてのローカルファイルを削除することを考えましたが、それはそのブランチでコミットされていない削除として表示されます。私は、単に作業ディレクトリをクリアして、リポジトリのすべてのブランチから切り離し、メタデータだけをrepoディレクトリに残す方法があるかどうかを調べたいと思います。

ここで考えられる解決策の1つは、すべてのファイルが削除されるブランチを作成することですが、それは非常にエレガントではありません。多分より直接的なアプローチが存在するでしょうか?

いつもありがとうございました!

乾杯

+0

[gitのローカル作業ディレクトリをクリアするにはどうすればいいですか?](http://stackoverflow.com/questions/673407/how-do-i-clear-my-local-working-directory-in- git) –

+0

かなりです。私はそれを読んで、それは作業コピーからuntrackedファイルをクリアすることにあるようです。ここで私の質問は、作業コピー全体をワイプし、メタデータだけをディスクに残すことでした。 – HarvesteR

答えて

1

私はここで自分の答えを見つけたと信じています。可能です!

Gitには '孤立した'枝の概念があります。これは、リポジトリ履歴に関する他のコミットと履歴関係がないブランチです。これは、私たちは行って、「ノーコミット」にチェックアウトすることができます効果的にすべてのファイルを取り除く

git checkout --orphan none

、その後

git rm -rf .

をし、「なし」の枝が持っているので、祖先はなく、削除は削除として表示されません。メタデータフォルダはそのまま残っているので、有効なブランチに戻るためにもう一度チェックアウトするだけです。ここ

さらに詳しい情報: https://coderwall.com/p/0n3soa/create-a-disconnected-git-branch

お奨めのgitのが大好き!

乾杯

+1

はい。短い/より速い、だがトリッキーな方法は、空のツリーを 'tree'オブジェクトとして持つコミットを作成し、この空のコミットを指す名前(ブランチまたはタグ名)を作成することです。 http://stackoverflow.com/q/9765453/1256452を見て、 'git commit-tree'と' git update-ref'を見てください。 – torek

-1

は、私はちょうど新しいコンピュータにここでgitのクローンを終えた、と私は今、面白い状態のレポを持っている: 何のブランチをチェックアウトしていないがあります。作業ディレクトリは空ですが、repoはすべて.gitメタデータで圧縮されています。

デフォルトでは、git cloneがマスターブランチをチェックアウトします。マスターブランチが空の場合(通常は、より意味のあるブランチ名を作成して、デフォルトのもの(master)ではなく、作業ディレクトリには表示されません)。

Gitチェックアウト--orphanなし

、その後

のgitのrm -rf。

このようにしないことをお勧めします。 git rmはファイルを削除対象としてマークします。それはあなたの作業ディレクトリを破壊します。

関連する問題