0

这几天我一直在寻找这个话题,但我找不到解决方案。我也看过这个话题:StackOverflow How to push JGit

问题是我正在做一个应该是只有非常基本功能的 github 的程序,但是当我执行推送提交消息时工作正常,但是如果我更改某些文件的内容,它不会在远程存储库上更新。

我用它来提交:

 Repository localRepo = new FileRepository(repository + "\\.git");
 Git git = new Git(localRepo);  
 git.commit().setCommitter(txtCommiter.getText(),"").setMessage(txtCommit.getText()).call();

我用它来推动:

Repository localRepo = new FileRepository(this.repository + "\\.git");
Git git = new Git(localRepo);
PushCommand push = git.push();
UsernamePasswordCredentialsProvider user = new UsernamePasswordCredentialsProvider(this.userName, this.pwd);
push.setCredentialsProvider(user);
push.setRemote(this.remote);
push.call();

任何人都可以帮助我吗?

4

1 回答 1

3

看看您创建的提交是否正确使用git show COMMIT_ID.

如果没有,问题是您没有包含要提交的文件CommitCommand。以下对应于git commit -a -m msg

 git.commit().setAll(true).setMessage(msg).call();

您还可以使用setOnly(path)仅在提交中包含某些文件或目录。为不止一条路径多次调用它。

另一种选择是,如果您首先将文件添加到索引以将其暂存以进行提交(然后您不必在提交中指定任何文件):

git.add().addFilepattern(dirA).addFilepattern(fileB).call();
于 2013-05-30T11:15:40.013 回答