每个远程使用.gitignore?

时间:2013-03-19 12:55:27

标签: git

是否可以基于远程进行.gitignore?我希望能够从开源项目的公共存储库中提取核心更新,但是将本地更改从(当前).gitignored目录推送到不同远程上的私有git仓库。这可能吗?

谢谢!

编辑:进一步思考,看起来git子模块可能是处理此问题的好方法。

http://git-scm.com/book/en/Git-Tools-Submodules

EDIT2:我整天都在使用子模块,这个解决方案看起来非常适合我想要完成的工作。

4 个答案:

答案 0 :(得分:2)

由于.gitignore文件存储在存储库中,因此版本类似于 任何其他文件。因此它可以通过分支而不同,因此您可以进行任何更改 您喜欢的本地副本,并将其提交给您当地的分支机构。

.gitignore文件的内容不影响检索a的内容 存储库,因此进行本地更改不会改变您获得的结果 当你从项目公共回购拉。但是,您可能需要手动操作 从公共存储库中解决该文件中的冲突 变化。

或者,您可以单独保留.gitignore文件并使用git add -f添加要在本地跟踪的文件。一旦文件存在 添加到git存储库中它被忽略将无效。但如果你 定期将文件添加到被忽略的目录中,这可能是件好事 想要修改.gitignore文件,以便git可以提醒你有 需要添加的文件。

如果您要进行其他想要发送的更改 在公共项目的上游,那些应该在没有你的分支的情况下进行 .gitignore文件的本地更改以及其他内容的添加 忽略文件。然后,您可以将这些更改合并到本地分支中 忽略文件以供正常使用。

答案 1 :(得分:2)

我也有类似的问题,我使用2个遥控器,需要忽略不同的文件。

这就是我所做的:

 $ git fetch <public remote>

合并所有内容但排除对当前 .gitignore

的更改
 $ git merge --no-ff --no-commit <public remote>/master
 $ git checkout master path/to/.gitignore
 $ git commit -m "Merged ... into ... excluding the .gitignore"

这样我从遥控器中提取更改并保留现有的 .gitignore 文件

答案 2 :(得分:0)

我不相信 - 但是git之前让我感到惊讶。

据我了解,.gitignore是存储区作用域并适用于所有内容。

可以明确git add ...个特定的忽略文件,然后git将继续跟踪,就好像它们没有被忽略一样 - 但这不是每个远程。

答案 3 :(得分:0)

不,这是不可能的。你需要为此维护单独的分支。