本文整理汇总了Java中org.eclipse.jgit.api.Git类的典型用法代码示例。如果您正苦于以下问题:Java Git类的具体用法?Java Git怎么用?Java Git使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Git类属于org.eclipse.jgit.api包,在下文中一共展示了Git类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: invoke
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
@Override
public Boolean invoke(File file, VirtualChannel channel){
try{
Git git = Git.cloneRepository()
.setURI(url)
.setDirectory(localDir)
.setTransportConfigCallback(getTransportConfigCallback())
.setCredentialsProvider(new UsernamePasswordCredentialsProvider(username, password))
.call();
// Default branch to checkout is master
if(branch==null || branch.isEmpty()){
branch = "master";
} else if (cloneType.equals("branch")){
branch = "origin" + File.separator + branch;
}
git.checkout().setName(branch).call();
git.close();
}catch(GitAPIException e){
status = false;
e.printStackTrace(listener.getLogger());
}
return status;
}
示例2: load
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
/**
* 从指定的git仓库地址(目前仅支持http和https)和文件名获取资源,通过UsernameCredential支持鉴权
* @return 资源的字符串
* @throws Exception 资源不存在或网络不通
*/
@Override
public String load() throws Exception {
//本地临时目录,用户存放clone的代码
String tempDirPath = localPath + "/iaac.aliyun.tmp_" + new Date().getTime();
File tempDir = new File(tempDirPath);
tempDir.mkdirs();
String result = null;
try {
CloneCommand clone = Git.cloneRepository();
clone.setURI(url);
clone.setBranch(this.branch);
clone.setDirectory(tempDir);
//设置鉴权
if (this.credential != null) {
UsernamePasswordCredentialsProvider usernamePasswordCredentialsProvider = new
UsernamePasswordCredentialsProvider(this.credential.getUsername(), this.credential.getPassword());
//git仓库地址
clone.setCredentialsProvider(usernamePasswordCredentialsProvider);
}
//执行clone
Git git = clone.call();
//从本地路径中获取指定的文件
File file = new File(tempDir.getAbsolutePath() + "/" + this.fileName);
//返回文件的字符串
result = FileUtils.readFileToString(file, "utf-8");
} catch (Exception e) {
throw e;
} finally {
//清除本地的git临时目录
FileUtils.deleteDirectory(tempDir);
}
return result;
}
示例3: revert
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
void revert(File project, String message) {
try(Git git = this.gitFactory.open(file(project))) {
RevCommit commit = git.log().setMaxCount(1).call().iterator().next();
String shortMessage = commit.getShortMessage();
String id = commit.getId().getName();
if (!shortMessage.contains("Update SNAPSHOT to ")) {
throw new IllegalStateException("Won't revert the commit with id [" + id + "] "
+ "and message [" + shortMessage + "]. Only commit that updated "
+ "snapshot to another version can be reverted");
}
log.debug("The commit to be reverted is [{}]", commit);
git.revert().include(commit).call();
git.commit().setAmend(true).setMessage(message).call();
printLog(git);
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
示例4: GitTool
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
public GitTool() {
File gitWorkDir = new File(".");
try {
Git git = Git.open(gitWorkDir);
Iterable<RevCommit> commits = git.log().all().call();
Repository repo = git.getRepository();
branch = repo.getBranch();
RevCommit latestCommit = commits.iterator().next();
name = latestCommit.getName();
message = latestCommit.getFullMessage();
} catch (Throwable e) {
name = "";
message = "";
branch = "";
}
}
示例5: fetch
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
private List<TrackingRefUpdate> fetch(Repository repository) throws Exception {
logger.info("Fetching changes of repository {}", repository.getDirectory().toString());
try (Git git = new Git(repository)) {
FetchResult result = git.fetch().call();
Collection<TrackingRefUpdate> updates = result.getTrackingRefUpdates();
List<TrackingRefUpdate> remoteRefsChanges = new ArrayList<TrackingRefUpdate>();
for (TrackingRefUpdate update : updates) {
String refName = update.getLocalName();
if (refName.startsWith(REMOTE_REFS_PREFIX)) {
ObjectId newObjectId = update.getNewObjectId();
logger.info("{} is now at {}", refName, newObjectId.getName());
remoteRefsChanges.add(update);
}
}
if (updates.isEmpty()) {
logger.info("Nothing changed");
}
return remoteRefsChanges;
}
}
示例6: run
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
@Override
protected void run () throws GitException {
Repository repository = getRepository();
org.eclipse.jgit.api.BlameCommand cmd = new Git(repository).blame();
cmd.setFilePath(Utils.getRelativePath(getRepository().getWorkTree(), file));
if (revision != null) {
cmd.setStartCommit(Utils.findCommit(repository, revision));
} else if (repository.getConfig().get(WorkingTreeOptions.KEY).getAutoCRLF() != CoreConfig.AutoCRLF.FALSE) {
// work-around for autocrlf
cmd.setTextComparator(new AutoCRLFComparator());
}
cmd.setFollowFileRenames(true);
try {
BlameResult cmdResult = cmd.call();
if (cmdResult != null) {
result = getClassFactory().createBlameResult(cmdResult, repository);
}
} catch (GitAPIException ex) {
throw new GitException(ex);
}
}
示例7: cloneRepository
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
public void cloneRepository(FunnyCreator funnyCreator) throws Exception {
while (FunnyConstants.REPOSITORY_DIRECTORY.exists()) {
erase(funnyCreator);
Thread.sleep(500);
}
funnyCreator.info("Cloning FunnyGuilds repository");
Git.cloneRepository()
.setURI(FunnyConstants.REPOSITORY)
.setDirectory(FunnyConstants.REPOSITORY_DIRECTORY)
.call()
.close();
FunnyCreator.getLogger().info("Repository has been cloned!");
}
示例8: should_push_success
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
@Test
public void should_push_success() throws Throwable {
File localGitFolder = folder.newFolder("info.git");
// when: init bareGit
JGitUtil.init(localGitFolder.toPath(), true);
// then: tag list is 0
Assert.assertEquals(0, Git.open(localGitFolder).tagList().call().size());
File onlineGitFolder = folder.newFolder("info");
JGitUtil.clone(GIT_URL, onlineGitFolder.toPath());
JGitUtil.remoteSet(onlineGitFolder.toPath(), "local", localGitFolder.toString());
Git git = Git.open(onlineGitFolder);
String tag = JGitUtil.tags(git.getRepository()).get(0);
// when: push latest tag
JGitUtil.push(onlineGitFolder.toPath(), "local", tag);
// then: tag size is 1
Assert.assertEquals(1, Git.open(localGitFolder).tagList().call().size());
// then: tag is v1.1
Assert.assertEquals("v1.1", JGitUtil.tags(localGitFolder.toPath()).get(0));
}
示例9: run
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
@Override
protected void run () throws GitException {
Repository repository = getRepository();
try {
RevObject obj = Utils.findObject(repository, taggedObject);
TagCommand cmd = new Git(repository).tag();
cmd.setName(tagName);
cmd.setForceUpdate(forceUpdate);
cmd.setObjectId(obj);
cmd.setAnnotated(message != null && !message.isEmpty() || signed);
if (cmd.isAnnotated()) {
cmd.setMessage(message);
cmd.setSigned(signed);
}
cmd.call();
ListTagCommand tagCmd = new ListTagCommand(repository, getClassFactory(), false, new DelegatingGitProgressMonitor(monitor));
tagCmd.run();
Map<String, GitTag> tags = tagCmd.getTags();
tag = tags.get(tagName);
} catch (JGitInternalException | GitAPIException ex) {
throw new GitException(ex);
}
}
示例10: testCommitNoRoots
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
public void testCommitNoRoots () throws Exception {
File toCommit = new File(workDir, "testnotadd.txt");
write(toCommit, "blablabla");
GitClient client = getClient(workDir);
Map<File, GitStatus> statuses = client.getStatus(new File[] { toCommit }, NULL_PROGRESS_MONITOR);
assertStatus(statuses, workDir, toCommit, false, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_ADDED, false);
client.add(new File[] { toCommit }, NULL_PROGRESS_MONITOR);
statuses = client.getStatus(new File[] { toCommit }, NULL_PROGRESS_MONITOR);
assertStatus(statuses, workDir, toCommit, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
GitRevisionInfo info = client.commit(new File[0], "initial commit", null, null, NULL_PROGRESS_MONITOR);
statuses = client.getStatus(new File[] { toCommit }, NULL_PROGRESS_MONITOR);
assertStatus(statuses, workDir, toCommit, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
Git git = new Git(repository);
LogCommand log = git.log();
RevCommit com = log.call().iterator().next();
assertEquals("initial commit", info.getFullMessage());
assertEquals("initial commit", com.getFullMessage());
assertEquals(ObjectId.toString(com.getId()), info.getRevision());
Map<File, GitFileInfo> modifiedFiles = info.getModifiedFiles();
assertTrue(modifiedFiles.get(toCommit).getStatus().equals(Status.ADDED));
}
示例11: main
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
public static void main(String[] args) throws IOException, GitAPIException {
Repository repo = Commands.getRepo(Consts.META_REPO_PATH);
Git git = new Git(repo);
// Create a new branch
git.branchCreate().setName("newBranch").call();
// Checkout the new branch
git.checkout().setName("newBranch").call();
// List the existing branches
List<Ref> listRefsBranches = git.branchList().setListMode(ListMode.ALL).call();
listRefsBranches.forEach((refBranch) -> {
System.out.println("Branch : " + refBranch.getName());
});
// Go back on "master" branch and remove the created one
git.checkout().setName("master");
git.branchDelete().setBranchNames("newBranch");
}
示例12: testCatRemoved
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
public void testCatRemoved () throws Exception {
File f = new File(workDir, "removed");
copyFile(getGoldenFile(), f);
assertFile(getGoldenFile(), f);
add(f);
commit(f);
GitClient client = getClient(workDir);
String revision = new Git(repository).log().call().iterator().next().getId().getName();
// remove and commit
client.remove(new File[] { f }, false, NULL_PROGRESS_MONITOR);
commit(f);
assertTrue(client.catFile(f, revision, new FileOutputStream(f), NULL_PROGRESS_MONITOR));
assertFile(f, getGoldenFile());
assertFalse(client.catFile(f, Constants.HEAD, new FileOutputStream(f), NULL_PROGRESS_MONITOR));
}
示例13: execute
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
@Override
public Result execute(UIExecutionContext context) throws Exception {
UIContext uiContext = context.getUIContext();
Map<Object, Object> attributeMap = uiContext.getAttributeMap();
List<GitClonedRepoDetails> clonedRepos = (List<GitClonedRepoDetails>) attributeMap.get(AttributeMapKeys.GIT_CLONED_REPOS);
if (clonedRepos != null) {
for (GitClonedRepoDetails clonedRepo : clonedRepos) {
Git git = clonedRepo.getGit();
String gitUrl = clonedRepo.getGitUrl();
UserDetails userDetails = clonedRepo.getUserDetails();
File basedir = clonedRepo.getDirectory();
String message = "Adding pipeline";
try {
LOG.info("Performing a git commit and push on URI " + gitUrl);
gitAddCommitAndPush(git, gitUrl, userDetails, basedir, message);
} catch (GitAPIException e) {
return Results.fail("Failed to commit and push repository " + clonedRepo.getGitRepoName() + " due to " + e, e);
} finally {
removeTemporaryFiles(basedir);
}
}
}
return Results.success();
}
示例14: simple_checkout_with_no_branch
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
@Test
public void simple_checkout_with_no_branch() throws Exception {
File outputFolder = new File( baseLocation + "testGitNoBranch" );
FileUtils.deleteDirectory( outputFolder );
String message = "Perform git checkout of " + inputUrl + " to destination: "
+ outputFolder.getAbsolutePath();
logger.info(Boot_Container_Test.TC_HEAD + message );
//
Git r = Git
.cloneRepository()
.setURI( inputUrl )
.setDirectory( outputFolder )
.setCredentialsProvider(
new UsernamePasswordCredentialsProvider( "dummy", "dummy" ) )
.call();
File buildPom = new File( outputFolder + "/pom.xml" );
assertThat( buildPom )
.as( "Pom file found" )
.exists().isFile();
}
示例15: clone
import org.eclipse.jgit.api.Git; //导入依赖的package包/类
@Override
public File clone(String branch, boolean noCheckout) throws GitException {
checkGitUrl();
CloneCommand cloneCommand = Git.cloneRepository()
.setURI(gitUrl)
.setNoCheckout(noCheckout)
.setBranch(branch)
.setDirectory(targetDir.toFile());
try (Git git = buildCommand(cloneCommand).call()) {
return git.getRepository().getDirectory();
} catch (GitAPIException e) {
throw new GitException("Fail to clone git repo", e);
}
}