Как можно внести незафиксированные изменения в ТЕСТ ветки, когда я нахожусь в ветке master
?
Помещение незафиксированных изменений на Мастере в новую ветку с помощью Git
Ответы (3)
Вы можете просто оформить заказ в тестовую ветку, а затем выполнить фиксацию. Вы не потеряете незавершенные изменения при переходе в другую ветку.
Предположим, вы находитесь в главной ветке:
git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"
Я не совсем уверен в удаленных файлах, но полагаю, что они не включаются, когда вы используете git add .
Также вы можете создать новую ветку и переключиться на нее, выполнив:
git checkout -b new_branch
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, это происходит со мной все время, потому что я работаю над новой проблемой, забывая, что я все еще нахожусь в другой ветке. Таким образом, вы можете спрятать свою работу, git flow feature finish...
и git stash apply
в новую ветку git flow feature start ...
.
git stash
- мой предпочтительный способ работы с незафиксированными изменениями. Это, безусловно, интуитивно понятный метод, если представить его как «вырезать и вставить».
- person Matthew Mitchell; 22.01.2013