I have two projects. One is the "official" project and the second is a light modification (some files added). I created new branch and I put new files to them. But in during development some files common to both branches is changed.
How do I commit only these files?
This question is tagged with
~ Asked on 2011-08-30 06:12:08
I suppose you want to commit the changes to one branch and then make those changes visible in the other branch. In git you should have no changes on top of HEAD when changing branches.
You commit only the changed files by:
git commit [some files]
Or if you are sure that you have a clean staging area you can
git add [some files] # add [some files] to staging area git add [some more files] # add [some more files] to staging area git commit # commit [some files] and [some more files]
If you want to make that commit available on both branches you do
git stash # remove all changes from HEAD and save them somewhere else git checkout <other-project> # change branches git cherry-pick <commit-id> # pick a commit from ANY branch and apply it to the current git checkout <first-project> # change to the other branch git stash pop # restore all changes again
~ Answered on 2011-08-30 06:28:09
Get a list of files you want to commit
$ git status Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file1 modified: file2 modified: file3 modified: file4
Add the files to staging
$ git add file1 file2
Check to see what you are committing
$ git status Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: file1 modified: file2 Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file3 modified: file4
Commit the files with a commit message
$ git commit -m "Fixed files 1 and 2"
If you accidentally commit the wrong files
$ git reset --soft HEAD~1
If you want to unstage the files and start over
$ git reset Unstaged changes after reset: M file1 M file2 M file3 M file4
~ Answered on 2015-05-05 03:45:50