%20%E3%81%97%E3%81%A6%E3%82%82%E5%95%8F%E9%A1%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%3F.png)
私は git の使用にかなり慣れていないのですが、ではなく、一般的な UNIX コマンド (または / など)cp
をtar
使用して Git リポジトリをコピーしても大丈夫かどうか疑問に思っています。 untag
git clone
私は、git でチェックアウトされた一部のコードを含む実稼働環境 (python 仮想) を持っている状況にあります。tar
または何かを使用して環境全体をコピーすることは、git の観点から悪い考えではないかと思っています。 この方法は、コードベース/環境の簡単なコピーを作成するのに便利です。
私の懸念は、git clone が何らかの一意の ID を作業コピーに関連付け、一方が他方からファイルシステムコピーされた 2 つの作業コピーが存在する場合に競合が発生する可能性があることです。
答え1
まったく問題ありません。
git
すべての履歴、コミットなどをサイト上に保存します。これは DCVS の基本的な特性です。
技術的に言えば、git
コピーされたリポジトリがあちこちにあっても問題なく動作します。なぜなら、DCVSのポイントは、特定のリポジトリの外で何が起こっているかを知る必要はない、そして実際にはあなたが言わない限り。
ここでも同じ原則が適用されます。
答え2
Git、Hg、または SVN を使用する場合、作業ディレクトリ全体をシステム上の任意の場所にコピーして、通常どおり機能し続けることができるはずです。他の SCM についてはコメントできません。
答え3
これはあまり一般的ではない使用例ですが...
私は見たrepo
ユーティリティは.git
ディレクトリ内にシンボリック リンクを作成します。その場合、コピーを行うときは、シンボリック リンクを参照解除する必要があります。例:
cp -r -L <source-repo-dir> <destination-repo-dir>
答え4
問題ありませんが、リポジトリを他の人と共有する場合は、次の点を考慮してください。:
- あなたの
config
ファイルには、他の人が気にしないリモートが含まれている可能性があります。 - フォルダー
logs
には、共有したくない参照が含まれている場合があります。Git は、最終結果に満足するまでコンピューターで厄介な作業を実行させ、それをリモートにプッシュして (場合によっては) 共有するのに最適です。その厄介な履歴の一部は reflog にある可能性があるため、共有しない方がよいと個人的には思います。 - ファイル
info/exclude
は一部のファイルのみを無視している可能性がありますあなた無視したい。 - フック、ブランチ、その他個人的なもので共有したくないものも多数あります...