我不知道为什么这对我来说似乎不太清楚。
我有2个repos,repo1和repo2。每个回购都是分支:staging
master
和live
我认为我的一部分问题是我在开始使用git之后试图让.gitignore
工作(例如,在gitignore正确填充之前,repos是init'd)。
我已经尝试了所有精彩的git-update-index --assume-unchanged file
和我能找到的整齐git rm -r --cached .
,但我仍然不理解,因为它仍然不起作用。
我想在pull和push上忽略一些特定的配置文件和缓存文件夹。
如果我正在使用repo1>暂存并且我推送到repo2> staging,哪个.gitignore优先?或者它们都被应用了吗?
在几次尝试中,我似乎已经在推送时忽略了配置文件,但是不是仅仅发送对这些文件的更改,它将它们完全从分支中删除。混乱。
如果为了让.gitignore正常工作而重新开始(这是一个选项)会更聪明,那么这将是一种聪明的方法,以便不会丢失所有提交(它们不需要可访问)到新的回购,只为FUBAR清酒可以。)
THX
澄清:
我现有的存储库中有一些文件,我不再希望在push或pull上传输。
.gitignore要么不是忽略,要么是通过删除忽略 - 这是行不通的,因为当我推送时,我需要那些配置文件在另一端,而不是通过推送删除。
我以为我很聪明并开始使用git。它非常冗长,因此对newp感到困惑。
我想:
我可以在生产(prod)上有一个master和staging,在dev(dev)上有一个master和staging;
我会开发dev> staging分支,批准渐变和其他 更改,然后推送到prod> staging;
关于prod,git checkout staging和view以确保它有效;
一切正常,合并prod> staging prod> master,并checkout prod> master for the live site。
然后我将prod> master拉入dev> master,将dev> master与dev> staging合并(或者不是,如果它们是相同的),并在dev> staging上重新开始循环。
他们使用不同的数据库,以免在开发过程中污染产品,将它们分开是很重要的。
答案 0 :(得分:5)
.git / info / exclude如果您希望基于存储库的排除模式,您可以将它们放在名为.git / info / exclude或core.excludesfile
的特定存储库中的文件中。.gitignore用于添加您不想跟踪的文件。如果文件已被跟踪,并且您要添加到.gitignore。运行git rm --cached filename