让git不要推送某些已经被跟踪的文件

让git不要推送某些已经被跟踪的文件,git,Git,我有同一个站点的本地和远程存储库,但有些文件我想分开保存 本地repo上有一个配置文件和一个.htaccess文件,但我想在远程保存这些文件的不同副本。当这些文件已经被跟踪时,我怎样才能让git忽略它们呢?我想您正在寻找假定未更改的标志 基本上,尝试运行以下命令 git update-index --assume-unchanged <filename> git更新索引--假定未更改 这将停止跟踪对文件名的任何本地更改 要撤消上述命令的效果,请使用git update index

我有同一个站点的本地和远程存储库,但有些文件我想分开保存


本地repo上有一个配置文件和一个.htaccess文件,但我想在远程保存这些文件的不同副本。当这些文件已经被跟踪时,我怎样才能让git忽略它们呢?

我想您正在寻找
假定未更改的
标志

基本上,尝试运行以下命令

git update-index --assume-unchanged <filename>
git更新索引--假定未更改
这将停止跟踪对文件名的任何本地更改


要撤消上述命令的效果,请使用
git update index--no-assessed unchanged

我想您正在寻找
assessed unchanged
标志

基本上,尝试运行以下命令

git update-index --assume-unchanged <filename>
git更新索引--假定未更改
这将停止跟踪对文件名的任何本地更改


要撤消上述命令的效果,请使用
git update index--no-assessed unchanged

我想您正在寻找
assessed unchanged
标志

基本上,尝试运行以下命令

git update-index --assume-unchanged <filename>
git更新索引--假定未更改
这将停止跟踪对文件名的任何本地更改


要撤消上述命令的效果,请使用
git update index--no-assessed unchanged

我想您正在寻找
assessed unchanged
标志

基本上,尝试运行以下命令

git update-index --assume-unchanged <filename>
git更新索引--假定未更改
这将停止跟踪对文件名的任何本地更改


要撤消上述命令的效果,请使用
git update index--no假设未更改

正确的git工作流将是使用分支。例如,使主分支与远程分支保持同步,并为config和.htaccess文件的更改创建“本地”分支

使用此设置,您可以在master中完成大部分工作,然后当您想在本地测试东西时,您可以首先执行以下操作

git checkout local
git merge master

这种方法的优点是,如果远程上的config或.htaccess文件发生更改,它应该显示为与本地分支的合并冲突(这很好,因为新的更改可能应该添加到本地配置中)。

正确的git工作流应该是使用分支。例如,使主分支与远程分支保持同步,并为config和.htaccess文件的更改创建“本地”分支

使用此设置,您可以在master中完成大部分工作,然后当您想在本地测试东西时,您可以首先执行以下操作

git checkout local
git merge master

这种方法的优点是,如果远程上的config或.htaccess文件发生更改,它应该显示为与本地分支的合并冲突(这很好,因为新的更改可能应该添加到本地配置中)。

正确的git工作流应该是使用分支。例如,使主分支与远程分支保持同步,并为config和.htaccess文件的更改创建“本地”分支

使用此设置,您可以在master中完成大部分工作,然后当您想在本地测试东西时,您可以首先执行以下操作

git checkout local
git merge master

这种方法的优点是,如果远程上的config或.htaccess文件发生更改,它应该显示为与本地分支的合并冲突(这很好,因为新的更改可能应该添加到本地配置中)。

正确的git工作流应该是使用分支。例如,使主分支与远程分支保持同步,并为config和.htaccess文件的更改创建“本地”分支

使用此设置,您可以在master中完成大部分工作,然后当您想在本地测试东西时,您可以首先执行以下操作

git checkout local
git merge master

这种方法的优点是,如果远程上的配置或.htaccess文件发生更改,它应该显示为与本地分支的合并冲突(这很好,因为可能应该将新的更改添加到本地配置中)。

我已经这样做了,但它似乎仍在更新它们。这是否意味着它假设它没有更改,但它在远程上看到不同的版本,因此将其更改回“未更改”文件?您的意思是(.htaccess文件)在稍后执行拉取时更新为原始值?IIRC,这是仅当对文件进行新提交时的默认行为。将需要检查并确认。当我推送到远程服务器时,是的,.htaccess和config文件将更新为原始值。嗯,您的htacces文件应提交到与远程服务器上所需的值相对应的文件。然后,本地副本应具有特定于您的环境的更改,并且应假定此文件未更改。你就是这么做的,而且仍然面临问题吗?啊,好的,现在已经解决了。我在git之外更改了远程文件,所以它仍然看到“未归档”文件和远程文件之间的差异。所以我按照你说的做了,在远程上提交我想要的值,然后假设不变。谢谢你的帮助。我已经做了,但它似乎仍然更新他们。这是否意味着它假设它没有更改,但它在远程上看到不同的版本,因此将其更改回“未更改”文件?您的意思是(.htaccess文件)在稍后执行拉取时更新为原始值?IIRC,这是仅当对文件进行新提交时的默认行为。将需要检查并确认。当我推送到远程服务器时,是的,.htaccess和config文件将更新为原始值。嗯,您的htacces文件应提交到与远程服务器上所需的值相对应的文件。然后,本地副本应具有特定于您的环境的更改,并且应假定此文件未更改。你就是这么做的,而且仍然面临问题吗?啊,好的,现在已经解决了。我在git之外更改了远程文件,所以它仍然看到“未归档”文件和远程文件之间的差异。所以我照你说的做了,提交val