W dupie, chowam zmiany. Czy to możliwe, że mogę stworzyć łatkę z tym, co ukryję? A potem zastosować tę poprawkę w innym repozytorium (u mojego współpracownika)?
Wiem git format-patch -1
, ale myślę, że to za to, co się zobowiązałem. Ale szukam tego samego dla zmian, które odłożyłem.
Jak mogę zastosować łatkę w innym repozytorium?
man patch
i nie widziałem żadnych opcji dla interaktywnej aplikacji łatki. Jednakże, ponieważ pliki łat są same w sobie zwykłymi plikami tekstowymi, zazwyczaj wystarczy edytować łatę w edytorze tekstu, aby wyciąć odpowiednie części do zastosowaniapatch
. Alternatywnie, jeśli stosujesz łatkę w innym repozytorium Git, możesz zastosować ją w całości, a następnie wybiórczogit checkout
pliki, których nie chcesz zmieniać (git checkout
z nazwą pliku odrzuca zmiany niestacjonarne).git add --interactive ${YOUR_FILES}
a da ci to szansę na częściowe zatwierdzenie.git stash show -p stash@{1} > patch.txt
Ta odpowiedź zawiera informacje dotyczące zarówno zapisywania poprawki, jak i stosowania jej tam, gdzie chcesz jej użyć.
Aby przechowywać dane wyjściowe w pliku:
Sprawdź, czy poprawka wygląda dobrze:
Sprawdź, czy nie ma błędów:
Zastosuj łatkę
źródło
git apply --check --ignore-space-change --ignore-whitespace my-patch-name.patch
Zastosuj łatkę:git apply --ignore-space-change --ignore-whitespace my-patch-name.patch
git apply
nie odebrałem różnicy.Posługiwać się
aby uzyskać listę ostatnio przechowywanych rzeczy. W rzeczywistości Git tworzy obiekty zatwierdzania, gdy je przechowujesz.
Są zobowiązaniami jak wszystko inne. Możesz je sprawdzić w oddziale:
Następnie możesz opublikować tę gałąź, a Twój współpracownik może scalić lub wybrać najlepsze zatwierdzenie.
źródło
Powyższe rozwiązania nie będą działać dla danych binarnych. Następujące dodają obsługę tego:
Edytować
Uwaga: chciałem tylko dodać komentarz do powyższych odpowiedzi, ale moja reputacja nie jest wystarczająca.
źródło
Myślę, że to może być jedna z ostatnich aktualizacji Gita. nie musisz już aktualizować zachowanych zmian. możesz po prostu zastosować zapisane zmiany w jednej gałęzi do drugiej.
powiedz w gałęzi A, że odłożyłeś kilka zmian, nazywanych stash @ {1}.
teraz przełączysz się na gałąź B. możesz po prostu:
powoduje to zmianę gałęzi A na gałąź B.
źródło