【问题标题】:How do I protect git-assume-unchanged files from being overwritten by remote?如何保护 git-assume-unchanged 文件不被远程覆盖?
【发布时间】:2013-12-26 13:47:21
【问题描述】:

以下行为让我感到奇怪和烦恼:

  1. 我的本地存储库中有一个文件。
  2. 我推送到远程存储库。 (注意:我需要存储库中的文件!)
  3. 现在我要执行本地编辑,不应远程推送(例如,仅为我的本地计算机定制的配置)。
  4. 通过使用git update-index --assume-unchanged,我告诉 git 不要跟踪对此文件的更改。
  5. 但是当我执行git checkout -f 时,我的本地文件又被覆盖了。

保留本地更改但不远程推送它们的更好方法是什么?或者:如果我的程序有问题,我应该改变什么?

【问题讨论】:

  • 您在结帐时使用-f 是否有原因?这似乎与您在这里要完成的工作相矛盾。

标签: git git-push git-remote


【解决方案1】:

使用.gitignore 有意指定要忽略的文件。

1 - 在本地添加文件(无特定配置)
2 - 推送到远程
3 - 将文件添加到 .gitignore
4 - 自定义您的本地配置
5 - 做事
6 - 推送到远程
-> 文件将被忽略并保持原样。

【讨论】:

  • 但这不会从远程存储库中删除文件吗?
  • 只要你不告诉 git 删除它(使用git rm --cached filename)它就会保持原样
  • 好吧,但我需要远程存储库中的文件。所以这个答案没有帮助......对不起
  • 我重写了,这样可能更容易理解
  • 但是现在你的答案与你之前的答案相矛盾,“请注意,在将规则添加到此文件以忽略它之前,git 不会忽略已经跟踪的文件。 "。
猜你喜欢
  • 2013-06-16
  • 1970-01-01
  • 2011-08-31
  • 2018-03-03
  • 2013-04-27
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
相关资源
最近更新 更多