rsync -a
またはcp -R
を使って追跡されたフォルダのコピーを作成した場合、そのコピーをgit cloneのように使用することができますか、それとも奇妙な問題が発生しますか?これはすべて自分のコンピュータで実行されているので、誰もリポジトリにアクセスしていません。コピーされたgit repoを使うのは安全ですか?
明らかに、git-clonedディレクトリはどこからコピーされたかを知っているので、ソースを指定せずにgit pull
を実行できますが、私がそれを使わずに喜んでいると仮定すると、
実験として小さなプロジェクト、clone
があり、rsync
が作成され、結果のフォルダがdiff
作成されました。結果は次のとおりです。
[email protected] ~
$ git clone project/.git project2
Initialized empty Git repository in /home/itsadok/project2/.git/
[email protected] ~
$ rsync -a project/ project3/
[email protected] ~
$ diff -r project2 project3
Only in project3/.git: COMMIT_EDITMSG
diff -r project2/.git/config project3/.git/config
7,12d6
< [remote "origin"]
< url = /home/itsadok/project/.git
< fetch = +refs/heads/*:refs/remotes/origin/*
< [branch "master"]
< remote = origin
< merge = refs/heads/master
Files project2/.git/index and project3/.git/index differ
diff -r project2/.git/logs/HEAD project3/.git/logs/HEAD
1c1
< 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131066 +0300 commit (initial): first commit
diff -r project2/.git/logs/refs/heads/master project3/.git/logs/refs/heads/master
1c1
< 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131066 +0300 commit (initial): first commit
Only in project2/.git/logs/refs: remotes
Only in project2/.git: packed-refs
Only in project2/.git/refs: remotes
かなりの違いがありますが、そのほとんどは原点を基準にしているようです。私は正しい?
を私は答えを知らないが、私はそれは大丈夫だろうと思いたいです。私はあなたがなぜ必要としているのか非常に不思議です。 –
私はいくつかの変更を加えたバックアップフォルダと、今度はsshdを持っていないNATの背後にあるWindowsマシン上にあるレポをクローンしたいときに、もう2回、私の必要性が出てきました...しかし、主に、gitの仕組みをよりよく理解したいと思っています。 – itsadok