停止git更新远程文件
我得到了一个git存储库,在那里我得到了几个文件。(实际上它是我的存储库) 在这个存储库中有一个文件,我想保存在GitHub remote中,但我不想让git更新它,即使这个文件在本地更改。我还希望在克隆此存储库的每台计算机上自动执行此操作停止git更新远程文件,git,github,gitignore,Git,Github,Gitignore,我得到了一个git存储库,在那里我得到了几个文件。(实际上它是我的存储库) 在这个存储库中有一个文件,我想保存在GitHub remote中,但我不想让git更新它,即使这个文件在本地更改。我还希望在克隆此存储库的每台计算机上自动执行此操作 所以基本上这些步骤: 创建文件并添加初始内容(v1) 提交并将文件推送到远程分支 做一些事情,让git忽略每台机器上对此文件的所有更改 更改文件内容(v2) 现在,我在远程(v1)和本地(v2)中获得了该文件,但是当我运行git status时,我不想看到
所以基本上这些步骤:
git status
时,我不想看到关于该文件的任何内容。另外,如果我将此存储库(带有文件v1)克隆到另一台机器上并对该文件(现在是v3)进行更改,我不希望在另一台机器上的git状态中看到有关此文件的任何内容
举个例子:我想将包含会话cookie的文件添加到GitHub。很明显,我不想将会话cookie推送到GitHub,只想使用占位符之类的东西。但是当我运行程序时,它必须包含正确的会话cookie,因此我必须用实际的cookie更新文件。现在我不想让git将这个文件更新到GitHub。当我将这个存储库克隆到另一台机器上时,我希望它包含一个占位符,就像在遥控器中一样,然后我可以手动更新它。此外,git也不希望从这台计算机更新文件
首先,我尝试将它添加到.gitignore并运行git rm--cached myfile
,但是git也想从远程删除这个文件
我尝试了使用git更新索引——假设myfile未更改
。从技术上讲,它满足了我的要求,但不是在所有其他机器上,因为它只影响我的本地git存储库
是否有一种方法可以完成步骤3中必须完成的工作?您问的是如何忽略对跟踪文件的更改,答案是Git不会这样做。从:
Git没有提供这样做的方法。原因是,如果Git需要覆盖此文件,例如在签出期间,它不知道对文件的更改是否宝贵,是否应该保留,或者它们是否无关,是否可以安全地销毁。因此,它必须采取安全路线,并始终保护它们
尝试使用git update index
的某些功能很有诱惑力,即假定未更改和跳过工作树位,但这些功能不能正常工作,不应以这种方式使用
任何类型的秘密都应该通过环境或配置文件传递。可以为此目的创建一个模板并签入,然后使用脚本将其复制到忽略的位置,以便您可以编辑它并添加机密。对于大多数主要生产系统,机密通常通过环境传递,因此不会写入磁盘。请尝试回答谢谢您的快速回答。但是我必须在我将存储库克隆到的每台机器上执行git update index--skip worktree myfile
,以便能够对那里的文件进行更改,而git忽略它。是否有办法将此信息也推送到远程?