Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in DevOps and Agile by (19.4k points)

Context: I'm working on master adding a simple feature. After a few minutes, I realize it was not so simple and it should have been better to work into a new branch.

This always happens to me and I have no idea how to switch to another branch and take all these uncommitted changes with me leaving the master branch clean. I supposed git stash && git stash branch new_branch would simply accomplish that but this is what I get:

~/test $ git status

# On branch master

nothing to commit (working directory clean)

~/test $ echo "hello!" > testing 

~/test $ git status

# On branch master

# Changed but not updated:

#   (use "git add <file>..." to update what will be committed)

#   (use "git checkout -- <file>..." to discard changes in working directory)

#

#   modified:   testing

#

no changes added to commit (use "git add" and/or "git commit -a")

~/test $ git stash

Saved working directory and index state WIP on master: 4402b8c testing

HEAD is now at 4402b8c testing

~/test $ git status

# On branch master

nothing to commit (working directory clean)

~/test $ git stash branch new_branch

Switched to a new branch 'new_branch'

# On branch new_branch

# Changed but not updated:

#   (use "git add <file>..." to update what will be committed)

#   (use "git checkout -- <file>..." to discard changes in working directory)

#

#   modified:   testing

#

no changes added to commit (use "git add" and/or "git commit -a")

Dropped refs/stash@{0} (db1b9a3391a82d86c9fdd26dab095ba9b820e35b)

~/test $ git s

# On branch new_branch

# Changed but not updated:

#   (use "git add <file>..." to update what will be committed)

#   (use "git checkout -- <file>..." to discard changes in working directory)

#

#   modified:   testing

#

no changes added to commit (use "git add" and/or "git commit -a")

~/test $ git checkout master

M   testing

Switched to branch 'master'

~/test $ git status

# On branch master

# Changed but not updated:

#   (use "git add <file>..." to update what will be committed)

#   (use "git checkout -- <file>..." to discard changes in working directory)

#

#   modified:   testing

#

no changes added to commit (use "git add" and/or "git commit -a")

Do you know if there is any way of accomplishing this?

1 Answer

0 votes
by (27.5k points)

I would suggest you create a new branch and then 

$ git checkout -b MyNewBranch

Then now if you perform git status you'll see that the state of the code hasn't changed and you can commit it to the new branch.

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

30.5k questions

32.6k answers

500 comments

108k users

Browse Categories

...