我有一个 web 项目,它的根是我的 git repo 的根。Git 正在跟踪该项目中的大部分文件并推送到远程仓库。在项目的根目录中,我有一个 web.config 文件,我想在本地跟踪它,但不推送到我们的远程仓库。
这甚至可以用git吗?
我有一个 web 项目,它的根是我的 git repo 的根。Git 正在跟踪该项目中的大部分文件并推送到远程仓库。在项目的根目录中,我有一个 web.config 文件,我想在本地跟踪它,但不推送到我们的远程仓库。
这甚至可以用git吗?
一种方法是添加一个虚拟引用,其中Gitolite安装在 Git 上游 repo 端(您要推送到的那个)。
这种更新钩子可以分析推送到的文件的内容,如果它包含错误的文件,则拒绝推送。VREF FILETYPE就是一个例子
。
这是可能的,只需在项目的根目录中创建一个文件,并为其命名.gitignore
(不要忘记.
文件名前面的点 ( ))。然后编辑文件并粘贴您想要忽略的任何文件,例如,我喜欢忽略所有具有 .ini 扩展名的文件,所以我.gitignore
看起来像:
<<<<<<< HEAD
# built application files
*.ini
>>>>>>>
您可以创建一个单独的分支(我称之为config
)并在那里添加您的文件并使用该分支来跟踪对该文件的更改,合并来自另一个分支的更改(可能master
)。然后,您可以自由地将更改推送到master
分支,而无需推送配置文件。但是你需要小心避免从错误的分支推送。
另一种选择可能是将更改提交到单独的存储库中的配置文件,并在当前存储库的工作树中具有符号链接或副本。将其添加到 .gitignore 文件将阻止当前存储库中的 git 将其列为要添加的内容。这种方式不太可能导致意外将该文件推送到您的服务器。
VonC 的答案在理论上是最好的,假设您可以根据您喜欢的 git repo 找到可以为您完成工作的工具。
Mohamed 正在做某事,但还没有完全做到。
我在这个问题上复制了 nasirkhan 的最佳选择
在您的文件准备好生产后,例如:Web.config,运行以下命令:
git update-index --assume-unchanged Web.config
如果您需要再次更新 Web 配置(跟踪更改),请运行以下命令:
git update-index --no-assume-unchanged Web.config