Git Staged - 它有文件资料吗?

时间:2011-09-02 20:45:01

标签: git version-control

我是Git的新手。我真的很讨厌使用命令行,所以我使用的是SmartGit。

我有一些关于git阶段的新手问题。

  • 正确的工作流程为:stage -> commit -> synchronize。使用本地提交,我有文件的历史记录。但是,有了舞台,我没有它?像这种情况使用:
    • 我上演了修复。然后工作了很长时间并将其保存在另一个分阶段的过程中。但我想回到第一阶段。我可以做这个?或者我失去了这段历史?
  • 分阶段就像一个ROM(只读内存),所以我可以重写所有文件而旧版本丢失了?
  • 为什么舞台是好事?我有什么承诺没有?

3 个答案:

答案 0 :(得分:6)

舞台区域存在的原因是您可以准备提交。例如,如果您对两个不同的文件或同一文件的不同部分进行了无关的更改,则只能暂存其中一个,提交,然后暂存另一个并提交(使用不同的提交消息)。

关于您的具体问题:

因为舞台只是用于准备你的提交,所以它本身没有版本化。所以,是的,一旦你登上另一个版本,旧版本就会丢失(它在技术上仍然可以作为存储库中的对象存在,但它并不容易实现)。

它不像ROM,因为你可以写它。

注意:在合并期间也会使用暂存区域,因此准备提交不是唯一的用途。但从用户的角度来看,这是主要的一个。

答案 1 :(得分:0)

  • 如果您希望在索引中保留阶段的版本,则需要发出提交。

  • 如果您以后想合并上次提交和索引中的新更改,可以使用git commit --amendgit commit;git rebase --interactive HEAD^^

  • git索引不是ROM。它将通过git resetgit add

  • 进行修改
  • git索引是一个很棒的功能。它允许您从部分当前更改集创建提交。如果您不想使用它,则不必使用它。您可以使用git commit --all通过提交代码跳过索引,只要您修改的文件已被git跟踪。对于任何新文件,您可以在提交git add --all

  • 之前添加

答案 2 :(得分:0)

'暂存区/索引'有两种用途。一个是在合并期间“隐藏”所有临时文件,我相信你会在以后再来。它的另一个角色,对于新用户来说是一个重要的角色,就是在你提交之前准备好所有工作的地方。获得正确的可视化有很大的不同!

不同之处在于它与您的工作目录不同。它几乎就像一个“外框”文件托盘,我的另一个可视化是一个“故事板”墙,你可以在电影中看到关于杂志创作。

当您add文件到临时区域时,您将它们放在故障板上的开箱/故障板上,然后它们一直停留,直到您将它们取下/移出它们。

当您commit系统(git)获取您的暂存区域的正确副本并将其放在repo中时,使用您的提交消息。故事板墙仍然包含其中的所有内容,直到您更改它 - 例如addrm(删除),(交换到其他)branch等等。

一旦拥有了这种可视化,您就会发现它更容易。