Szukaj…


Uwagi

Warto zauważyć, że inscenizacja ma niewiele wspólnego z samymi „plikami” i wszystko, co dotyczy zmian w poszczególnych plikach. Wprowadzamy pliki zawierające zmiany, a git śledzi zmiany jako zatwierdzenia (nawet jeśli zmiany w zatwierdzeniu są dokonywane w kilku plikach).

Rozróżnienie między plikami i zatwierdzeniami może wydawać się niewielkie, ale zrozumienie tej różnicy jest fundamentalne dla zrozumienia podstawowych funkcji, takich jak cherry-pick i diff. (Zobacz frustrację w komentarzach dotyczących złożoności zaakceptowanej odpowiedzi, która proponuje cherry-pick jako narzędzie do zarządzania plikami .)

Jakie jest dobre miejsce do wyjaśniania pojęć? Czy to w uwagach?

Kluczowe idee:

Pliki to najczęstsza metafora tych dwóch technologii informatycznych. Zgodnie z najlepszymi praktykami nazwa pliku nie zmienia się wraz ze zmianą zawartości (z kilkoma rozpoznanymi wyjątkami).

Zatwierdzenie to metafora unikalna dla zarządzania kodem źródłowym. Zatwierdzenia to zmiany związane z określonym wysiłkiem, takie jak naprawa błędu. Zatwierdzenia często obejmują kilka plików. Pojedyncza, drobna poprawka błędu może obejmować poprawki w szablonach i css w unikalnych plikach. Gdy zmiana jest opisywana, opracowywana, dokumentowana, sprawdzana i wdrażana, zmiany w oddzielnych plikach mogą być opatrzone adnotacjami i obsługiwane jako jedna jednostka. Pojedynczą jednostką w tym przypadku jest zatwierdzenie. Równie ważne jest to, że skupienie się tylko na zatwierdzeniu podczas przeglądu pozwala bezpiecznie ignorować niezmienione wiersze kodu w różnych plikach, których dotyczy problem.

Inscenizacja pojedynczego pliku

Aby przygotować plik do zatwierdzenia, uruchom

git add <filename>

Inscenizacja wszystkich zmian w plikach

git add -A
2.0
git add .

W wersji 2.x git add . wprowadzi wszystkie zmiany do plików w bieżącym katalogu i wszystkich jego podkatalogach. Jednak w wersji 1.x będzie wystawiał tylko nowe i zmodyfikowane pliki, a nie pliki usunięte .

Użyj git add -A lub równoważnego polecenia git add --all , aby wprowadzić wszystkie zmiany do plików w dowolnej wersji git.

Stwórz usunięte pliki

git rm filename

Aby usunąć plik z git bez usuwania go z dysku, użyj flagi --cached

git rm --cached filename

Usuń scenę z pliku zawierającego zmiany

git reset <filePath>

Interaktywne dodawanie

git add -i (lub --interactive ) da ci interaktywny interfejs, w którym możesz edytować indeks, aby przygotować to, co chcesz mieć w następnym zatwierdzeniu. Możesz dodawać i usuwać zmiany w całych plikach, dodawać nieśledzone pliki i usuwać pliki ze śledzenia, ale także wybierać podsekcje zmian do umieszczenia w indeksie, wybierając fragmenty zmian do dodania, dzieląc te fragmenty, a nawet edytując plik różnic . Wiele graficznych narzędzi zatwierdzania dla Git (takich jak np. git gui ) zawiera taką funkcję; może to być łatwiejsze w użyciu niż wersja wiersza poleceń.

Jest to bardzo przydatne (1), jeśli masz splątane zmiany w katalogu roboczym, które chcesz umieścić w osobnych zatwierdzeniach, a nie wszystkie w jednym zatwierdzeniu (2), jeśli jesteś w środku interaktywnej bazy i chcesz się podzielić duże zatwierdzenie.

$ git add -i
           staged     unstaged path
  1:    unchanged        +4/-4 index.js
  2:        +1/-0      nothing package.json

*** Commands ***
  1: status       2: update       3: revert       4: add untracked
  5: patch        6: diff         7: quit         8: help
What now>

Górna połowa tego wyniku pokazuje aktualny stan indeksu w podziale na kolumny etapowe i niestacjonarne:

  1. index.js dodano 4 linie i usunięto 4 linie. Obecnie nie jest wystawiany, ponieważ aktualny stan zgłasza „bez zmian”. Gdy plik zostanie przemieszczony, bit +4/-4 zostanie przeniesiony do kolumny przemieszczanej, a kolumna niestabilna będzie czytać „nic”.
  2. package.json został dodany jeden wiersz i został zainscenizowany. Nie ma dalszych zmian, ponieważ został on zainscenizowany, jak wskazano w wierszu „nic” pod kolumną bezetapową.

Dolna połowa pokazuje, co możesz zrobić. Wprowadź liczbę (1-8) lub literę ( s , u , r , a , p , d , q , h ).

status pokazuje wyjście identyczne z górną częścią wyjścia powyżej.

update umożliwia wprowadzanie dalszych zmian w zatwierdzeniach etapowych za pomocą dodatkowej składni.

revert spowoduje przywrócenie informacji o zatwierdzeniu etapowym z powrotem do HEAD.

add untracked pozwala add untracked , które wcześniej nie były śledzone przez kontrolę wersji.

patch pozwala na wybranie jednej ścieżki z wyjścia podobnego do status do dalszej analizy.

diff pokazuje, co zostanie popełnione.

quit kończy działanie polecenia.

help przedstawia dalszą pomoc dotyczącą korzystania z tego polecenia.

Dodaj zmiany według przystojniaka

Możesz zobaczyć, jakie „porcje” pracy byłyby wystawiane do zatwierdzenia za pomocą flagi łatki:

git add -p

lub

git add --patch

Spowoduje to otwarcie interaktywnego monitu, który pozwala spojrzeć na różnice i pozwala zdecydować, czy chcesz je uwzględnić, czy nie.

Stage this hunk [y,n,q,a,d,/,s,e,?]?
  • W tym etapie przystań na następny zatwierdzenie
  • n nie wystawiaj tego przystawki do następnego zatwierdzenia
  • q wyjdź; nie wystawiaj tego przystojniaka ani żadnego z pozostałych przystojniaków
  • etap ten przystojniak i wszystkie późniejsze bryły w pliku
  • d nie umieszczaj tego fragmentu ani żadnego z późniejszych fragmentów w pliku
  • g wybierz przystojniak, do którego chcesz przejść
  • / wyszukaj przystojniak pasujący do podanego wyrażenia regularnego
  • j pozostaw ten przystojniak niezdecydowany, patrz następny niezdecydowany przystojniak
  • J zostaw ten przystojniak niezdecydowany, patrz następny przystojniak
  • k pozostaw ten przystojniak niezdecydowany, patrz poprzedni niezdecydowany przystojniak
  • K zostaw ten przystojniak niezdecydowany, patrz poprzedni przystojniak
  • s podzielił obecny przystojniak na mniejsze przystawki
  • e ręcznie edytuj bieżący przystojniak
  • ? wydrukuj pomoc przystojniaka

Ułatwia to wychwycenie zmian, których nie chcesz zatwierdzać.

Możesz to również otworzyć poprzez git add --interactive i wybierając p .

Pokaż zmiany etapowe

Aby wyświetlić porcje przygotowane do zatwierdzenia:

git diff --cached


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow