Git create branch from current checked out master?
There is a git controlled folder on a server where the main branch is checked out and a whole pile of files have been modified and not committed. Is there a way for me to commit the changes to a separate branch so I can go back to a clean version?
ie I want to effecitvely undo all this persons changes but store them in another chance so if that person wants their changes they can switch to that branch.
(Yes I know this is not how git is designed to work but that is my situation!) Any ideas very much appreciated.
First of all moving to a different branch based in the current HEAD is performed like this:
git checkout -b newbranch
Commit all the changes (assuming no newly added files, otherwise git add
them):
git commit -a
Go back to the master branch:
git checkout master
The previously uncommitted changes will all be on the newbranch branch, and master will still be at the state it was without those changes.
This method is useful:
git checkout -B <new_branch> <start point>
Where:
<new_branch>
is your new branch (eg my_branch
) <start point>
is your starting branch ( master
in your case) -B
creates new branch starting from <start point>
, if it already exists, then reset it to (it won't fail as -b
when branch already exists) -m
can useful to specify when switching branches, this will perform a three-way merge between the current branch, your working tree contents (useful for scripting). See: man git-checkout
for more details.
You can always stash your changes.
git stash
git checkout -b bravenewmaster
git stash apply
Also keep in mind, that if you commit to the "wrong" branch you can always move that branch back, because branch is nothing but a pointer to a commit.
链接地址: http://www.djcxy.com/p/23590.html上一篇: 如何提交对新分支的更改
下一篇: Git从当前签出的主数据库创建分支?