我正在使用我的主分支,并在主分支内部进行一些未提交的更改。我已经创建了一个功能分支,我可以使用git checkout feature_branch
命令切换到我的功能分支。我有几个疑问,我在下面列出:
答案 0 :(得分:6)
如果我在master分支中提交更改并切换到我的功能分支,我看不到特定于master的已提交更改。对于未提交的更改,我期待同样的行为。
这不是明智的行为。未提交的更改按定义未对分支进行更改。分支是提交的指针,并且没有与未提交的更改相关联的提交。它们是在你的工作目录中创建的,并没有将它们绑定到任何分支。它们甚至与 Git 无关。在你提交(或存储)它们之前,Git绝对不会跟踪它们,它永远不会试图为你管理它们。
我在Git中遇到了stash命令,并且在那里提到如果你在master分支中有任何未提交的更改,并且想要切换到其他分支,git将不允许你,因此你需要存储主分支内的变化......
那是错的。任何分支内都不存在藏匿处。有一个全球性的藏匿处。
......我没有遇到这个问题。
只有在这样做会导致您的未提交更改被覆盖时,才会阻止您切换分支。
我在这里遗漏了什么,如果是,那么使用stash命令有什么意义?
如果更改影响了通过切换分支而改变的任何文件,则只需要担心存储更改。如果您对两个分支之间相同的文件进行了修改,则从一个分支切换到另一个分支将不需要存储。如果你的另一个分支上的文件不同,Git将不允许你切换分支,因为这会破坏你未经修改的更改。
尝试切换分支是安全的,如果Git警告您“未提交的更改将被覆盖”并拒绝切换分支,则可以隐藏更改并重试。