代码中有几行不正确。让我们一起看看。
打开Git存储库
使用打开Git存储库
FileRepository
这很棘手。这是一个内部API,其中给定的字符串是存储库元数据(
.git
文件夹)。换句话说,它用于构建Git裸存储库。你可以打电话给
Repository#isBare()
:
Repository localRepo = new FileRepository("C:\\Users\\Joshi\\Desktop\\demo");
System.out.println(localRepo.isBare()); // true
使用此API后,创建的存储库是一个裸存储库。你
不能
提交到裸存储库,因为它没有工作区。这就是为什么你会说:
组织。日食jgit。api。错误。ErrorRepositoryStateException:无法在上提交
国家回购:裸
更好的方法是使用
Git#open()
。请注意,您应该在使用Git存储库之后关闭它。所以我在这里使用try with resources语句:
try (Git git = Git.open(new File("C:\\Users\\Joshi\\Desktop\\demo"))) {
// Add your logic here ...
}
将文件添加到Git
在提交更改之前,需要将其添加到索引中,以便为下一次提交准备暂存的内容。例如:
git.add().addFilepattern(".").call();
请注意,这与
RemoteAddCommand
:我们正在添加文件内容,而
RemoteAddCommand
添加新的远程URL。在本机Git命令中,它们分别是:
git add .
git remote add origin https://bitbucket.org/nidhi011/bxc
犯罪
这部分你说得对。
推
如果本地分支未从签出
tracking branch
,则需要在push命令中精确指定远程分支名称。
git.push().setRemote("origin").add("master").call();
如果凭据不正确,用户将无权推动更改。在这种情况下
TransportException
将被抛出。您可以为异常处理添加其他逻辑:
try {
git.push().setRemote("origin").add("master").call();
} catch (TransportException e) {
// Add your own logic here, for example:
System.out.println("Username or password incorrect.");
}