如何使用类似SVN的时尚Git?

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

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

  1. SVND:\gitrepo )等目录下有一个仓库,
    • 恐怕我可能会不小心删除了我的整个项目的git repo(所需要的只是删除一个文件夹,一切都消失了)
    • 有一个单独的目录,给我一些安慰。
    • 手动备份一个文件夹比较容易
  2. 有不同的目录中的git分支
    • 所以我可以超越比较他们很容易
    • 所以我可以很容易地看到我的分支

有关如何在git中进行上述操作的任何build议?

要设置一个类似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

你肯定是试图以它不是为了设计的方式来使用它; 话虽如此…

1)是的,你可以有一个存储库的多个副本,所以你可以'推'到另一个作为备份,如果你喜欢。 尽管使用'git init –bare'来设置另一个。

2)您可以将多个克隆的存储库彼此相邻,并在它们之间推/拉分支。 但是,最后我认为这将会使你的工作更加明显。 “git分支”很容易列出你所有可用的分支。

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