提交修改如何帮助您在Git中切换分支?

提交修改如何帮助您在Git中切换分支?,git,Git,我正在读Git的书,书中有一个奇怪的地方: 但是,在您[更改分支]之前,请注意,如果您的工作目录或 临时区域具有与分支冲突的未提交更改 如果您要签出,Git不会允许您切换分支。最好是 切换分支时,保持干净的工作状态。有很多方法可以 绕过我们将要讨论的问题(即隐藏并提交修改) 稍后再报道 我理解隐藏有多大帮助,因为您基本上是将未提交的更改存储在一个隐藏中,以便以后可以重新应用它们,使您的工作/暂存位置没有任何未提交的更改。但我真的不明白在这种情况下,如何使用承诺修正来提供帮助。有什么想法吗?使用

我正在读Git的书,书中有一个奇怪的地方:

但是,在您[更改分支]之前,请注意,如果您的工作目录或 临时区域具有与分支冲突的未提交更改 如果您要签出,Git不会允许您切换分支。最好是 切换分支时,保持干净的工作状态。有很多方法可以 绕过我们将要讨论的问题(即隐藏并提交修改) 稍后再报道


我理解隐藏有多大帮助,因为您基本上是将未提交的更改存储在一个隐藏中,以便以后可以重新应用它们,使您的工作/暂存位置没有任何未提交的更改。但我真的不明白在这种情况下,如何使用承诺修正来提供帮助。有什么想法吗?

使用git amend会将现有提交更改为其他提交,因为消息不同。然后您基本上在同一个分支上,可以提交未提交的更改。如果你想回到你的另一个分支,你仍然可以发出一个“checkout”命令到达那里,它不包含你未提交的更改

我应该补充一点,如果您正在修改,您确实需要跟踪提交哈希,这样您就不会迷路。使用真实的(如特征)分支或隐藏是更为标准的方法。我想修正案是为了它的名字。。修改提交消息,而不是玩弄散列。

正如他们所说,“我们将在后面讨论”。-)关键是你现在就可以开始并提交,为你的临时工作状态创建一个永久的、不可更改的副本。您可以从以下内容开始:

...--o--o   <-- master
      \
       o--o--o   <-- feature
稍后,您将返回分支
功能
,该功能具有此错误(实心黑圈)提交。现在,您完成了打算进行的提交的工作,并使用
git commit--amend

git commit--amend所做的是像往常一样进行新的提交,除了不将其添加到分支的顶端之外,它将当前提交推到一边:

...--o--o   <-- master
      \
       o--o--o--o   <-- feature
              \
               ●   [abandoned]

…--o--o我不确定,但我猜这意味着你可以说
git commit-am“TEMPORARY:我迄今为止所做的更改”
,切换分支,然后当你回到这个分支时,你可以将临时提交修改成一个真实的分支。这是一个惊人的答案,谢谢!!无论何时讨论Git,图形都非常有用。。。
...--o--o   <-- master
      \
       o--o--o--o   <-- feature
              \
               ●   [abandoned]