当我在分支 master
上时,如何将未提交的更改推送到分支 TEST?
你也可以通过以下方式创建一个新的分支并切换到它:
git checkout -b new_branch
git add .
我经常使用这个功能,因为我总是忘记在开始编辑代码之前创建一个新的分支。
git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"
我不太确定删除的文件是否包含在使用 git add .
命令时,但我猜测它们并不会被包含进去。
为什么不直接使用git stash呢?我认为它更像复制和粘贴,更加直观。
$ 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
,当你想要结束一个特性分支时,如果在你的工作目录中仍有更改,它会发出警告。
就像 @Mike Bethany 一样,我经常遇到这种情况,因为我在解决新问题时忘记了自己仍在其他分支上。所以你可以将你的工作 stash 起来,执行 git flow feature finish...
,然后使用 git stash apply
到新的 git flow feature start ...
分支。
git stash
是我处理未提交更改的首选方式。当你将其视为剪切和粘贴时,它肯定是一种直观的方法。 - Matthew Mitchellgit stash --include-untracked
@Καrτhικ git stash --include-untracked
- 2Toadgit checkout TEST
git add file1 file2
git commit