在工作使用过程中,遇到了一些坑。
场景一:通过JGIT拉分支然后跟master比对,分析出版本差异清单
遇到的坑
- 代码拆版后重新创建分支,JGit Pull 未生效。如果本地从远程拉了feature_branch,但过一段时间后因为代码拆版的原因重新做分支,这时候通过JGIT来pull代码并未生效。
- 如果本地从远程拉了feature_branch,但过一段时间后因为代码通过reset强行回退,这时候通过JGIT来pull代码并未生效。
解决方案:通过fetch来同步远程代码,来解决JGit实现git fetch及分支一致性处理
关于fetch与pull的差异
- git fetch --prune(JGit 中 setRemoveDeletedRefs(true)) 是解决远程分支删除后重新创建导致分支不一致的核心操作。
- git pull 仅在需要合并远程代码时使用,不负责清理失效的远程分支引用。
- 如果远程分支被删除并重新创建,必须先执行 git fetch --prune 清理本地引用,再决定是否执行 git pull。
场景二: