sisanared
sisanared

Reputation: 4287

git checkout .(dot) interactive

I know git checkout . is one of the most dangerous commands in the git universe (rightfully so). Is there a way to make it interactive? Like how the rm command works with -i option.

I am looking for something along the lines of

git checkout . -i

Upvotes: 8

Views: 2859

Answers (1)

phihag
phihag

Reputation: 287835

git checkout (and git add as well) support the -p option, which will ask you for every hunk, like this:

diff --git a/post.so b/post.so
index b111bdd..ddba6b1 100644
--- a/post.so
+++ b/post.so
@@ -1 +1,3 @@
-`git checkout` (and `git add` as well) support the `-p` option.
+`git checkout` (and `git add` as well) support the `-p` option, which will ask you for every hunk, like this:
+
+foo bar
Discard this hunk from worktree [y,n,q,a,d,/,e,?]? 

For every hunk you can answer:

y - discard this hunk from worktree
n - do not discard this hunk from worktree
q - quit; do not discard this hunk or any of the remaining ones
a - discard this hunk and all later hunks in the file
d - do not discard this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

Upvotes: 13

Related Questions