<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      集成GIT倉庫

      集成GIT倉庫

      jgit - java實現git操作

      一個 Java 程序中使用 Git ,有一個功能齊全的 Git 庫,那就是 JGit 。 JGit 是一個用 Java 寫成的功能相對健全的 Git 的實現,它在 Java 社區(qū)中被廣泛使用, JGit 項目由 Eclipse 維護。

      官網地址

      http://www.eclipse.org/jgit/

      倉庫地址

      https://gitee.com/mirrors/jgit

      例子

      https://github.com/centic9/jgit-cookbook

      實例代碼

      代碼示例:https://wiki.eclipse.org/JGit/User_Guide#git-add

      依賴:

      <dependency>
        <groupId>org.eclipse.jgit</groupId>
        <artifactId>org.eclipse.jgit-parent</artifactId>
        <version>6.1.0.202203080745-r</version>
        <type>pom</type>
      </dependency>
      

      功能代碼:

      //官方代碼
       Repository repository = new FileRepositoryBuilder()
                      .setGitDir(new File("C:\\..\\.git"))
                      .readEnvironment() 
                      .findGitDir() // scan up the file system tree
                      .build();
      
      // 一般選擇封裝成方法
      public static Repository getRepository(String dir) {
          try {
              Repository repository = new FileRepositoryBuilder()
                  .setGitDir(new File("C:\\..\\.git"))
                  .readEnvironment() 
                  .findGitDir()		
                  .build();
              return repository;
          } catch (IOException e) {
              e.printStackTrace();
              return null;
          }
      }
      

      獲取GIT對象

      拿到git對象后就可以去執(zhí)行git操作了

      public static Git getGitObj(Repository repository) {
          Git git = null;
          git = new Git(repository);
          return git;
      }
      

      60c39695dba7029347b7040704aa2b86

      這里面最常用的比如切換分支,新建分支,刪除分支,revet,reset,commit,add。

      官網操作代碼:

      Git git = new Git(db);
      AddCommand add = git.add();
      add.addFilepattern("需要add的文件名或者文件目錄").call();
      
      Git git = new Git(db);
      CommitCommand commit = git.commit();
      commit.setMessage("initial commit").call();
      
      Git git = new Git(db);
      RevCommit commit = git.commit().setMessage("initial commit").call();
      RevTag tag = git.tag().setName("tag").call();
      
      Git git = new Git(db);
      Iterable<RevCommit> log = git.log().call();
      
      

      1.new branch from …

      需要先checkout base的分支然后create。

       git.checkout().setName(baseBranch).call();
       git.branchCreate().setName(新分支名).call();
      //切換到新分支
       git.checkout().setName(新分支名).call();
      

      2.add&commit

      git.add().addFilepattern(".").call();
      git.rm().addFilepattern(".").call()
      //setall()對應 -a 命令
      git.commit().setMessage(commit msg).setAll(false).call();
      
      // 一般的在add之前還會需要查看文件status,然后決定add哪些或者rm哪些
      Status status = git.status().call();
      Map<String,String> map = new HashMap<String,String>();
      map.put("Added", status.getAdded().toString());
      map.put("Changed", status.getChanged().toString());
      map.put("Conflicting", status.getConflicting().toString());
      map.put("ConflictingStageState", status.getConflictingStageState().toString());
      map.put("IgnoredNotInIndex", status.getIgnoredNotInIndex().toString());
      map.put("Missing", status.getMissing().toString());
      map.put("Modified", status.getModified().toString());
      map.put("Removed", status.getRemoved().toString());
      map.put("UntrackedFiles", status.getUntracked().toString());
      map.put("UntrackedFolders", status.getUntrackedFolders().toString());
      System.out.println(map);
      
      

      3.revert

      使用git對象revert時需要拿到你當初commit的commitid或者其他操作的objectid。

      git.revert().include(ObjectId.fromString(commitId)).setOurCommitName("OURS").call();
      

      輸入commitid然后操作。但是不可能誰能記住哪次commit的commitid,所以這里選擇通過log去獲取Revcommit對象。

      List<String> commitIdList = new LinkedList<>();
      gitObj.log().call().forEach(e -> finalPluginCommitLogList.add(e.getName()));
      

      posted on 2022-12-22 15:23  Chase_Hanky  閱讀(120)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲av国产成人精品区| 开心婷婷五月激情综合社区| 四虎女优在线视频免费看| 放荡的少妇2欧美版| 亚洲免费观看视频| 日韩精品一区二区三区久| 扒开双腿猛进入喷水高潮叫声| 一本大道色婷婷在线| 92国产精品午夜福利免费| 人妻激情视频一区二区三区| 国产亚洲av手机在线观看| 一卡2卡三卡4卡免费网站| 国产av一区二区亚洲精品| 亚洲成色av网站午夜影视| 国产线播放免费人成视频播放| 国产精品久久久久鬼色| 亚洲天天堂天堂激情性色| 欧美丰满熟妇bbbbbb| 山阴县| 久久人与动人物a级毛片| 亚洲欧美偷国产日韩| 古田县| 91人妻无码成人精品一区91| 成人3D动漫一区二区三区| 亚洲高清国产拍精品网络战| 国产精品一区二区三区污| 色一乱一伦一图一区二区精品| 好紧好滑好湿好爽免费视频| 久久av无码精品人妻出轨| 在国产线视频A在线视频| 少妇办公室好紧好爽再浪一点| a级国产乱理伦片在线观看al| 亚洲精品久荜中文字幕| 强奷漂亮人妻系列老师| 国产黄色一级片在线观看| 熟女一区| 国产中文99视频在线观看| 亚洲精品国模一区二区| 欧美深度肠交惨叫| 久久蜜臀av一区三区| 成人午夜视频在线|