How do I rename a file in JGit

file-rename, jgit, rename

Solution

There is no direct equivalent to `git mv` in Git. `git mv` is just a short hand for

mv oldname newname
git add newname
git rm oldname

(see here)

Respectively, use `File.renameTo()` or, since Java 7, `Files.move()` to move the file and then

git.add().addFilepattern( "newname" ).call();
git.rm().addFilepattern( "oldname" ).call();

to update the Git index.

The paths given to `addFilePattern()` must be relative to the work directory and path segments must always be separated by slashes (`/`) independent of the file system in use.

Note, that Git does not track renames or moves. When using the `--follow` option with `git log`, it uses heuristics to try to detect renamed or moved files (see Is it possible to move/rename files in Git and maintain their history?)

Problem

How do I rename a file in JGit. That is, given a working file named file1. The command line would be: ``` git mv file1 file2 ```

Original source

Related problems