2

我有一个 web 项目,它的根是我的 git repo 的根。Git 正在跟踪该项目中的大部分文件并推送到远程仓库。在项目的根目录中,我有一个 web.config 文件,我想在本地跟踪它,但不推送到我们的远程仓库。

这甚至可以用git吗?

4

4 回答 4

2

一种方法是添加一个虚拟引用,其中Gitolite安装在 Git 上游 repo 端(您要推送到的那个)。

这种更新钩子可以分析推送到的文件的内容,如果它包含错误的文件,则拒绝推送。VREF FILETYPE就是一个例子

于 2012-10-31T23:58:40.187 回答
1

这是可能的,只需在项目的根目录中创建一个文件,并为其命名.gitignore(不要忘记.文件名前面的点 ( ))。然后编辑文件并粘贴您想要忽略的任何文件,例如,我喜欢忽略所有具有 .ini 扩展名的文件,所以我.gitignore看起来像:

<<<<<<< HEAD
# built application files
*.ini
>>>>>>>
于 2013-04-30T15:34:07.260 回答
0

您可以创建一个单独的分支(我称之为config)并在那里添加您的文件并使用该分支来跟踪对该文件的更改,合并来自另一个分支的更改(可能master)。然后,您可以自由地将更改推送到master分支,而无需推送配置文件。但是你需要小心避免从错误的分支推送。

另一种选择可能是将更改提交到单独的存储库中的配置文件,并在当前存储库的工作树中具有符号链接或副本。将其添加到 .gitignore 文件将阻止当前存储库中的 git 将其列为要添加的内容。这种方式不太可能导致意外将该文件推送到您的服务器。

于 2012-11-01T00:26:34.227 回答
0

VonC 的答案在理论上是最好的,假设您可以根据您喜欢的 git repo 找到可以为您完成工作的工具。

Mohamed 正在做某事,但还没有完全做到。

我在这个问题上复制了 nasirkhan 的最佳选择

在您的文件准备好生产后,例如:Web.config,运行以下命令:

git update-index --assume-unchanged Web.config

如果您需要再次更新 Web 配置(跟踪更改),请运行以下命令:

git update-index --no-assume-unchanged Web.config

git-update-index 文档

于 2017-04-23T16:23:21.227 回答