GIT:开放提交和不同的存储库

时间:2010-12-07 02:13:24

标签: git

我昨天刚刚开始阅读和学习GIT,我已经在我的本地安装了它,建立了一个存储库,完成了停滞和提交,但我仍然不是很欣赏它的使用 - 显然我是GIT中的菜鸟 - 所以这里有一些困扰我的问题。

问题1: 好的,我可以在我的存储库中创建一个文件并对其进行一次或多次提交吗?意思是我可以有一个文件具有不同版本的提交,但是如何在文本编辑器中打开这些提交?或者我只是在这里错过了一些想法?

问题2: 好吧,我可以在我的本地不同的目录中创建一个或多个不同的存储库,但我希望它放入我的htdocs,这意味着我必须在我的htdocs中制作一个repo并将所有文件放在那里,然后我该如何测试如果我的代码在提交之前运行,我是否必须在浏览器中输入localhost / .git /?

我很抱歉我的愚蠢问题,我还是大学生,这是我第一次参加VCS。

先谢谢大师。干杯!!

2 个答案:

答案 0 :(得分:1)

  • Q1:您可以输入git log来获取所有提交的日志。然后,您可以输入git checkout <version#>将工作目录恢复为文件的先前版本,其中<version#>是每个日志条目前面的大长十六进制数字之一。你通常只需要提供前几位数字,git会告诉你它是否含糊不清。
  • Q2:与Q1一样,您可以使用git checkout ...将不同版本的代码放入工作目录,这将改变相同htdocs路径的内容。

    实际上,这意味着您至少需要两个Web服务器,通常称为dev(开发)和prod(生产)。您可以在dev上免费git checkout ...个版本,只有您可以访问,但prod应该经过更严格的部署。其中最简单的(并不是特别强大)是将文件从已知良好的工作目录复制到prod中。此外,还有许多online resources建议使用git本身进行prod部署的工作流程。

答案 1 :(得分:0)

希望我理解你的问题:如果你想同时拥有两个不同版本的文件,你可以分支你的存储库并分别处理这两个版本,直到你想要将两个版本的所有更改合并在一起。

通常使用Git,你不应该害怕犯下违反代码的东西;恢复很容易,你的所有历史都在那里。这是使VCS如此有用的事情之一。

但是,Git有一个“钩子”功能,这意味着您可以在提交过程中构建代码测试。因此,例如,假设您正在使用网站。您可以将其设置为每次尝试提交时都会弹出一个Web浏览器,以便您可以查看它是如何更改的。如果您批准结果,则继续提交。哎呀,因为这些Git钩子可以轻松调用其他程序,你甚至可以使用命令行截图工具自动截取浏览器的截图,并使用一些文件差异工具将其与已知的好截图进行比较,以确保它仍然渲染相同。如果您花时间进行设置,它将在每次提交时为您执行此操作。 (这只是一个随机的例子。)

有关使用Git钩子功能的一些基本入门信息,请查看此处: http://progit.org/book/ch7-3.html

我希望有所帮助。