Skip to content

rebase和merge的区别? fetch和pull的区别?

  • merge会找到相同的祖先然后创建一个全新的合并提交,会保留完整的历史,包括签出以及合并的历史
text
      A---B---C --------- (feature)
     /                     \
D---E---F---G---------------H   (main)
  • rebase会把fearture的提交在main重放一边,就像fearture是从main从新拉出来的一样,会重写历史
text
                  A'--B'--C'  (feature)
                 /
D---E---F---G---  (main)

GIT如何做到多个仓库共享代码?

  • Monorepo
  • 使用git submodule
  • 相对路径引用
  • 打包npm发布
git submodule?

git submodule 允许你将一个 git 仓库作为另一个 git 仓库的子目录,同时保持提交的独立性。

git submodule update更新

sh
# 进入子模块目录
cd shared-lib
# 切换到特定提交
git checkout v1.2.3  # 或特定的commit hash
# 回到主仓库并提交这个更改
cd ..
git add shared-lib
git commit -m "Lock shared-lib to version v1.2.3"
最佳实践

使用特定提交或标签而非分支名:

sh
# 进入子模块目录
cd shared-lib
# 切换到特定提交
git checkout v1.2.3  # 或特定的commit hash
# 回到主仓库并提交这个更改
cd ..
git add shared-lib
git commit -m "Lock shared-lib to version v1.2.3"
本站访客数 人次 本站总访问量