Allow checkout -B <current-branch> to update the current branch
When on master, "git checkout -B master <commit>" is a more natural way to say "git reset --keep <commit>", which was originally invented for the exact purpose of moving to the named commit while keeping the local changes around. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
3f59481e33
commit
39bd6f7261
6
branch.c
6
branch.c
@ -160,7 +160,8 @@ int validate_new_branchname(const char *name, struct strbuf *ref,
|
||||
|
||||
void create_branch(const char *head,
|
||||
const char *name, const char *start_name,
|
||||
int force, int reflog, enum branch_track track)
|
||||
int force, int reflog, int clobber_head,
|
||||
enum branch_track track)
|
||||
{
|
||||
struct ref_lock *lock = NULL;
|
||||
struct commit *commit;
|
||||
@ -175,7 +176,8 @@ void create_branch(const char *head,
|
||||
explicit_tracking = 1;
|
||||
|
||||
if (validate_new_branchname(name, &ref, force,
|
||||
track == BRANCH_TRACK_OVERRIDE)) {
|
||||
track == BRANCH_TRACK_OVERRIDE ||
|
||||
clobber_head)) {
|
||||
if (!force)
|
||||
dont_change_ref = 1;
|
||||
else
|
||||
|
Reference in New Issue
Block a user