【问题标题】:Using Git to keep different versions of a file locally vs. in the master repository使用 Git 将文件的不同版本保存在本地与主存储库中
【发布时间】:2012-08-29 17:28:38
【问题描述】:

我有一个我想在本地操作的 PHP 配置文件,但在 git commits 到我的主存储库期间忽略这些更改。我有一个 .gitignore 文件,它曾经忽略这个 PHP 文件,但坏事发生了,现在 config.php 文件不再被忽略,我不记得如何重新忽略它。

我知道 SO 上的人说要使用 git rm --cached <filename>,但我终生无法弄清楚如何不让 git rm... 继续删除我的 config.php 文件。

我想知道是否有人可以列出如何忽略我的 config.php 以便我可以继续在本地对其进行编辑,但这些更改不会添加到 repo 中。

这是我.gitignore的全部内容:

application/config.php

这是我的config.php 中的一些 php 代码,我想保留在本地,进入我的主仓库:

$config['base_url'] = "http://localhost/";
//$config['base_url'] = "http://mysite.com/"; // this is the code and NOT
// "http://localhost" that i'd like to keep in my repo

这是删除我的文件的原因:

  1. git rm --cached application/config.php
  2. 更改application/config.php 文件和另一个文件(作为控件)
  3. git commit -m 'config.php shouldn't be changed'

    结果:2 files changed, 1 insertions(+), 370 deletions(-)config.php 是 370 行长)

【问题讨论】:

  • 尝试在git rm --cached之后立即提交
  • @KevinBallard,结果是相同的不希望的结果:1 files changed, 0 insertions(+), 370 deletions(-)
  • 不应该是.gitignore中的application/config.php吗?
  • @stark,感谢您指出这一点,这只是一个复制/粘贴错误,我的真实代码缺少第一个反斜杠,我现在更新了问题,

标签: git github gitignore


【解决方案1】:

我解决了自己的问题。我实际上需要这个:

git update-index --assume-unchanged <filename>

假设在我的问题中如上所述指定了 .gitignore 和 config.php 文件, 这是完整的工作流程:

  1. git update-index --assume-unchanged application/config.php
  2. git add -A
  3. git commit -m 'now config.php will be ignored'
  4. git push origin master

现在http://localhost 将保留在我的本地仓库副本的 config.php 中,http://my-site.com 将保留在我的主仓库的 config.php 中。

【讨论】:

  • 如果这就是你想要的,那么你的问题就很有误导性;它建议您要停止跟踪 config.php 但保留本地文件。
  • @Infiltrator 抱歉并不是要误导,感谢您指出这一点,我编辑了我的问题以明确我希望 config.php 文件保留在主存储库中
  • 这很酷。只是为了让您知道,当您要求 A 时,人们会回答 A;而你可能想要 B。
  • 每次从本地计算机提交时都需要这样做吗?或者update-index 将适用于所有未来的提交?
  • @timpeterson 在这种情况下甚至需要 .gitignore 吗?我不明白它在这里做什么
【解决方案2】:

您的 .gitignore 文件中需要有 config.php

但是,如果您实际上已将 config.php 添加到您的存储库中,则需要 git rm 它然后提交,然后重新创建它(或者您可以复制然后复制回来)。

【讨论】:

  • config.php 在我的 .gitignore 文件中
猜你喜欢
  • 2011-09-16
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 2014-09-04
  • 1970-01-01
  • 2015-03-18
相关资源
最近更新 更多