相关疑难解决方法(0)

忽略git中的修改(但未提交)文件?

我可以告诉git忽略被修改(删除)但不应该被提交的文件吗?

情况是我在repo中有一个子目录,其中包含我根本不感兴趣的东西,因此我将其删除以防止它出现在自动完成等中(在IDE中).

但是现在,如果我将该文件夹添加到.gitignore,只是没有任何变化,所有的东西都显示为被git status删除.

有没有办法让git忽略它?

(或者,因为我正在使用git-svn,我可以将更改提交给本地git并确保它们不会传递给svn repo吗?)

git ignore git-svn

170
推荐指数
5
解决办法
6万
查看次数

提交计算机专用配置文件

我开发的一个常见场景是代码库将有几个配置文件需要特定于机器的设置.这些文件将被检入Git,其他开发人员将不小心将它们重新检入并打破其他人的配置.

一个简单的解决方案就是不将它们检入Git,甚至为它们另外添加.gitignore条目.但是,我发现在文件中有一些合理的默认值更加优雅,开发人员可以根据自己的需要进行修改.

有没有一种优雅的方式让Git很好地使用这些文件?我希望能够修改特定于机器的配置文件,然后能够在不检查该文件的情况下运行"git commit -a".

git version-control configuration

78
推荐指数
4
解决办法
9844
查看次数

git:忽略*是*版本控制的文件

一个.gitignore文件可以忽略从版本控制他们的所有文件.

我们有不同的情况:我们希望在存储库中放置一些配置文件,这些配置文件需要在每台机器上进行更改(例如,数据库访问信息).

我们确实希望将它们作为占位符进行分发,因此我们将它们包含在存储库中.但是,稍后我们希望对所有开发人员忽略对它们的任何更改.

有办法吗?

注意:

问题的Git:忽略版本控制文件实际上是一样的.但是,没有一个答案回答了这个问题,包括接受的问题.

编辑:

  • 有没有办法 - 对模式而不是单个文件保持不变?
  • 有没有办法将此命令传播到其他开发人员的存储库?

git

17
推荐指数
2
解决办法
2843
查看次数

git - 处理冻结的内容

我工作的几乎所有项目都有某种"冻结内容",这些内容应该在克隆时总是出现,但很少被更改(参见下面的示例).我尝试过使用git的不同方法,但它们都容易出错:人们经常会意外地提交更改.

这是一个微妙的案例:文件/文件夹必须是版本化的,但绝大多数的更改都不应该被推送.

环顾四周我有几个选择:

  • git update-index --assume-unchanged <file>: 问题 - 这似乎是一个本地设置,所以这只解决了给定机器上的问题.新的克隆容易忘记并且仍然意外地进行更改.
  • git update-index --skip-worktree <file>:问题 - 看起来有同样的问题,因为我认为索引的更改不会被传播.
  • git rm --cached <file>:问题 - 根本不是一个解决方案,因为这推动了每个人的副本!
  • echo <file> >> .gitignore:问题 - 不是真正的解决方案,因为这只控制是否将对象添加到repo.
  • 使用涂抹/清除过滤器来排除提交中的文件更改(请参阅jthill的答案):问题 - 复杂,容易出错:仍需要每个开发人员进行本地配置.

这个问题的可接受答案不需要每个新开发人员采取特殊行动.

为什么?因为这正是上述解决方案的问题,根据我的经验,这导致"有人再次提交该文件"的情况.

搜索很容易出现很多问题.我们需要一个最终答案!

例:

这是我正在处理ATM的情况.我的项目是一个嵌入wiki软件的网站(我没写过).wiki组件需要一个非平凡的文件夹结构,它的使用方式与数据库相似(可能应该是一个).它需要找到已经存在的文件夹和文件.一段时间后,这些文件变大了 - 我们不想跟踪这些变化!这个文件夹结构还包含一些配置(我知道).如果我可以在存储库中包含裸副本,并且以某种方式(几乎)从不跟踪其更改,那将是完美的.

git version-control ignore gitignore

7
推荐指数
1
解决办法
146
查看次数