5

github上有一个不是我的存储库。我克隆了它,所以现在我的 github 帐户中有它的副本,我的计算机上也有该 repo 的副本。我创建了一个分支,它有自己的目录和大量文件,然后我将它们提交给该分支,称之为苹果。当我切换回主分支时,我在状态中注意到我在苹果上提交的目录和其中的所有文件都显示在状态中。所以现在我有一百多个文件,每次切换到 master 时都是可见的。

我的问题是如何做到这一点,以便当我切换回 master 时,我在苹果分支中的那些文件被忽略?我确定我可以修改 master 中的 .gitignore,但这会改变项目的 .gitignore。

谢谢


编辑:评论者指出,如果文件是在另一个分支中提交的,那么当我切换分支时它们不应该出现,这是正确的。在与在这里帮助我的每个人一起工作之后,我发现发生的事情是我在苹果分支上创建的目录中的一个子目录有自己的 .gitignore 忽略了很多文件。那个 .gitignore 是在苹果分支中提交的,当我切换分支(例如到主分支)时,那个目录特定的 .gitignore 消失了,所有最初在苹果分支上被忽略的文件都出现在 git-gui 的任何其他分支中作为未跟踪。所以我有很多我认为在苹果分支上提交的文件,但实际上并没有。对困惑感到抱歉!我会将 Ryan Stewart 的回答标记为正确。

4

2 回答 2

5

您可以像这样设置自己的“全局忽略”文件:

git config --global core.excludesfile ~/.gitignore_global

然后,您可以随意填充~/.gitignore_global。此外,您可以编辑

.git/info/exclude

就像.gitignore但它只适用于那个 .git 存储库。

于 2013-03-21T01:22:30.530 回答
4

如果您确实添加了新文件并将它们提交到分支苹果,然后切换回其历史记录中不包含苹果的 master,那么这些新文件将不会显示。关于您对问题的描述的某些内容没有意义。

也许您没有意识到在 git 中,您必须在它们git add之前提交文件git commit(除非您专门使用git commit <files>)?具体来说,如果您在分支苹果上添加目录香蕉,那么您可以执行以下操作:

git add banana
git commit -m "added the banana feature"
git checkout master

然后你会在主分支中,没有香蕉。在 a 之后git checkout apple,banana 会再次回来,因为它存在于那个分支中。

于 2013-03-21T01:33:57.427 回答