Skip to content

Instantly share code, notes, and snippets.

@polefishu
Created July 5, 2017 07:26
Show Gist options
  • Save polefishu/c7a3e68a72b7ad564b51d2fad935bc98 to your computer and use it in GitHub Desktop.
Save polefishu/c7a3e68a72b7ad564b51d2fad935bc98 to your computer and use it in GitHub Desktop.
添加subtree:
首先:
git remote add -f <子仓库名> <子仓库地址>
注:其中-f意思是在添加远程仓库之后,立即执行fetch
如:git remote add -f cornerstone [email protected]
然后:
git subtree add --prefix=<子目录名> <子仓库名> <分支> —squash
注:—squash意思是把subtree的改动合并成一次commit,这样就不用拉取子项目完整的历史记录。
如:git subtree add --prefix=mcms/cornerstone cornerstone master --squash
更新子项目
git fetch <远程仓库名> <分支>
如:git fetch cornerstone master
git subtree pull --prefix=<子目录名> <远程分支> <分支> --squash
如:git subtree pull --prefix=mcms/cornerstone cornerstone master --squash
修改子项目,推送到远端
修改完子项目代码,可直接在项目中提交节点,然后执行下一步,把节点推到子项目中
git subtree push --prefix=<子目录名> <远程分支名> 分支
如:git subtree push --prefix=mcms/cornerstone cornerstone master
如果出现子项目无法推送,在确认已经更新过子项目的情况下。可以和组内成员商量之后使用(强推):
git push cornerstone `git subtree split --prefix mcms/cornerstone master`:master --force
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment