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