我是否需要在Git中提交,我应该何时执行此操作,以及如何恢复旧版本?

时间:2011-08-02 17:42:42

标签: git version-control commit

我一直在关注Git的教程,我对一些具体问题感到困惑。我现在需要使用版本控制的主要原因是,如果我犯了错误并且不知道如何摆脱错误,只需访问我项目的先前版本。

  1. 如果执行了commit语句,那么版本是否只保存在Git中?出于某种原因,我认为每次在项目中进行任何更改时,它都会自动添加为您的存储库中的版本,以便您返回。

  2. 那么什么时候应该执行提交?只有当你认为自己取得了很大的进步时才会这样做吗?

  3. 你如何在Git中恢复到以前的版本?即什么是命令?

4 个答案:

答案 0 :(得分:3)

1。使用Git (与SVN或Bazzar或其他人相同),您需要提交以便保存版本 - - 这样,git只跟踪你认为足够好的版本。

2。当我有一些正常工作时,我倾向于承诺 - 至少在主分支上工作时。
如果我正在开发一个临时分支,专门开发一个新功能/修复一个bug,那么我会随时提交,以保存当前的工作状态。

3。您应该查看以下页面:Undoing in Git - Reset, Checkout and Revert

答案 1 :(得分:1)

  1. 是的,你必须承诺坚持改变。这在所有VCS中都是如此,不仅仅是Git。
  2. 当您拥有构建和运行的代码版本时,您应该提交。它应该是您希望能够撤消的内容。每次保存都不太可能。我发现我通常每天要做4到12次,但如果我做了很多小的改进,它会更频繁。

答案 2 :(得分:1)

  1. 是的,仅在您运行提交时。
  2. 您应该根据需要经常提交。每当你完成一些有用的东西,在你改变一些你担心的东西之前可能无法解决的问题,或者你想要确保你可以回到原点。将这些变化推向他人是另一回事。只推动至少大部分工作和稳定的事情。
  3. 如果您有选择权,并且需要基于文件的版本跟踪,则可能需要使用Subversion(SVN)。否则使用git checkout [commit-ref] [filename][commit-ref]是您想要的版本的哈希值。

答案 3 :(得分:1)

  1. 是。但请继续阅读......

  2. 特别是git,每次你认为你做了一个独立的逻辑改变时,最好提交。所以这应该发生很多 - 通常在5到30分钟之间进行一次。例如,只需克隆git的git repo,看看一些经验丰富的人的工作。

  3. 在许多其他vcs中:es,你的提交可以立即被其他人看到,通常认为只有在构建时提交,或者你有完整的功能时才是好的做法。在git中,这种粒度级别由分支处理,查看提交日志的人不仅应该看到你做了什么,而且看看你是如何做到的,例如:

    • “功能专业新分支”
    • “承诺:foos现在可以被frobnicated”
    • “commit:baz现在检查它起作用的foos是否正在进行frobnicated”
    • “commit:bar now can frobnicate foos”
    • “commit:tests for frobnication”

    这使得回顾源代码的工具对调试更有用。你当然应该尽量避免单个提交改变100多行 - 他们将你在源上完成的工作转变为难以理解的不透明块。