Master将未提交的变更交给Git的新分支

当我在分支master处时,如何将未提交的更改提交给分支TEST?

你可以结帐到testing分支,然后提交。 移动到另一个分支时,您不会失去无限的改变。

假设你在主分支:

 git checkout test git add . git add deletedFile1 git add deletedFile2 ... git commit -m "My Custom Message" 

我不是很确定删除的文件,但我想他们不包括在使用git add .

你也可以创build一个新的分支并切换到这个分支:

 git checkout -b new_branch git add . 

我一直使用这个,因为在我开始编辑代码之前,我总是忘记开始一个新的分支。

为什么不使用git存储。 我认为它更像直接复制粘贴。

 $ git branch develop * master feature1 TEST $ 

您想要移动的当前分支中有一些文件。

 $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: awesome.py # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # modified: linez.py # $ $ git stash Saved working directory and index state \ "WIP on master: 934beef added the index file" HEAD is now at 934beef added the index file (To restore them type "git stash apply") $ $ git status # On branch master nothing to commit (working directory clean) $ $ $ git stash list stash@{0}: WIP on master: 934beef ...great changes $ 

移到另一个分支。

 $ git checkout TEST 

并申请

 $ git stash apply # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # modified: awesome.py # modified: linez.py # 

我也喜欢git stash因为我使用git flow ,当你想完成一个function分支,同时仍然在你的工作目录中的变化,抱怨。

就像@Mike Bethany一样,这一直发生在我身上,因为我在解决一个新问题的同时忘记了我还在另一个分支上。 所以你可以隐藏你的工作, git flow feature finish... ,和git stash apply于新的git flow feature start ...分支。

 git checkout TEST git add file1 file2 git commit