是否可以基于远程进行.gitignore?我希望能够从开源项目的公共存储库中提取核心更新,但是将本地更改从(当前).gitignored目录推送到不同远程上的私有git仓库。这可能吗?
谢谢!
编辑:进一步思考,看起来git子模块可能是处理此问题的好方法。
http://git-scm.com/book/en/Git-Tools-Submodules
EDIT2:我整天都在使用子模块,这个解决方案看起来非常适合我想要完成的工作。
答案 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)
不,这是不可能的。你需要为此维护单独的分支。