W git, czy istnieje jakiś (prosty) sposób modyfikowania indeksu, aby dodawać tylko zmiany w plikach już w nim zawartych? Brzmi to trochę skomplikowanie, ale to, co chcę osiągnąć, jest proste.Odświeżanie plików etapowych
Powiedzmy mój indeks wygląda tak (lekko pozbawiony git status
wyjście):
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: B
# modified: C
#
# Untracked files:
# D
Niektóre zmiany B
są w indeksie, niektóre nie. C
nie jest w ogóle wystawiany.
Jak mogę zaktualizować B
w indeksie (etap jego zmiany nieopublikowane) bez dodawania C
?
tj. Chciałbym na indeks wyglądać tak:
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: C
#
# Untracked files:
# D
W tym prostym przypadku może oczywiście zostać osiągnięty za pomocą prostego git add B
, ale chciałbym wiedzieć, czy istnieje prosta odpowiedź na ogólnym przypadku. Próbowałem git add --refresh
, ale jeśli dobrze rozumiem, to tylko aktualizuje informacje o statystykach.
można pokazać prawdziwy przypadek użycia, w którym chcesz to zrobić? Nie mogę sobie wyobrazić żadnego (dodawanie pliku i modyfikowanie go nie oznacza automatycznie, że będę chciał dodać te zmiany, szczególnie gdy nie chcę dodawać zmian w innych plikach). –
@JanHudec Prawdopodobnie nie potrzebowałbym tego, gdybym był bardziej rygorystyczny i dotknął tylko tych plików, które powinny wejść w zatwierdzenie ('B'). Czasami jednak jestem zawiedziony i zaczynam wprowadzać zmiany, które powinny być w nowym zatwierdzeniu ('C'), więc dodaję" B "do indeksu. Przed dokonaniem zatwierdzenia zawsze sprawdzam diff --cached, a czasami czyściłem coś w 'B'. i wtedy potrzebuję tego. Myślę, że prawdopodobnie można by to rozwiązać w inny sposób, powiedzmy ze stash – axelarge
Chodzi mi o to, że kiedy robisz coś w pliku 'X', które powinno iść w zatwierdzeniu' B' i daj się ponieść emocjom i wykonaj zmiany, które powinny przejść w zatwierdzeniu 'C', niektóre z tych zmian są często ponownie do pliku' X'. W takim przypadku należy ręcznie dodać -i indywidualne porcje, a nie tylko ponownie dodać plik 'X'. Oczywiście, jeśli zostaniesz zawiedziony, prawdopodobnie zauważyłeś coś wokół tego, co zmieniłeś, dlatego jest mało prawdopodobne, że dodatkowe zmiany nie dotkną plików, które zestaw pięści robi. –