如何在SVN式的时尚中使用Git?

时间:2011-03-21 14:11:14

标签: windows svn git

我喜欢Git的简单性,但我很难有效地使用它。

是否可以使用Git(在我的本地开发机器上)执行以下操作:

  1. 在SVN(D:\gitrepo)等目录中拥有存储库
    • 我担心我可能不小心删除了我的整个项目的git仓库(只需删除一个文件夹,一切都消失了)
    • 有一个单独的偏离目录给了我一些安慰。
    • 手动备份一个文件夹而不是多个
    • 更容易
  2. 将git分支放在不同的目录中
    • 这样我就可以轻松比较他们了
    • 所以我可以很容易地看到我的分支
  3. 关于如何在git中继续上述内容的任何建议?

3 个答案:

答案 0 :(得分:4)

要设置像D:\gitrepo这样的存储库,您可以使用所谓的遥控器。您可以将此目录用作远程,您和其他开发人员可以将其用作“类似中央SVN的服务器”。创建gitrepo目录,然后运行命令git init --bare。然后,从您当地的git repo,您​​可以git remote add origin D:\gitrepo。然后你通过git push origin master推进。现在任何人都可以从D:\gitrepo克隆并推回他们的更改。

我不确定你的意思是“(只需删除一个文件夹,一切都消失了)”。 如果删除src/文件夹,则数据不会消失。假设您没有提交git reset --hard HEAD,可以轻松地将其回滚。如果您确实提交了它,请使用git revert SOMESHA。显然SOMESHA是提交的SHA1哈希值。如果您不小心删除D:\gitrepo,那不是问题,因为您的工作副本完全相同。再做我在第一段中所说的话。丢失所有内容的唯一方法是删除远程存储库以及从中克隆的所有存储库。

对于备份,您只需要备份整个D:\gitrepo文件夹。

对于第二点,没有简单的方法可以在不同的目录中使用分支。您可以做的最好的事情是拥有两个克隆,并将每个克隆设置为不同的分支。我不熟悉Beyond Compare,但是git diff在两个分支之间工作而不需要单独的目录。只需使用git diff master somebranch即可。要查看您拥有的分支,请使用git branch

答案 1 :(得分:2)

你肯定试图以一种不是为它设计的方式使用它;那就是......

1)是的,您可以拥有多个存储库的多个副本,因此如果您愿意,可以“git push”到另一个作为备份。尽管使用'git init --bare'设置另一个。

2)您可以将多个克隆的存储库彼此相邻,并在它们之间推/拉分支。但是,最后我认为这将使你的工作量大大增加。 'git branch'已经轻松列出了所有可用的分支。

答案 2 :(得分:2)

要在不同目录中拥有分支,可以使用git-new-workdir脚本。这在多个工作目录之间共享一个存储库,这些目录可以位于不同的分支。