W git, jeśli mam kilka porcji z tego samego pliku ustawionych w moim indeksie, jak mogę interaktywnie zdjąć jeden z nich?
Czy jest jakaś alternatywa dla usunięcia z poczekalni całego pliku, a następnie ponownego umieszczenia porcji, które chcę zachować, lub ręcznego cofnięcia zmian w kopii roboczej, a następnie interaktywnego dodania cofniętych zmian?
git stash save --keep-index
do zapisania i zresetowania zmian w bieżącej kopii roboczej. Następnie możesz zresetować plik i cofnąć zmiany, których nie chcesz. Jeśli najpierw skopiujesz plik do jakiejś tymczasowej lokalizacji, możesz użyćdiff
do zapisania cofniętych zmian. Następnie możesz ponownie dodać plik (nie ma potrzeby dodawania interaktywnego, ponieważ ukryłeś inne zmiany, którymi nie byłeś zainteresowany). Użyj,git stash pop
aby przywrócić stare zmiany idiff
zastosować zmiany, które cofnąłeś. Dość uciążliwe ... :-(The short form -p also works for both commands.
.. Masz na myśligit reset -p filename
?git add -p filename
selektywnie etapuje zmiany z tego pliku igit reset -p filename
selektywnie cofa zmiany. Jest teżgit checkout -p -- filename
, który pozwala selektywnie odrzucać zmiany z pliku. Ostrzeżenie: każdy zadd
ireset
może być użyty do cofnięcia drugiego z dwóch, ale jeśli użyjesz tej formycheckout
do odrzucenia zmiany, nie możesz jej odzyskać.git gui
ma przyzwoity GUI do interaktywnego wystawiania lub usuwania fragmentów sceny lub linii. Istnieją ładniejsze / lepsze klienty GUI, alegit gui
są lekkie, wbudowane i wieloplatformowe (lin, win, mac).https://git-scm.com/docs/git-gui
Po prostu kliknij prawym przyciskiem myszy kawałek, aby wystawić / zdjąć scenę. W przypadku linii najpierw zaznacz linie, a następnie kliknij prawym przyciskiem myszy.
źródło
GitX ma ładny interfejs użytkownika do usuwania fragmentów pliku z poczekalni:
Oficjalny klient nie był obsługiwany od jakiegoś czasu, ale w niektórych kręgach popularne jest rozwidlenie w GitHub z większą liczbą funkcji. ( wpis na blogu o tym )
źródło
git gui
, ale nie jestem pewien, czy