操作Git服务接口
1、克隆远程分支到本地目录
2、更新远程分支到本地目录
3、提交本地更改到本地仓库
4、推送本地更改到远程分支
5、切换当前分支到新分支
6、查看版本提交记录
package com.qianzi;
import io.swagger.model.RetObj;
import org.eclipse.jgit.api.*;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.transport.CredentialsProvider;
import org.eclipse.jgit.transport.PushResult;
import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.*;
/**
* Created by Administrator on 2017/8/19.
*/
public class GitService {
private static final Logger logger = LoggerFactory.getLogger(GitService.class);
public static final String SUCCESS = "success";
public static final String FAILURE = "failure";
/**
* 查看git日志
*/
public static RetObj gitGetLog(String localPath) {
try {
Git git = Git.open(new File(localPath));
LogCommand logCommand = git.log();
Iterable<RevCommit> commitLst = logCommand.call();
List<String> allLogs = new ArrayList<String>();
for (RevCommit revCommit : commitLst) {
logger.info("FullMessage: " + revCommit.getFullMessage());
logger.info("Name: " + revCommit.getName());
allLogs.add(revCommit.toString());
}
git.close();
return new RetObj(SUCCESS, allLogs.toArray());
} catch (Exception e) {
e.printStackTrace();
logger.error("getLog error: " + e.getMessage());
return new RetObj(FAILURE, e.getMessage());
}
}
/**
* 获取当前改变的文件
*/
public static RetObj gitGetChangedFiles(String localPath) {
try {
Git git = Git.open(new File(localPath));
StatusCommand statusCommand = git.status();
Status status = statusCommand.call();
Map<String, Set<String>> result = new HashMap<String, Set<String>>();
Set<String> addedSet = status.getAdded();
result.put("added", addedSet);