Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
配置文件已在远程git存储库中。要取消版本设置,但不删除。怎么用?_Git_Version Control_Github - Fatal编程技术网

配置文件已在远程git存储库中。要取消版本设置,但不删除。怎么用?

配置文件已在远程git存储库中。要取消版本设置,但不删除。怎么用?,git,version-control,github,Git,Version Control,Github,我和我的朋友选择使用git和GitHub在一个项目上进行协作。我们都是新手 我的朋友最初提交了我们的项目文件,其中包含了他版本的项目配置文件。我的配置文件将不同。我们不想来回发送对这些文件的更改 我已经发布了git init和git pullgit@github.com:my_friend/our_repository.git master将项目文件放到我的开发服务器上 然后,我在我的开发服务器上的项目根目录中创建了一个.gitignore文件(我在那里创建了git init): 由于这些配置文

我和我的朋友选择使用git和GitHub在一个项目上进行协作。我们都是新手

我的朋友最初提交了我们的项目文件,其中包含了他版本的项目配置文件。我的配置文件将不同。我们不想来回发送对这些文件的更改

我已经发布了
git init
git pullgit@github.com:my_friend/our_repository.git master
将项目文件放到我的开发服务器上

然后,我在我的开发服务器上的项目根目录中创建了一个
.gitignore
文件(我在那里创建了
git init
):

由于这些配置文件已经在存储库中,因此
.gitignore
中的这些行不会起任何作用。我明白这一点。其他SO答案建议使用以下命令:

git rm --cached index.php
git rm --cached config/some_config_file.php
git rm --cached config/another_config_file.php
git commit -m "hope this works"
git push 
但这删除了远程GitHub存储库中的这些文件!不好的。我希望这些文件保留在GitHub上,这样就不会让我的朋友惊慌我只想在我的开发服务器上保留我自己的文件的未版本副本,独立于GitHub存储库中发生的任何事情。


如何使用git实现此设置?

GitHub仅存储回购中的实际内容。您不能从回购中删除文件,但也可以将其保留在回购中


最好的解决方案是让您的同事知道文件已被删除,这样他们就可以保留自己的副本,并在拉取您的更改后将其复制回工作树中(因为它们现在将被忽略)。

您不能这样做,但您可以告诉git忽略对这些文件的进一步(本地)更改。尝试:

git update-index --assume-unchanged <your_file>
git更新索引--假定未更改

非常感谢您的回答,但我认为,
--假设我正在寻找未更改的
。谢谢!这工作做得很好。顺便说一句,在更多的谷歌搜索之后,我发现
gitls文件-v|grep^[a-z]
将显示哪些文件是以这种方式设置的。这里有更多信息,包括
~/.gitconfig
的两个别名:
--假定未更改
技术是一种很好的方法,只要您知道其中的问题,例如在切换分支和合并提交文件时,文件发生了更改(请参阅文档)。@Sri:非常有效!每当您使用上游版本更新本地回购协议,并且该文件已更改时,您都必须手动处理该文件。如果有问题的文件经常更改,这可能会很烦人。
git update-index --assume-unchanged <your_file>