Git会推送一个文件,但不删除所有文件

时间:2018-11-07 17:17:11

标签: git

你好那里

我一直在尝试将一些文件推送到github。 这是主意:

github仓库-

文件1
文件2
文件3
文件4
文件5
通用配置。文件

现在想像一下,我克隆了这个仓库,并修改了所有文件,如下所示:

文件1.2
文件2.2
文件3.2
文件4.2
文件5.2
SPECIFIC 配置。文件

现在,配置文件对于在我的计算机(例如linux)上运行是必需的,但是我的伙伴有另一种配置。因此,除了此配置文件之外,我想推送所有新文件。但是对于那些现在正在克隆存储库的人,我也需要在存储库中使用我的通用配置文件。

我尝试过:

git add .
git checkout .\config.txt
git commit -m 'ravr'

但是它不起作用,所以我尝试了

git add -u
git reset config.txt
git commit -m 'ceowhnv'

没有解决办法。

git add -- . :! ./config.txt
git commit -m 'iwrnv'

也失败了。我也尝试过使用文件的完整位置,并且在某些情况下(例如签出)使用通用配置。文件已从存储库中删除

最有效的方法是什么,将通用配置文件保存在仓库中?

1 个答案:

答案 0 :(得分:3)

您可以使用以下命令告诉Git忽略对本地存储库中跟踪文件的更改:

git update-index --assume-unchanged config.txt

然后,您可以使用git add -u之类的命令,并且即使在本地进行了更改,Git也不会添加config.txt。这不会改变存储库在其他克隆中的工作方式,因此您必须在每个克隆中运行此命令(如果需要)。

要撤消此标志,请使用:

git update-index --no-assume-unchanged config.txt

另一种方法是以不同的名称将“通用”配置文件提交到您的存储库。例如,如果将通用变量存储为config.txt.generic,则对config.txt的本地更改与存储库中的内容无关。在这种情况下,您需要在首次运行程序时使用用户说明或自动脚本将config.txt.generic复制到config.txt