我有一个web项目,其根目录是我的git仓库的根目录。 Git正在跟踪这个项目中的大部分文件并推送到远程仓库。在项目的根目录中,我有一个web.config文件,我想在本地进行跟踪,但不会推送到远程仓库。Git:限制被推送到远程回购站的文件
这甚至可能与git?
我有一个web项目,其根目录是我的git仓库的根目录。 Git正在跟踪这个项目中的大部分文件并推送到远程仓库。在项目的根目录中,我有一个web.config文件,我想在本地进行跟踪,但不会推送到远程仓库。Git:限制被推送到远程回购站的文件
这甚至可能与git?
您可以创建一个单独的分支(我将其称为config
)并在其中添加文件并使用该分支来跟踪对该文件的更改,并合并来自另一个分支(可能为master
)的更改。然后,您可以自由地将更改推送到master
分支,而无需推送配置文件。但是你需要小心避免错误的分支。
另一个选择可能是将更改提交到单独存储库中的配置文件,并且在工作树中为当前存储库提供符号链接或副本。将这个添加到.gitignore文件中可以防止当前存储库中的git将其列为需要添加的内容。这种方式不太可能导致意外将该文件推送到您的服务器。
一种方法是在Git上游回购端(您推送的那个端)上安装virtual reference和Gitolite。
这种更新钩子可以分析文件的内容,如果文件中包含错误的文件,它们会推送并拒绝推送。
VREF FILETYPE就是一个例子。
这是可能的,只需在项目的根目录下创建一个文件,并将其命名为.gitignore
(不要忘记文件名前面的点(.
))。然后编辑要忽略任何文件的文件和粘贴,例如,我想忽略具有的.ini扩展名的文件,所以我.gitignore
样子:
<<<<<<< HEAD
# built application files
*.ini
>>>>>>>
原来这种方法不起作用。为了使gitignore忽略Web.Config更改,它不能存在于Repo中。所以,你不能在Web.Config中进行检查,因为你喜欢它进入Repo,然后gitignore变化前进。如果你想添加Web.config到gitignore,你还必须从repo中删除它,并打开一整个新的蠕虫罐。 – Suamere
VonC的答案是理论上最好的,假设你可以找到一个工具,可以根据你的味道的git回购为你做这项工作。
穆罕默德正在做些什么,但没有完全达到目的。
我复制从nasirkhan最好的选择上this question
您的文件后,生产准备,例如:如果你需要更新web配置
git update-index --assume-unchanged Web.config
:Web.config文件,运行此命令再次(修订),运行以下命令:
git update-index --no-assume-unchanged Web.config
我的远程仓库现在是Bitbucket。我意识到这可能会影响我的选择。 – LeRoy