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
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
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?)