git submodule子模块
submodule子模块允许将一个git库作为另一个的子库
- git submodule add xxx 添加子模块
- git clone --recursive 初始化更新,并且更新子模块
复杂一点就是切换到子模块所在目录git pull - git clone 带有 submodule
git submodule init
git submodule update - 子模块包含有子模块,可以通过如下进行遍历更新
git submodule foreach git submodule update
git 合并某一个(一堆)提交
git cherry-pick id
git checkout -b xxend id
git rebase --onto master xxbegin^ //从 begin 到 end 都合并
- git merge --squash //合并多个 commit
- git commit --amend 修改最后一个提交
git 分锅
- git blame file 问责
git upstream/origin
- git remote add origin/upstream
upstream 和origin的区别主要是考虑应用场景不同,本地有权限push代码,通常用origin(本人是contributer),本地无权限则用 upstream(本人不是contributer),当然这些是定义上的。可以通过权限控制修改