我有一台带有git和本地开发机器的远程服务器。我不需要从服务器上的工作目录中发送一些文件,而是保留在我本地git的版本控制上。假设我的本地开发机器上有以下文件。
assets
|-css
|-js
compiles
-css
-js
index.html
所有文件都在版本控制上,但是当我需要进行推送时,我不希望它用于'assets'文件夹。我怎么能这样做?
修改 让我解释一下情况。我是一个开发人员,我将我的aseets文件连接并最小化到编译文件夹中。所以我不需要推送资源文件夹,因为生产代码使用编译。
答案 0 :(得分:4)
简单的答案是不,当您将回购从本地推送到远程时,您不能在给定分支上拥有不同的文件集。
与其他提到的一样,您应该能够使用.gitignore
完全从版本控制中排除assets
目录(在本地和远程存储库中):
# Your repo's .gitignore
/assets/*
答案 1 :(得分:3)
您可以修改.gitignore
。如果你想只在当地工作。您可以像这样编辑.git/info/exclude
的.git /信息/排除
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
./assets/*
OR
的.gitignore
./assets/*
答案 2 :(得分:1)
我找到了2个答案:
对于一些文件:
git update-index --assume-unchanged FILE
可以将文件或文件夹添加到.git/info/exclude
中,而不是使用.gitignore从所有版本控制中将其删除。
如果一个人想要将所有回购从回购中拉到本地或另一台服务器(例如暂存),则可以进行另一个本地克隆,但没有本地/exclude
,因此它将抢占一切。
答案 3 :(得分:0)
您可以使用.gitignore选择您不希望将其推送到git服务器的内容。
只需将.gitignore
放入根文件夹,然后将./assets/*
添加到此文件中。
您可以查看https://help.github.com/articles/ignoring-files以获取更多信息
答案 4 :(得分:0)
在我的意见中,这个案例可以分为两个git项目: 1.assets 2.others