tags:

views:

102

answers:

4

Hi,

I have made a git commit but I have not pushed. And I am now working on a new bug fix, which should not touch the same files as the first commit.

Is it possible for me to commit this bug fix AND git push only this commit?

Thank you.

+4  A: 

What you can do is move the previous commit to a (temporary) branch, and cherry-pick your new commit to the master. For example:

# first commit your current work
git branch temp_branch
git reset --hard HEAD~2
git cherry-pick temp_branch
git push

Then, temp_branch will contain both your new commits. You can then later pick your previous one back to master:

git cherry-pick temp_branch^
git branch -D temp_branch

After doing this, your master branch will contain the same two commits as you started with, but in the opposite order.

Greg Hewgill
A: 

just do another clone and push your bug fix from there.

kriss
The dude's harsh, idn't he?
btelles
A: 

Our shop uses personal branches extensively. Basically the process would go like this:

Given that you are currently on the master branch

git checkout -b bug_fix_name_that_I_dont_want_to_commit

The above creates a branch and checks it out...this is where you put the commits that you are not ready to push.

Now you should be able to make commits to the current branch without affecting the master branch.

When you're ready to publish/push that one commit, just do:

git push origin master

and your other commits will not go to the origin repository.

When you're ready to incorporate the "bug fix" into the master branch, checkout the master branch and do;

git merge bug_fix_name_that_I_dont_want_to_commit

I think this answers the question, but if not, just let me know!

btelles
+4  A: 
Dustin