git 使用札记

1. git subtree

1
2
3
# git subtree 提示不支持该命令时
sudo chmod +x /usr/share/doc/git/contrib/subtree/git-subtree.sh
sudo ln -s /usr/share/doc/git/contrib/subtree/git-subtree.sh /usr/lib/git-core/git-subtree

1
2
3
4
5
6
7
8
9
10
11
# 添加仓库并fetch
git remote add -f <子仓库名> <子仓库地址>

# 加上--squash 表示合并子仓库的所有提交为一次提交(感觉不加好些,可以看日志记录)
git subtree add --prefix=<子目录名> <子仓库名> <分支> --squash

# 从远程子仓库同步
git subtree pull --prefix=<子目录名> <远程分支> <分支> --squash

# 向远程子仓库推送
git subtree push --prefix=<子目录名> <远程分支名> 分支

2. git submodule

注意: submodule 只能在<子目录>下看到log信息,如果需要在web UI 下看log 需要对<子仓库地址>可访问

1
2
3
4
5
6
# 添加子仓库
git submodule add <子仓库地址> <子目录名>
# 删除子仓库
git submodule rm <子目录名>
# 同步子仓库
git submoudle update