From 9db31bdf5c834689c826f809d6d15bf7ab8d3598 Mon Sep 17 00:00:00 2001 From: Nicolas Morey-Chaisemartin Date: Fri, 1 Apr 2011 11:42:03 +0200 Subject: submodule: Add --force option for git submodule update By default git submodule update runs a simple checkout on submodules that are not up-to-date. If the submodules contains modified or untracked files, the command may exit sanely with an error: $ git submodule update error: Your local changes to the following files would be overwritten by checkout: file Please, commit your changes or stash them before you can switch branches. Aborting Unable to checkout '1b69c6e55606b48d3284a3a9efe4b58bfb7e8c9e' in submodule path 'test1' In order to reset a whole git submodule tree, a user has to run first 'git submodule foreach --recursive git checkout -f' and then run 'git submodule update'. This patch adds a --force option for the update command (only used for submodules without --rebase or --merge options). It passes the --force option to git checkout which will throw away the local changes. Signed-off-by: Nicolas Morey-Chaisemartin Acked-by: Jens Lehmann Signed-off-by: Junio C Hamano --- Documentation/git-submodule.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Documentation/git-submodule.txt') diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt index 1ed331c599..9f84da7ad6 100644 --- a/Documentation/git-submodule.txt +++ b/Documentation/git-submodule.txt @@ -185,8 +185,10 @@ OPTIONS -f:: --force:: - This option is only valid for the add command. - Allow adding an otherwise ignored submodule path. + This option is only valid for add and update commands. + When running add, allow adding an otherwise ignored submodule path. + When running update, throw away local changes in submodules when + switching to a different commit. --cached:: This option is only valid for status and summary commands. These -- cgit v1.2.3