如果我使用以下命令复制跟踪文件夹rsync -a
or cp -R
,然后我可以像使用 git 克隆一样使用该副本吗?或者这会导致各种奇怪的问题吗?这一切都在我的计算机上运行,因此没有其他人访问该存储库。
显然,git-cloned 目录知道它是从哪里复制的,所以我可以这样做git pull
没有指定来源,但假设我愿意没有它,有什么我需要担心的吗?
作为一个实验,我创建了一个小项目,clone
d它和rsync
编辑它,并且diff
编辑生成的文件夹。结果如下:
itsadok@quad ~
$ git clone project/.git project2
Initialized empty Git repository in /home/itsadok/project2/.git/
itsadok@quad ~
$ rsync -a project/ project3/
itsadok@quad ~
$ 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 <itsadok@quad.(none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <itsadok@quad.(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 <itsadok@quad.(none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <itsadok@quad.(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
有相当大的差异,但大部分似乎是关于起源的参考。我对吗?
这是安全的。
使用“git clone”的不同之处在于,它会自动设置原始存储库,这样您就可以轻松地使用“git pull”和“git push”来同步两个存储库。此外,“git clone”不会复制存储库本地的日志、索引和其他配置。它仅复制存储库的版本历史记录(甚至可以以不同的方式存储在字节级别,因为 Git 在使用“git gc”时时不时地压缩其数据库)。
您在示例中看到的这些差异是因为 rsnc 还复制了工作目录索引、日志,并且因为 rsync-copy 没有设置远程源。存储库本地有很多配置和日志文件。但是直接复制它们没有危险,例如在恢复备份或将存储库移动到另一个目录/硬盘驱动器/计算机时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)