mojego obecnego git status
wygląda następująco:Git częściowe popełniają inscenizowanych zmiany
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: docs/file3.org
# modified: src/main/R/lib.R
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: docs/file3.org
# modified: src/main/R/lib.R
które chciałbym popełnić wystawił zmiany docs/file3.org
pierwsze, potem drugie etapowe zmiany. Ale jeśli wykonam git commit -m '...' docs/file3.org
, spowoduje to przeniesienie do tego pliku nieplanowanych zmian &.
Czy istnieje prosty sposób na zrobienie tego? Czy muszę stash
moje zmiany niezarządzane, unstage jeden z plików, popełnić drugi, restage, commit i stash pop
?
Możliwe, że zachowanie 'git commit' zmieniło się od czasu opublikowania tego pytania, ale od grudnia 2015 r. Polecenie, które próbowałeś (określając ścieżki, które chcesz zatwierdzić) powinno działać. Z [documentation] (https://git-scm.com/docs/git-commit) opcji git commit - onlyly: * Dokonaj commit pobierając zaktualizowaną zawartość drzewa roboczego ścieżek określonych w komendzie linii, bez względu na zawartość, która została wystawiona na inne ścieżki. Jest to domyślny tryb działania git commit, jeśli w wierszu poleceń podano dowolną ścieżkę, w którym to przypadku tę opcję można pominąć. * – waldyrious
Naprawdę oczekiwałbym, że 'git commit' (bez określonych ścieżek) będzie zatwierdzać * tylko wystawiony * modyfikacje. W każdym razie, inną opcją jest użycie 'git gui' dla operacji na scenie i zatwierdzeniu. – aweibell