在github上有一个不是我的存储库。我克隆了它,所以现在我在我的github帐户中有它的副本,我在我的计算机上有一份该repo的副本。我创建了一个分支,它有自己的目录和大量文件,然后我将其提交给该分支,称之为apple。当我切换回主分支时,我注意到状态中我在Apple上提交的目录及其中的所有文件都显示在状态中。所以现在我有一百个左右的文件,每次切换到master都可见。
我的问题是我怎样才能做到这一点,当我切换回来掌握苹果分支中的那些文件时会被忽略?我确信我可以在master中修改.gitignore,但这会改变项目的.gitignore。
感谢
编辑:评论者指出,如果文件是在另一个分支中提交的,那么当我切换分支时它们就不会出现,这是正确的。与我在这里帮助过我的人一起工作后发现我在Apple分支上创建的目录中的一个子目录有自己的.gitignore,忽略了很多文件。那个.gitignore是在apple分支中提交的,当我切换分支(例如到主分支)时,特定于目录的.gitignore消失了,并且最初在apple分支上被忽略的所有文件都出现在git-gui的任何其他分支中没有跟踪。所以我有很多文件,我认为这些文件是在苹果分支上提交的,但实际上却没有。对困惑感到抱歉!我将把Ryan Stewart的回答标记为正确。
答案 0 :(得分:5)
您可以设置自己的“全局忽略”文件:
git config --global core.excludesfile ~/.gitignore_global
然后根据需要填充~/.gitignore_global
。另外你可以编辑
.git/info/exclude
就像.gitignore
一样,但它只适用于.git存储库。
答案 1 :(得分:3)
如果你真的添加了新文件并将它们提交到分支苹果上,那么切换回master,它的历史记录中不包含apple,那么这些新文件就不会显示出来。关于你对问题的描述的一些事情是没有意义的。
也许你没有意识到在git中,你必须git add
文件git commit
之前(除非你专门使用git commit <files>
)?具体来说,如果您在branch apple上添加了目录banana,那么您可以执行以下操作:
git add banana
git commit -m "added the banana feature"
git checkout master
然后你会在主分支中,而且没有香蕉。在git checkout apple
之后,香蕉将再次返回,因为它存在于该分支中。