我有一个非常具体的工作流程,原因是我习惯git subtree
将一个项目包含在另一个项目中:
本地 git 存储库
styling
,由pull
远程存储库 (styling-exchange
) 更新;另一个本地存储库
styling-bare
,用于同步styling
和code
另一个本地 git 存储库
code
,它通过名为( )的远程分支将code/styling
子目录添加为子树styling
../styling-bare
production
可以更新code
的远程存储库git push production master
它应该如下所示:
code
|--/.git
|--.gitignore
|--/styling
| |--file1
| |--file2.v1
|--file3
styling-bare
styling
|--/.git
|--.gitignore
|--file1
|--file2.v2
工作流有两个用例:
cd
intostyling
, pull fromstyling-exchange
, 然后cd
intocode
, 更新子树, 对andstyling
做一些改变file1
and , push tofile2
file3
production
cd
into ,对andcode
进行一些更改,将更改推送到(子树推送),into , pull from ,将更改推送到file1
file2
file3
styling-bare
cd
styling
styling-bare
styling-exchange
我想file2
在本地存储库styling/styling-bare
与code/production
存储库中有两个完全不同且独立的版本。我需要从styling
子树中获取所有更新code/styling
,但我需要在file2
内部进行跟踪code
,而不需要从styling
.
即,我想更新存储库styling
中的子树code
,但保留我自己的版本file2
(同时在and和 file3 之间file1
同步和在and之间同步),以便我可以将我自己的版本(v1)推送到以后。styling
code
code
production
file2
production
在 git 中是否有任何优雅的方法可以做到这一点,而无需符号链接或一些复杂的钩子?
请注意,我已经尝试过: