Powiedzmy, że Twój example.css
wygląd wygląda następująco:
.classname {
width: 440px;
}
/*#field_teacher_id {
display: block;
} */
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
width: 300px;
}
.another {
width: 420px;
}
Teraz zmieńmy selektory stylów w środkowym bloku, a gdy już nad tym pracujemy, usuńmy niektóre skomentowane style, których już nie potrzebujemy.
.classname {
width: 440px;
}
#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
.another {
width: 420px;
}
To było łatwe, teraz popełnijmy. Ale poczekaj, chcę zachować logiczną separację zmian w kontroli wersji dla prostej krokowej weryfikacji kodu, aby mój zespół i ja mogli z łatwością przeszukiwać historię zatwierdzeń w celu znalezienia szczegółów.
Usunięcie starego kodu jest logicznie oddzielone od innej zmiany selektora stylu. Będziemy potrzebować dwóch różnych zatwierdzeń, więc dodajmy przystawki do poprawki.
git add --patch
diff --git a/example.css b/example.css
index 426449d..50ecff9 100644
--- a/example.css
+++ b/example.css
@@ -2,12 +2,7 @@
width: 440px;
}
-/*#field_teacher_id {
- display: block;
-} */
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
+#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
Stage this hunk [y,n,q,a,d,/,e,?]?
Ups, wygląda na to, że zmiany są zbyt blisko, więc git podzielił je na części.
Nawet próba podzielenia go przez naciśnięcie sdaje ten sam wynik, ponieważ podział nie jest wystarczająco szczegółowy, aby wprowadzić zmiany precyzji. Niezmienne linie są wymagane między zmienionymi liniami, aby git mógł automatycznie podzielić łatkę.
Więc niech Ręcznie edycję naciskające
Stage this hunk [y,n,q,a,d,/,e,?]? e
git otworzy łatkę w naszym wybranym edytorze.
# Manual hunk edit mode -- see bottom for a quick guide
@@ -2,12 +2,7 @@
width: 440px;
}
-/*#field_teacher_id {
- display: block;
-} */
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
+#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for staging. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
Przyjrzyjmy się celowi:
Jak mogę dodać usunięcie komentarza CSS tylko do następnego zatwierdzenia?
Chcemy podzielić to na dwa zatwierdzenia:
Pierwsze zatwierdzenie obejmuje usunięcie niektórych wierszy (usunięcie komentarza).
Aby usunąć skomentowane linie, zostaw je w spokoju, są już zaznaczone, aby śledzić usunięcia w kontroli wersji tak, jak chcemy.
-/*#field_teacher_id {
- display: block;
-} */
Drugie zatwierdzenie to zmiana, która jest śledzona przez rejestrowanie zarówno usunięć, jak i uzupełnień:
Usunięcia (stare linie wyboru zostały usunięte)
Aby zachować stare linie wyboru (nie usuwaj ich podczas tego zatwierdzania), chcemy ...
Aby usunąć linie „-”, wykonaj je ”
... co dosłownie oznacza zastąpienie -
znaków minus znakiem spacji
.
Te trzy linie ...
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
... stanie się ( zwróć uwagę na pojedynczą spację na pierwszym z wszystkich 3 wierszy):
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
Dodatki (dodano nową linię wyboru)
Aby nie zwracać uwagi na nową linię selektora dodaną podczas tego zatwierdzenia, chcemy ...
Aby usunąć linie „+”, usuń je.
... co dosłownie oznacza usunięcie całej linii:
+#user-register form.table-form .field-type-checkbox label {
(Bonus: jeśli używasz vima jako edytora, naciśnij, ddaby usunąć linię. Użytkownicy Nano naciśnij Ctrl+ K)
Twój edytor powinien wyglądać tak po zapisaniu:
# Manual hunk edit mode -- see bottom for a quick guide
@@ -2,12 +2,7 @@
width: 440px;
}
-/*#field_teacher_id {
- display: block;
-} */
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
width: 300px;
}
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for staging. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
Teraz popełnijmy.
git commit -m "remove old code"
I dla pewności zobaczmy zmiany od ostatniego zatwierdzenia.
git show
commit 572ecbc7beecca495c8965ce54fbccabdd085112
Author: Jeff Puckett <jeff@jeffpuckett.com>
Date: Sat Jun 11 17:06:48 2016 -0500
remove old code
diff --git a/example.css b/example.css
index 426449d..d04c832 100644
--- a/example.css
+++ b/example.css
@@ -2,9 +2,6 @@
width: 440px;
}
-/*#field_teacher_id {
- display: block;
-} */
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
Idealnie - widać, że tylko usunięcia zostały zawarte w tym zatwierdzeniu atomowym. Teraz zakończmy zadanie i dokonaj reszty.
git add .
git commit -m "change selectors"
git show
commit 83ec3c16b73bca799e4ed525148cf303e0bd39f9
Author: Jeff Puckett <jeff@jeffpuckett.com>
Date: Sat Jun 11 17:09:12 2016 -0500
change selectors
diff --git a/example.css b/example.css
index d04c832..50ecff9 100644
--- a/example.css
+++ b/example.css
@@ -2,9 +2,7 @@
width: 440px;
}
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
+#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
Wreszcie możesz zobaczyć, że ostatnie zatwierdzenie zawiera tylko zmiany selektora.