我正在尝试锻炼VSCode和GIT中分支的工作方式。以前,我使用过TFS,它非常简单-您创建一个分支,并且所有分支都存储在磁盘上的单独文件夹中,因此您可以轻松地在一个或另一个分支上工作。
因此,在VSCode中,我从master创建了一个新的分支“ test”。在VSCode中,我正在查看左下角的分支图标,以查看我正在使用的分支。
它说我正在测试中,所以我对file1进行了更改,提交并同步了更改。我现在想在master分支上工作,所以我左下角,切换到master,但是我在test分支中所做的更改仍显示在编辑器中。
如果我查看硬盘,则从test分支进行的更改就在那里,并且没有单独的test&master文件夹。那么如何再次在master分支上工作?我已经尝试过结帐,并在master分支上进行了同步,但是我总是显示测试更改。
一个典型的场景是,我在分支上研究新功能的过程中,在返回功能分支之前,我需要切换到master进行修补程序。在这些分支之间切换使我逃脱了。
答案 0 :(得分:4)
在vs代码中,请执行以下操作:
Select a ref to checkout
答案 1 :(得分:0)
TFS和Git作为版本控制系统的工作方式非常不同。就这个问题而言,
在TFSVC中,使用基于路径的分支。团队成员通常为他们工作的每个分支设置一个额外的工作区。
在Git中,分支只是指向提交的指针。在Git中更改分支实质上意味着指向不同的提交。如果您要切换到的分支的提交没有任何结构更改,那么即使切换到该分支后,您的目录结构也保持不变。
如果功能分支上有未提交的更改,并且您切换到主分支(提供的git允许您切换具有未提交的更改的分支),则相同的未提交的更改也将在主分支上可见。如果未提交的更改与master发生冲突,那么git会告诉您先提交更改,然后再切换到master。
但是,如果您在功能分支上提交了这些更改,然后切换到master,则这些更改将不会在master分支上显示,因为master分支现在指向另一个提交,并且缺少您在Feature分支上所做的最新提交。
您的方案的典型工作流程是-
答案 2 :(得分:0)
要在VScode中切换分支:git checkout branchname
。一切都需要。