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

Bla*_*man 5 svn git

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

SVN还是GIT?

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

Nea*_*all 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/
Run Code Online (Sandbox Code Playgroud)

裸存储库目录通常命名为"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.
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

然后将其推送到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
Run Code Online (Sandbox Code Playgroud)

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

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

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