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

Git 如何使文件结构反映当前分支,git,Git,当switch branch使用Git时,我的项目目录中的文件并不反映我切换到的分支。假设我正在开发一个名为“feat/someawesomefeature”的分支,我在该分支中创建了两个新文件并修改了一个。当我还在那个分支中时,我看到了那些新文件,当然还有我的目录/编辑器中的一个修改。我的问题是,当我切换到另一个分支(即master)时,我仍然可以看到这两个文件以及另一个文件中的修改。问题:是否可以让我的目录反映我当前所在分支机构的文件结构?顺便说一句,我将SublimiteText3与SFT

当switch branch使用Git时,我的项目目录中的文件并不反映我切换到的分支。假设我正在开发一个名为“feat/someawesomefeature”的分支,我在该分支中创建了两个新文件并修改了一个。当我还在那个分支中时,我看到了那些新文件,当然还有我的目录/编辑器中的一个修改。我的问题是,当我切换到另一个分支(即master)时,我仍然可以看到这两个文件以及另一个文件中的修改。问题:是否可以让我的目录反映我当前所在分支机构的文件结构?顺便说一句,我将SublimiteText3与SFTP绑定插件一起使用,我用它连接到我的流浪者。

分支只是提交的名称

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

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

$ git add .
$ git commit -m "created some new files"
然后,当您签出其他分支时,工作树将反映创建提交时项目的状态


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

分支只是提交的名称

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

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

$ git add .
$ git commit -m "created some new files"
然后,当您签出其他分支时,工作树将反映创建提交时项目的状态

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

有两种方法

一种是将更改提交到feat/一些很棒的特性中,然后签出另一个分支

或者您将更改隐藏(git add$FILES;git stash),然后签出另一个分支。

有两种方法

一种是将更改提交到feat/一些很棒的特性中,然后签出另一个分支


或者您git隐藏(git添加$FILES;git隐藏)您的更改,然后签出另一个分支。

通常,您所说的您想要的行为就是git所做的。可能会发生一些事情

新文件:听起来它们可能已经被跟踪了(
git add
)。如果一个文件未被跟踪,那么git在签出另一个分支时不会干扰它

但听起来您也对现有文件进行了更改。如果这些都没有提交,那么git应该抵制更改分支的尝试(警告对某个文件的更改将被覆盖)

那怎么办呢

好的,如果您已经准备好向分支添加更改,那么签出应该按照预期进行


如果您还没有准备好提交它们,那么使用
git stash
。这会将它们放入一个临时提交中,稍后可以使用
git stash pop
检索。如果您打算开始使用隐藏,最好阅读文档:

通常您所说的想要的行为就是git所做的。可能会发生一些事情

新文件:听起来它们可能已经被跟踪了(
git add
)。如果一个文件未被跟踪,那么git在签出另一个分支时不会干扰它

但听起来您也对现有文件进行了更改。如果这些都没有提交,那么git应该抵制更改分支的尝试(警告对某个文件的更改将被覆盖)

那怎么办呢

好的,如果您已经准备好向分支添加更改,那么签出应该按照预期进行


如果您还没有准备好提交它们,那么使用
git stash
。这会将它们放入一个临时提交中,稍后可以使用
git stash pop
检索。如果要开始使用隐藏,最好阅读文档:

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

首先:检查Preferences->Package Settings->SFTP->Settings Default中的“monitoring\u frequency”(监控频率)设置,并确保设置得足够低,可以不断更新

如果您使用的是整个目录副本:
最快的方法(但很快变老)是进入Project->刷新文件夹。这将使用git在远程服务器上所做的更改更新整个本地目录

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

首先:检查Preferences->Package Settings->SFTP->Settings Default中的“monitoring\u frequency”(监控频率)设置,并确保设置得足够低,可以不断更新

如果您使用的是整个目录副本:
最快的方法(但很快变老)是进入Project->刷新文件夹。这将使用git在远程服务器上所做的更改更新整个本地目录

在这种情况下,你应该改写你的问题。你太关注Git了,并且得到了关于Git的答案。显然,罪魁祸首是SFTP插件,但您提到它只是一个小细节。我看不出你的问题是什么