如何使文件结构反映当前分支

时间:2017-04-11 14:58:39

标签: git

当使用Git切换分支时,项目目录中的文件不会反映我切换到的分支。让我们说我正在开发一个名为" feat / some-awesome-feature"并且我创建了2个新文件并在该分支中修改了一个。虽然仍在该分支中,但我在目录/编辑器中看到了那些新文件和一个修改。我的问题是,当我切换到另一个分支(即主)时,我仍然看到这两个文件和另一个文件中的修改。问题:是否可以让我的目录反映我当前所在分支的文件结构?顺便说一句,我使用SublimeText3和SFTP Bond插件,我用它连接到我的流浪者。

4 个答案:

答案 0 :(得分:2)

分支只是提交的名称。

根据您的描述,您创建了一些文件并修改了其他文件,然后切换了分支而未提交更改。它们仍然存在于您的工作树中。切换分支(签出不同的提交)不会影响它们,因为它们不在任何分支中。这是因为它们不属于任何提交。

您必须将新文件和更新的文件添加到存储库然后提交以使它们属于分支:

$ git add .
$ git commit -m "created some new files"

然后,当您签出另一个分支时,工作树将反映创建该提交时项目的状态。

如有疑问,请运行git status以查看工作树中是否有未更改的更改。

答案 1 :(得分:1)

这里的问题不是目录没有切换,而是Sublime SFTP没有正确更新文件。

首先:检查首选项中的“monitoring_frequency”设置 - >包装设置 - > SFTP - >设置 - 默认并确保将其设置得足够低以便不断更新。

如果您使用的是整个目录复制: 最快的方式(但快速变老)是去Project - >刷新文件夹。这将使用git在远程上执行的更改来更新整个本地目录。

答案 2 :(得分:0)

有两种方式。

一个是将更改提交到feat / some-awesome-feature并在之后结帐另一个分支。

或者你git stash(git add $ FILES; git stash)你的更改,然后签出另一个分支。

答案 3 :(得分:0)

一般来说,你想要的行为就是git所做的。有几件事情可能会发生......

新文件:听起来好像他们已被跟踪(git add)。如果文件未被跟踪,那么当签出另一个分支时,git不会打扰它。

但听起来你也对现有文件进行了更改。如果那些没有提交,那么git应该拒绝尝试更改分支(警告将覆盖对此类文件的更改)。

那该怎么办?

好吧,如果您已准备好addcommit对分支进行更改,则可以执行此操作,然后结帐应按预期运行。

如果您 准备提交它们,请使用git stash。这会将它们置于临时提交中,稍后您可以使用git stash pop进行检索。如果您要开始使用藏匿处,请阅读文档:https://git-scm.com/docs/git-stash