Git subtree使用

一、git subtree  与submodule 有类似的作用,可以实现仓内仓,但submodule的子仓是一个链接,subtree是把子仓的copy,类似与新增一个子仓branch .在父仓中几乎感觉不到子仓的存在,只有需要将子仓代码做同步时,才用到subtree的命令。

二、增加一个子仓

git subtree add -P   文件夹名    子仓git路径    branch名

git subtree pull -P   文件夹名    子仓git路径    branch名

例 :git subtree add -P test1  ssh://username@ip:port/test1.git master

也可以一步完成git subtree add -P   文件夹名  -f   子仓git路径    branch名       -f代表fetch

这样父仓库就多了个文件夹,并将子仓的commit 一起同步过来了,

将这个子仓push 到父仓

git push

三、修改新增文件夹名内的内容上传到父仓,例如test1内新增1.txt

就像普通仓库一样,git add test1/1.txt   git commit -m "test"   git push

此时ssh://username@ip:port/test1.git内的内容没有变化,

如果需要将这个更新同步到test1.git,执行git subtree push -P test1  ssh://username@ip:port/test1.git master

四:从子仓同步代码到subtree

即:从test1.git   同步更新到test1文件夹

git subtree pull -P test1  ssh://username@ip:port/test1.git master

然后将test1文件夹内更新同步到父仓,执行git push

五:删除subtree 子仓

git rm -r   文件夹      其实就和普通文件夹删除一样

然后commit   ,push

说白了就是subtree比直接copy后提交多了commit 记录和与原子仓同步代码的功能

https://blog.csdn.net/kinginblue/article/details/78290955

参考:https://www.jianshu.com/p/3096069e9b72

发布了44 篇原创文章 · 获赞 31 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/u013463707/article/details/98941435