赞
踩
解释:
父项目1,父项目2,父项目3…
子项目(公共组件或者功能的页面)
需求:父项目1中使用了submodule,而且,需要修改submodule(子项目lib),且需要在父项目2中更新submodule,如何操作:
在父项目1的子项目中,在子项目的文件下(eg:我的项目是在common文件夹下)打开git命令,先切换分支(要不然不知道往哪个分支上提交代码)
git checkout master
git pull
修改子项目的代码,一顿操作…
提交子项目的内容:
git status
git add .
git commit -m "xxxx"
git pull
git diff
git push
到此,子项目算是提交成功了,但是还需要更新父项目的关联。(否则还是关联旧的commit id)。
在父项目的文件夹下,打开git命令
git diff
git add .
git commit -m "父项目更新关联"
git pull
git diff
git push
构建项目后,该父项目的关联子项目就更新了,可以看到修改后的效果!!!
方法二:
也可以直接clone下来子项目,修改子项目,然后add,commit,push提交,再然后在父项目中:
在子项目的文件夹下,打开命令行,
git pull origin master
然后切换到父项目的文件夹下,打开命令行:
add,commit,push,等一系列操作,完成更新关联
common @ 79a16a8d
- Subproject commit 6634ef2f1a5c34eef81836745498c74368a93f1c
+ Subproject commit 79a16a8d39d4d67bcfbb572d0da171c4bf70d5e0
点击common => 对应的分支
点击:79a16a8d,跳转到子项目的某个提交记录上!(eg:log版本号为:79a16a8d)
common @ 79a16a8d
点击common => 对应的分支
点击79a16a8d => 对应的log版本号记录(eg:log版本号为:79a16a8d)
别的项目目前仍是指向旧的log记录版本号上:
eg:
common @ 36607298,所以要更新!
父项目 2:
进入到子项目的文件夹下,打开命令行:
git checkout master
git pull
进入父项目的文件夹下,打开命令行:
add,commit,pull,diff,push等一些列git命令
父项目2的文件目录:common @ 79a16a8d =>子项目的引用已经更新了!!!!
readme文件:
git clone <repository> --recursive 递归的方式克隆整个项目
git submodule add <repository> <path> 添加子模块
git submodule init 初始化子模块
git submodule update 更新子模块
git submodule foreach git pull 拉取所有子模块
git submodule add git@github.com:zengkaiwang/lib1.git libs/lib1 - 2.2 把主项目的更改提交到仓库 git commit -a -m "add submodules[lib1,lib2] to project1" git push 3、Clone带有Submodule的仓库 clone父项目,再更新子项目 git clone git@github.com:jjz/pod-project.git cd pod-project git submodule init //更新Submodule: git submodule update 4、修改Submodule 4.1 首先切换到submodule子项目的目录下,如libs/lib1 cd libs/lib1 4.2 现在我们要修改lib1的文件需要先切换到响应分支,如master分支 //在子项目的目录(如libs/lib1目录)下执行 git checkout master 4.3 修改文件,并可以git status查看变动 4.4 提交Submodule的更改内容 git commit -a -m "update lib1-features by developer B" 4.5 把submodule的修改提交到远程 git push //这个操作是把变动更新到了lib1远程项目 4.6 然后再回到父目录,提交到本地并更新到远程 //切换到父项目的目录 cd ../../ //提交到缓存区 git add -u //提交到本地和远程 git commit -m "update libs/lib1 to lastest commit id" git push 5、更新Submodule,在Submodule的目录下面更新 >cd pod-library //首先保证在一个分支上 git checkout master //更新 git pull 可以看到在Submodule的目录中,使用git和单独的一个项目是一样的; 注意:更新Submodule的时候如果有新的commit id产生,需要在父项目产生一个新的提交,pod-libray文件中的 Subproject commit会变为最新的commit id 上线编译的修改 在package.json中添加编译命令build-pro "build-pro": "ng build --prod --base-href=/unlock/view",
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。