Mam dwa projekty. Jeden to „oficjalny” projekt, a drugi to lekka modyfikacja (dodano kilka plików). Utworzyłem nowy oddział i dodałem do nich nowe pliki. Ale podczas programowania niektóre pliki wspólne dla obu gałęzi są zmieniane.
Jak mogę zatwierdzić tylko te pliki?
git
git-branch
git-commit
Czapki
źródło
źródło
Odpowiedzi:
Przypuszczam, że chcesz zatwierdzić zmiany w jednej gałęzi, a następnie pokazać te zmiany w drugiej gałęzi. W git nie powinieneś mieć żadnych zmian na HEAD podczas zmiany gałęzi.
Zatwierdzasz tylko zmienione pliki przez:
Lub jeśli masz pewność, że masz czyste miejsce postoju, możesz
Jeśli chcesz udostępnić to zatwierdzenie w obu gałęziach, które robisz
źródło
git commit [some files]
który sugeruje--only
zmianę). Pierwszy przykład (git add [some files]
po którym następujegit commit
) spowoduje również zatwierdzenie wszelkich innych wprowadzonych zmian.Uzyskaj listę plików, które chcesz zatwierdzić
Dodaj pliki do inscenizacji
Sprawdź, co popełniasz
Zatwierdź pliki z komunikatem zatwierdzenia
Jeśli przypadkowo popełnisz nieprawidłowe pliki
Jeśli chcesz rozpakować pliki i zacząć od nowa
źródło
Możesz zatwierdzić niektóre zaktualizowane pliki, takie jak to:
źródło
Niektóre z nich wydają się „niekompletne”
Grupy ludzi NIE będą wiedzieć, czy powinny używać cytatów itp.
Dodaj 1 konkretny plik pokazujący również ścieżki lokalizacji
Zatwierdź (pamiętaj, że zatwierdzenie jest tylko lokalne, nie wpływa na żaden inny system)
Przekaż do zdalnego repozytorium
Inne odpowiedzi pokazują skrytkę itp., Którą czasem będziesz chciał zrobić
źródło
Jeśli pliki zostały już przemieszczone, po prostu usuń je ze sceny:
Następnie dodaj je krok po kroku z powrotem.
źródło
Załóżmy, że dokonałeś zmian w wielu plikach, takich jak:
Ale chcesz zatwierdzić tylko zmiany w pliku File1 i File3.
Można to zrobić na dwa sposoby:
1.Zastosuj tylko te dwa pliki, używając:
następnie zatwierdzić
następnie pchnij
2. Bezpośrednie zatwierdzenie
następnie pchnij
Właściwie pierwsza metoda jest przydatna na wypadek, gdybyśmy regularnie modyfikowali pliki i wystawiali je na scenę -> Duże projekty, zazwyczaj projekty na żywo.
Ale jeśli modyfikujemy pliki, a nie je wystawiamy, możemy wykonać bezpośrednie zatwierdzenie -> Małe projekty
źródło
--only
. W takim przypadku byłoby to to samo poleceniegit commit --only file1 --only file3 -m "my message"
lub skrót , który można wykorzystać jakogit commit -o file1 -o file3 -m "my message"
Odwołanie: git-scm.com/docs/git-commitJest to proste podejście, jeśli nie ma dużo zmian w kodzie:
Następnie, jeśli chcesz, aby kod, który usunąłeś (bity, których nie zatwierdziłeś) w oddzielnym zatwierdzeniu lub w innej gałęzi, wtedy będąc jeszcze w tej gałęzi, wykonaj:
W kroku 5, gdy już zastosowałeś ukrytą i zatwierdziłeś kod, który chciałeś w kroku 4, różnicę i niewyśledzenie w nowo zastosowanej skrytce jest tylko kodem, który usunąłeś w kroku 3 przed zatwierdzeniem w kroku 4.
W związku z tym krok 6 to ukryty kod, którego nie [chciałeś] zatwierdzić, ponieważ prawdopodobnie tak naprawdę nie chcesz stracić tych zmian, prawda? Tak więc nowa skrytka z kroku 6 może być teraz przypisana do tej lub dowolnej innej gałęzi, wykonując polecenie git stash dla właściwej gałęzi i zatwierdzając.
Oczywiście zakłada to, że wykonujesz kroki w jednym przepływie, jeśli skasujesz w dowolnym innym punkcie tych kroków, musisz zanotować oznaczenie skrytki dla każdego kroku powyżej (zamiast tylko podstawowej skrytki i zastosować najnowszą skrytkę).
źródło