在家庭和办公室开发,GIT比使用xcopy的SVN更容易吗?

时间:2009-11-22 01:35:30

标签: svn git

如果出于安全原因,源代码只能存储在我的家用计算机和办公室计算机上,如果传输代码的唯一方法是USB密钥,哪种源控制最好?

SVN或GIT?

注意:两台计算机之间没有网络连接。

5 个答案:

答案 0 :(得分:10)

我推荐git。

无论哪种方式,您都需要USB密钥上的规范存储库。在git中你可以这样做:

在USB密钥上做一个“裸”回购:

$ mkdir /path/to/usbkey/myapp.git
$ cd /path/to/usbkey/myapp.git/
$ git init --bare
Initialized empty Git repository in /path/to/usbkey/myapp.git/

裸存储库目录通常被命名为“something.git” - 您可以随意命名它们,但“.git”约定被广泛使用。

现在你可以克隆回购:

$ cd /my/source/dir/
$ git clone /path/to/usbkey/myapp.git
Initialized empty Git repository in /my/source/dir/myapp/.git/
warning: You appear to have cloned an empty repository.

它会警告你回购是空的。我们在其中加入一些东西:

$ cd myapp
$ echo "some stuff." > README
$ git add README
$ git commit -m 'added a README'
[master (root-commit) 155b8ea] added a README
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 README

然后将其推送到USB密钥:

$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 231 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /path/to/usbkey/myapp.git
 * [new branch]      master -> master

当您到达另一台计算机时,只需再次从USB密钥克隆回购。您必须确保记得推送您的更改,但是您知道您将始终拥有备份,因为每当您同步时,您将拥有三份完整的回购副本。

使用git执行此操作的另一种方法是只有一个repo - USB密钥上的一个repo。您永远不必记得推送它,但除非您使用其他显式备份系统,否则您的代码将只在密钥上。那会很糟糕。

如果您在USB密钥上使用SVN,您仍然需要记住提交并以相同的方式提取您的更改有一个简单的git仓库,但是你不会得到这样做的免费自动备份git给你。你也会错过git的所有其他细节,但这是另一个讨论。请参阅Why Git is Better Than X

答案 1 :(得分:4)

任何一个都可以工作。如果你使用的是SVN,你可以用USB密钥完成工作。使用Git,您可以将密钥克隆到密钥上,只需在准备好将数据移动到办公室时按下密钥即可。

答案 2 :(得分:4)

使用Git,除了在USB上使用裸git存储库进行传输(如在Nealldj2答案中),您还可以使用“ git bundle “离线转移命令。

答案 3 :(得分:0)

Easy,GIT或其他一些DVCS - 不是因为DVCS本质上比subverion更好,而是因为DVCS可以更好地匹配您的需求,以及它允许​​您工作的方式。

在网络连接的绝对中,您无法从“服务器”存储库运行/访问SVN,这种情况会失败,而使用DVCS,您可以使用USB密钥上的克隆存储库作为两个开发环境之间的桥梁。

答案 4 :(得分:0)

正如Dj2所说,两者都可以发挥作用,但Git显然是出于此目的的最佳选择。 无论如何,我发现在这样一个“侧面特征”上做出如此重要的选择有点奇怪......