如何以类似 SVN 的方式使用 Git?

Zab*_*bba 2 svn windows git

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

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

  1. 在某个目录中拥有存储库,例如 SVN ( D:\gitrepo)
    • 我担心我可能会不小心删除一个项目的整个 git 存储库(只需删除一个文件夹,一切就都消失了)
    • 拥有一个单独的偏僻目录给了我一些安慰。
    • 手动备份一个文件夹比备份多个文件夹更容易
  2. 将 git 分支放在单独的目录中
    • 这样我就可以轻松比较它们
    • 这样我就可以轻松地看到我有哪些分支

关于如何在 git 中进行上述操作有什么建议吗?

jon*_*scb 5

要设置像 之类的存储库D:\gitrepo,您可以使用所谓的遥控器。您可以将此目录用作远程目录,您和其他开发人员可以将其用作“类似于中央 SVN 的服务器”。创建gitrepo目录,然后运行命令git init --bare。然后从您本地的 git 存储库中您可以执行以下操作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