I'm using JGit to checkout a remote tracking branch.
Git binrepository = cloneCmd.call() CheckoutCommand checkoutCmd = binrepository.checkout(); checkoutCmd.setName( "origin/" + branchName); checkoutCmd.setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK ); checkoutCmd.setStartPoint( "origin/" + branchName ); Ref ref = checkoutCmd.call();
The files are checked out, but the HEAD is not pointing to the branch. Following is the git status
output,
$ git status # Not currently on any branch. nothing to commit (working directory clean)
The same operation can be performed in git command line, easily and it works,
git checkout -t origin/mybranch
How to do this JGit?
Git checkout remote branch is a way for a programmer to access the work of a colleague or collaborator for the purpose of review and collaboration. There is no actual command called “git checkout remote branch.” It's just a way of referring to the action of checking out a remote branch.
Find the remote branch in remotes -> origin , then double-click that branch to get it selected locally.
You have to use setCreateBranch
to create a branch:
Ref ref = git.checkout(). setCreateBranch(true). setName("branchName"). setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK). setStartPoint("origin/" + branchName). call();
Your first command was the equivalent of git checkout origin/mybranch
.
(Edit: I submitted a patch to JGit to improve the documentation of CheckoutCommand: https://git.eclipse.org/r/8259)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With