如何排除推送文件

时间:2013-03-04 06:44:20

标签: git version-control

我有一台带有git和本地开发机器的远程服务器。我不需要从服务器上的工作目录中发送一些文件,而是保留在我本地git的版本控制上。假设我的本地开发机器上有以下文件。

assets
   |-css
   |-js
compiles
   -css
   -js
index.html

所有文件都在版本控制上,但是当我需要进行推送时,我不希望它用于'assets'文件夹。我怎么能这样做?

修改 让我解释一下情况。我是一个开发人员,我将我的aseets文件连接并最小化到编译文件夹中。所以我不需要推送资源文件夹,因为生产代码使用编译。

5 个答案:

答案 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个答案:

  1. 对于一些文件:
    git update-index --assume-unchanged FILE

  2. 信用:hackernoon.com

可以将文件或文件夹添加到.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