我有这个文件.让我们说x这个例子里面的文件夹y.我想在目录中放置一个存根(PS:我相信这个github项目实际上是我想要的),但只有一次.对于此示例,它看起来像这样:
module.exports.id = "";
module.exports.secret = "";
module.exports.callback = "";
Run Code Online (Sandbox Code Playgroud)
不应该共享这些值,这就是为什么我只想将文件(存根/空)放入存储库中一次.
当我x再次修改时,不应将更改放在git存储库中,而只应放在目录内y.
我希望我有道理,这也不是一个重复的问题.如果是这种情况,我很想知道讨论这个的stackoverflow主题,以便我可以关闭这个主题.
我通过以下方式解决它:我将文件重命名x为x-default并设置git以忽略该文件x(例如.gitignore,在dir中的a y).签出仓库的每个用户都必须将签出的文件复制x-default到x并设置其值.
这样做的好处是,x-default可以使用新值更新文件而不会出现问题(不会覆盖用户的配置),并且由于x被忽略,用户的值不会与其他用户的repos同步(如您所愿).
你的程序应该检查是否存在x,如果不存在,给出提示复制x-default到x并配置它(或自动执行此操作).
编辑
这有效,但我相信它可以做得更干净.
取决于你想要什么.您也可以在本地仓库中使用它:
git update-index --assume-unchanged x
Run Code Online (Sandbox Code Playgroud)
因此,您提交文件一次,然后在不希望进一步更改的情况下对文件运行命令.这里的问题是,如果其他用户希望像你一样拥有它,那么其他用户将不得不做同样的事情,否则他们的更改将被提交(并将覆盖你的或者它将以合并冲突结束).
要撤消此操作,请转到
git update-index --no-assume-unchanged x
Run Code Online (Sandbox Code Playgroud)
我不知道其他解决方案,但可能是其他人.
编辑
PS:我相信这个github项目实际上是我想要的
这看起来更像是我的第一个答案!他们有一个文件,example_keys_file.js并在文件中.gitignore忽略keys_file.js.