JGit切换分支的时候,有两种情况,一种是在本地已修建过这个分支,一种是本地没有这个分支,需要从远程拉取。如下面代码所示:

/**

*

*

* Description:判断本地分支名是否存在

*

*

* @param git

* @param branchName

* @return

* @throws GitAPIException

* @author wgs

* @date 2019年7月20日 下午2:49:46

*

*/

public boolean branchNameExist(Git git, String branchName) throws GitAPIException {

List refs = git.branchList().call();

for (Ref ref : refs) {

if (ref.getName().contains(branchName)) {

return true;

}

}

return false;

}

/**

*

*

Description:切换分支,并拉取到最新

* @param repoDir

* @param branchName

* @author wgs

* @date 2019年7月20日 下午4:11:45

*

*/

public void checkoutAndPull(String repoDir, String branchName) {

try {

Repository existingRepo = new FileRepositoryBuilder().setGitDir(new File(repoDir)).build();

Git git = new Git(existingRepo);

try {

if (this.branchNameExist(git, branchName)) {//如果分支在本地已存在,直接checkout即可。

git.checkout().setCreateBranch(false).setName(branchName).call();

} else {//如果分支在本地不存在,需要创建这个分支,并追踪到远程分支上面。

git.checkout().setCreateBranch(true).setName(branchName).setStartPoint("origin/" + branchName).call();

}

git.pull().call();//拉取最新的提交

} finally {

git.close();

}

} catch (IOException | GitAPIException e) {

e.printStackTrace();

}

}

java中jgit中checkout_JGit 切换分支相关推荐

  1. java中jgit中checkout_java – JGit branch checkout问题

    我正在使用以下代码从 github检出存储库. private String url = "https://github.com/organization/project.git" ...

  2. java中jgit中checkout,如何在JGit中合并?

    How do I merge in JGit? Let's say I want to merge master with foo branch, how do I do this? 解决方案 To ...

  3. 切换分支 更改只影响当前分支代码_idea 中分支管理操作的意思

    1.Checkout (切换分支) 当前分支:app 即将打开:app_develop 操作:Checkout 效果:从 app切换到 app_develop分支上. 2.New Branch fro ...

  4. java中分支_[Java教程]JavaScript中的分支结构

    [Java教程]JavaScript中的分支结构 0 2016-06-30 23:03:37 说到JavaScript中的分支结构,我们就不得不提到流程控制这个词,我们所有的程序都是由数据和算法组成的 ...

  5. git 怎么切换分支命令_如何在Git中切换分支

    本指南向你展示了如何在Git项目中切换分支. 前提条件Git项目访问终端窗口/Linux系统命令行 签出命令以切换分支 访问命令行并使用checkout命令签出要使用的分支:git checkout ...

  6. idea中切换分支开发

    工作中使用git协同开发时会有不同的分支,master分支一般是不动的,最终代码才会合进去,开发都是单独的开发分支,测试用测试分支.这里记录一下使用idea切换分支. 首先贴一张图: git的工作流程 ...

  7. 关于git切换分支中遇到的一些实际问题

    在实际项目开发中,如果你正在写一些功能,但是还没写完,你的领导突然让你修改一些bug,此时你需要切换到别的分支,这时候你怎么做? /* 假设此时 有两个分支 master 和 test,在test分支 ...

  8. java流程图中平行四边形代表什么_程序流程图中通常用平行四边形表示分支结构...

    程序流程图中通常用平行四边形表示分支结构 答:错 DES的分组长度和有效密钥长度分别为( ) 答:64,56 若采用2∶1的比例绘制一个直径为20的圆时,其绘图直径为40,标注尺寸为40. 答:错 某 ...

  9. java技术体系中的三个主要分支是_计算智能的三个主要分支及其应用

    1.摘要 在计算机科学领域, 一个最有意义, 也是空前困难的挑战性问题就是对人类智能的模拟.计算智能三借助现代计算工具模拟人的智能机制,生命演化和人工智能行为而进行的信息获取.处理(求解问题).利用的 ...

最新文章

  1. PatchMatchStereo中的深度/视差传播策略
  2. 山东计算机基础模拟题及答案,2016山东农信社考试模拟题--计算机基础知识答案(1)...
  3. 怎么查看linux是不是as7u4,Linux下搭建Android开发环境
  4. 干货|知道Excel这9个小技巧,不做二傻子!
  5. win10文件夹加密_(十六)小众但好用:免费开源免注册的同步盘加密工具 Cryptomator...
  6. App送审,4.3问题怎样处理
  7. Java中的switch分支语句
  8. java list详解_java集合List解析
  9. 简单树组织数据格式化为标准树组织数据
  10. 125万像素智能相机收费站解决方案
  11. 《Linux内核修炼之道》——2.2 编译内核
  12. feign调用https接口_SpringCloudFeign远程调用
  13. angularjs+ionic+'h5+'实现二维码扫描功能
  14. HDU-3072-IntelligenceSystem(tarjan,贪心)
  15. Creator+微信小游戏:(3)微信openID获取(https、wss问题)
  16. 视频转换器如何将腾讯QLV格式转换成MP4视频文件 1
  17. 人脸识别一体机解决方案
  18. 黑马程序员——java 泛型
  19. 视觉能力提升112%!李飞飞团队让AI进入社会,学会了“骗”标注…
  20. 一致性哈希算法原理详解

热门文章

  1. KPI“逼疯”特斯拉
  2. 重磅:微信内置输入法来了!
  3. python调用百度AI自动识别并提取图片上指定位置的文字信息
  4. Shark(鲨鱼记账系统)--附源码
  5. 学python多大年龄可以学车_考驾照最大多少多大年龄可以报名
  6. 工程材料篇-纯金属的结晶
  7. Win10 21H1系统远程桌面多用户登录解除限制
  8. C#使用TryParse避免转换出现异常
  9. C语言经典面试算法题之跳水比赛
  10. 利用 HttpClient 实现 WI/SSO 中的 Eager Sign in