Jak wprowadzić niezatwierdzone zmiany do TESTU oddziału, kiedy jestem w oddziale master
?
Jak wprowadzić niezatwierdzone zmiany do TESTU oddziału, kiedy jestem w oddziale master
?
Odpowiedzi:
Możesz po prostu przejść do oddziału testowego, a następnie zatwierdzić. Nie tracisz swoich nieoczekiwanych zmian, przenosząc się do innego oddziału.
Załóżmy, że jesteś w oddziale głównym:
git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"
Naprawdę nie jestem pewien co do usuniętych plików, ale myślę, że nie są one uwzględnione, gdy używasz git add .
Możesz także utworzyć nowy oddział i przejść do niego, wykonując:
git checkout -b new_branch
git add .
Używam tego cały czas, ponieważ zawsze zapominam założyć nowy oddział, zanim zacznę edytować kod.
Dlaczego nie skorzystać z git stash. Myślę, że jest bardziej intuicyjny jak kopiowanie i wklejanie.
$ git branch
develop
* master
feature1
TEST
$
W bieżącym oddziale masz kilka plików, które chcesz przenieść.
$ 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
$
Przejdź do drugiej gałęzi.
$ git checkout TEST
I aplikuj
$ 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
#
Podoba mi się również, git stash
ponieważ używam git flow
, który narzeka, gdy chcesz zakończyć gałąź funkcji, a zmiany są nadal w katalogu roboczym.
Podobnie jak @Mike Bethany, zdarza mi się to cały czas, ponieważ pracuję nad nowym problemem, zapominając, że wciąż jestem w innym oddziale. Możesz więc ukryć swoją pracę git flow feature finish...
i git stash apply
nowy git flow feature start ...
oddział.
git stash
to mój preferowany sposób radzenia sobie z niezatwierdzonymi zmianami. Jest to z pewnością intuicyjna metoda, gdy myślisz o tym jako wycinanie i wklejanie.
git stash --include-untracked