一旦文件已在 Git 中被跟踪,是否可以忽略该文件?
Is it possible to ignore a file once it is already tracked in Git?
是否可以添加一次虚拟配置文件(以便其他开发人员可以看到配置文件的外观),然后使用 .gitignore 文件忽略它。然后用有效的配置细节替换虚拟配置细节,这样我就可以继续开发项目并继续提交更改?但原始虚拟配置文件将在 Github?
上保持不变
这是我尝试过的方法:
- 在 Github
上创建存储库
- 初始化本地仓库
- 拉取远程仓库
- 使用 Configuration.java 将本地存储库推送到 github(包含虚拟详细信息)
- 将 Configuration.java 添加到 .gitignore 文件
- 将本地仓库推送到 github
- 将正确的详细信息添加到 Configuration.java
- 将本地仓库推送到 github
但是跟踪到 configuration.java 的更改,所以这不起作用。
如果您只是担心忽略本地开发存储库中的更改,您可以使用 git update-index --assume-unchanged <file>
忽略对文件的任何更改。有关详细信息,请参阅 http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/。
你提到:
- 使用 Configuration.java 将本地 repo 推送到 github(包含虚拟
详情)
- 将Configuration.java添加到.git忽略文件
问题在于,gitignore 仅适用于尚未被跟踪的文件,并且由于您已提交它,gitignore 无法正常工作为时已晚。引用 gitignore 文档:
A gitignore file specifies intentionally untracked files that Git
should ignore. Files already tracked by Git are not affected;
如果您想将自己的工作提交到公开可见的存储库,但又想隐藏敏感信息(例如连接字符串/密码等),请先提交一个虚拟文件。例如,提交如下内容:
public class Configuration {
public static final String USERNAME = "someUsername";
public static final String PASSWORD = "passwordHere";
}
然后,告诉 git 停止跟踪该文件的更改,这样您就可以在本地修改值,但系统不会提示您提交这些更改。
git update-index --assume-unchanged path/to/file.txt
有几点需要指出:
- 始终签入虚拟配置文件,不要将其完全遗漏。如果
你这样做,当人们检查你的项目并且文件丢失时,
他们将无法编译该项目!通过给一些帮助他们
示例数据。
- 因为 git 不再跟踪该文件,如果您进行任何修改
你确实想提交,你必须手动满足
(通过 github.com 或重新打开跟踪,修复它,然后
再次禁用跟踪)。为此,保持该文件相对轻便,只有变量,不要在其中放置您可能需要不断更新的逻辑。
是否可以添加一次虚拟配置文件(以便其他开发人员可以看到配置文件的外观),然后使用 .gitignore 文件忽略它。然后用有效的配置细节替换虚拟配置细节,这样我就可以继续开发项目并继续提交更改?但原始虚拟配置文件将在 Github?
上保持不变这是我尝试过的方法:
- 在 Github 上创建存储库
- 初始化本地仓库
- 拉取远程仓库
- 使用 Configuration.java 将本地存储库推送到 github(包含虚拟详细信息)
- 将 Configuration.java 添加到 .gitignore 文件
- 将本地仓库推送到 github
- 将正确的详细信息添加到 Configuration.java
- 将本地仓库推送到 github
但是跟踪到 configuration.java 的更改,所以这不起作用。
如果您只是担心忽略本地开发存储库中的更改,您可以使用 git update-index --assume-unchanged <file>
忽略对文件的任何更改。有关详细信息,请参阅 http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/。
你提到:
- 使用 Configuration.java 将本地 repo 推送到 github(包含虚拟 详情)
- 将Configuration.java添加到.git忽略文件
问题在于,gitignore 仅适用于尚未被跟踪的文件,并且由于您已提交它,gitignore 无法正常工作为时已晚。引用 gitignore 文档:
A gitignore file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected;
如果您想将自己的工作提交到公开可见的存储库,但又想隐藏敏感信息(例如连接字符串/密码等),请先提交一个虚拟文件。例如,提交如下内容:
public class Configuration {
public static final String USERNAME = "someUsername";
public static final String PASSWORD = "passwordHere";
}
然后,告诉 git 停止跟踪该文件的更改,这样您就可以在本地修改值,但系统不会提示您提交这些更改。
git update-index --assume-unchanged path/to/file.txt
有几点需要指出:
- 始终签入虚拟配置文件,不要将其完全遗漏。如果 你这样做,当人们检查你的项目并且文件丢失时, 他们将无法编译该项目!通过给一些帮助他们 示例数据。
- 因为 git 不再跟踪该文件,如果您进行任何修改 你确实想提交,你必须手动满足 (通过 github.com 或重新打开跟踪,修复它,然后 再次禁用跟踪)。为此,保持该文件相对轻便,只有变量,不要在其中放置您可能需要不断更新的逻辑。