Git 为什么我必须在切换分支之前隐藏/提交更改?
我觉得这很烦人,因为我想快速切换分支并做一些事情,然后切换回以前的工作。我意识到我可以先藏起来,然后再取回藏起来的东西,但我每次都必须键入这些行:/ 有没有办法避免这样做Git 为什么我必须在切换分支之前隐藏/提交更改?,git,Git,我觉得这很烦人,因为我想快速切换分支并做一些事情,然后切换回以前的工作。我意识到我可以先藏起来,然后再取回藏起来的东西,但我每次都必须键入这些行:/ 有没有办法避免这样做 我还发现这很烦人,因为我保留了大约5或10个功能分支,很难管理哪些分支有需要检索的隐藏,哪些分支可以继续工作。您可以使用git stash来隐藏更改。然后您可以更改分支,然后恢复分支并恢复更改: $ git stash $ git checkout other_branch $ git checkout original_br
我还发现这很烦人,因为我保留了大约5或10个功能分支,很难管理哪些分支有需要检索的隐藏,哪些分支可以继续工作。您可以使用git stash来隐藏更改。然后您可以更改分支,然后恢复分支并恢复更改:
$ git stash
$ git checkout other_branch
$ git checkout original_branch
$ git stash pop
您可以使用
git checkout
的--merge
(-m
)选项。使用它会导致在切换分支时进行三向合并。如果发生合并冲突,您可能需要解决这些冲突 至于发生这种情况的原因,手册中指出 切换分支时,如果对一个或多个分支进行了本地修改 当前分支和当前分支之间不同的更多文件 要切换到的分支,命令拒绝切换 分支,以便在上下文中保留修改
有关更多详细信息,请参见。这实际上是您的一个问题的解决方案,但您可以在每个存储中添加一条消息,以了解哪个存储属于哪个分支。这样做,你将很容易知道哪些分支有藏匿处,哪些没有 要执行此操作,请使用以下命令:
git stash save -u branch1
其中“branch1”是您为藏品提供的消息或名称使之更容易的一种方法是使用以下内容。我喜欢Legit中的一个命令是
git-switch
:
$git开关
#切换到分支。隐藏和恢复未老化的更改。
Legit使用遵循特定命名约定的描述来存储存储。这样,当您使用
git switch
返回到第一个分支时,它可以自动取消为该分支保存的更改。我发现自己每天都处于相同的场景中:
我保留了大约5到10个功能分支,很难管理哪些分支有需要检索的存储,哪些分支可以继续工作
对我来说,最有效的解决方案也是最简单的(并在问题标题中提到):
提交正在进行的更改强>
我总是用大写字母写我真正的提交(如下),我所有正在进行的提交都以小写字母开头,所以在我推之前,它们会立即显示为需要一个交互式的回退。因此,如果我需要切换分支以帮助某人完成某些事情,我只需提交所有更改并使用提交消息,如:
在制品:新CoolFeature API的草稿
顺便说一句,如果我也出去喝咖啡,即使我不打算换分行,我也可能做出同样的承诺。在正常的一天中,我会向自己承诺并写下如下信息:
s into abcd123: First few words of that commit
f into bcde234: First few words of that commit
wip: rough draft of this thing
下次我rebase-I
我会按照自己的指示去做(s=squash,f=fixup)
需要读者思考的问题:
Git可能无法在没有提交或隐藏的情况下了解分支的状态,因此它不知道如何重建回购的状态…这不是一个好答案,但有时我只是将存储库的多个版本拉下来。您是否建议为了避免隐藏更改,你应该隐藏变化吗?+1我认为这更符合OP的要求。我正要发布一些基本上可以做到这一点的代码,因为我不知道legit。
s into abcd123: First few words of that commit
f into bcde234: First few words of that commit
wip: rough draft of this thing