Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何从所有分支隐藏新文件(创建新文件的分支除外)?_Git_Github_Git Branch - Fatal编程技术网

Git 如何从所有分支隐藏新文件(创建新文件的分支除外)?

Git 如何从所有分支隐藏新文件(创建新文件的分支除外)?,git,github,git-branch,Git,Github,Git Branch,是否有一种配置可以防止在当前面包中有未提交的内容时切换分支? 在我初始化的GIT目录中,我签出一个我称之为库的分支。在那里我下载了许多javascript文件。我的目的是将库分支克隆到其他分支中,以便我的javascript文件始终存在于其他分支中。这个很好用 我的问题从创建新分支时开始,branch1和branch2。两者都包含libraries目录,但从这一点来看,我的意图是让新分支包含完全不同的文件 我遇到的问题是,当我在branch1中创建一个新文件,然后切换到branch2时,我发现我

是否有一种配置可以防止在当前面包中有未提交的内容时切换分支?

在我初始化的GIT目录中,我签出一个我称之为库的分支。在那里我下载了许多javascript文件。我的目的是将库分支克隆到其他分支中,以便我的javascript文件始终存在于其他分支中。这个很好用

我的问题从创建新分支时开始,branch1branch2。两者都包含libraries目录,但从这一点来看,我的意图是让新分支包含完全不同的文件

我遇到的问题是,当我在branch1中创建一个新文件,然后切换到branch2时,我发现我的新文件同时存在于branch1和branch2中。

我试图在下面说明我的问题:

从GitHub克隆的存储库开始,我有以下结构:

MyRepo
|_*master
  |__libraries
我创建branch1和branch2,结果如下

MyRepo
|_*master
| |__libraries
|
|_*branch1
| |__libraries
|
|_*branch2
  |__libraries
现在,我切换到branch2并添加一个文件script.js。在没有暂存和提交的情况下,我切换到任何其他分支,并在所有分支中找到我的script.js文件

我熟悉GIT中的暂存和提交文件,但对于我的大型项目,如果我碰巧将文件添加到某个特定分支,而在切换到另一个分支之前忘记暂存和提交文件,我会将文件放在它们不属于的地方,而且我从来没有想过要这样做。
我想通过问这个问题来先发制人。

根据你的描述猜一猜:

当您在一个已被git克隆的文件夹中(因此被git监视),添加新文件或修改现有文件,然后切换到另一个分支(使用git签出),这些更新将在其他git分支中看到。这是git中的预期行为

如果希望更新只保留在一个分支中,那么需要(git添加并)git将它们提交到该分支。在此之前,即使在您签出其他分支时,它们也会出现在您的本地文件夹中。这是正确的行为,因为您不希望在切换分支时丢失更新(尚未通过提交保存)


根据你的描述,不清楚你到底在做什么。您正在使用的git命令的实际顺序将有助于提供更好的答案。

git不知道您的文件script.js,因此切换分支时不会清理它,因为它不在新分支中,所以git会尝试覆盖它

您从未对该文件进行过
git添加
,因此对于git来说它不存在(未跟踪)。 如果要删除它,需要在切换后运行另一个命令,以清除git未跟踪的文件:

git clean -fx ./libraries

有关清理存储库的更多详细信息,请参阅git help clean。

您是否有一个用于库的存储库和一个用于“项目”的存储库,或者这些都在同一个存储库中?如果您将“库”与“branch1”和“branch2”合并,您应该能够让它们包含不同的文件。在提交文件之前,文件不会出现在任何分支中。您应该澄清问题的标题,说明您遇到的主要问题是什么,现在标题很模糊。@turtlepick:都是一样的repository@bitoiu:我发现在没有提交新文件的情况下切换分支会使它/它们出现在所有分支中-这不是我想要实现的,您更新的描述清楚地说明了这一点。所以我不确定git是否有办法满足您的要求,因为git还没有管理这些文件!