Diyelim ki example.css
görünüşünüz şöyle:
.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;
}
Şimdi orta bloktaki stil seçicilerini değiştirelim ve biz devam ederken, artık ihtiyacımız olmayan eski yorumlanmış stilleri silin.
.classname {
width: 440px;
}
#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
.another {
width: 420px;
}
Bu kolaydı, şimdi taahhüt edelim. Ama bekleyin, basit adım adım kod incelemesi için sürüm kontrolündeki değişikliklerin mantıksal olarak ayrılmasını sağlamak istiyorum, böylece ekibim ve ben, taahhüt geçmişini ayrıntılar için kolayca arayabiliriz.
Eski kodun silinmesi mantıksal olarak diğer stil seçici değişikliğinden ayrıdır. İki ayrı işleme ihtiyacımız olacak, bu yüzden bir yama için iri parça ekleyelim.
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,?]?
Hata! Değişiklikler çok yakın gibi görünüyor, bu yüzden git onları bir araya getirdi.
Bunu basarak basarak bölmeye çalışmak bile saynı sonuca sahiptir çünkü bölünme hassas değişikliklerimiz için yeterince ayrıntılı değildir. Git'in yamayı otomatik olarak ayırabilmesi için, değiştirilen çizgiler arasında değişmemiş çizgiler olması gerekir.
Yani, 's manuel izin düzenlemek basarake
Stage this hunk [y,n,q,a,d,/,e,?]? e
git yamayı seçtiğiniz editörümüzde açacaktır.
# 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.
Hedefi gözden geçirelim:
CSS yorumu kaldırmayı yalnızca bir sonraki işleme nasıl ekleyebilirim?
Bunu iki komiteye ayırmak istiyoruz:
İlk işlem bazı satırların silinmesini içerir (yorum kaldırma).
Yorumlanan satırları kaldırmak için, onları yalnız bırakın, zaten istediğimiz gibi sürüm kontrolündeki silmeleri izlemek için işaretlenmişlerdir.
-/*#field_teacher_id {
- display: block;
-} */
İkinci taahhüt, hem silme hem de eklemeler kaydedilerek izlenen bir değişikliktir:
Silme işlemleri (eski seçici satırlar kaldırıldı)
Eski seçici satırları tutmak için (bu işlem sırasında bunları silmeyin), ...
'-' satırlarını kaldırmak için ''
... bu da eksi -
işaretlerini bir boşluk karakteriyle değiştirmek anlamına geliyor .
Yani bu üç çizgi ...
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
... olacak ( 3 satırın ilkindeki tek boşluğa dikkat edin):
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
Eklemeler (yeni seçici satır eklendi)
Bu işlem sırasında eklenen yeni seçici çizgiye dikkat etmemek için ...
'+' Satırlarını kaldırmak için silin.
... kelimenin tam anlamıyla tüm satırı silmek anlamına gelir:
+#user-register form.table-form .field-type-checkbox label {
(Bonus: vim'i editörünüz olarak kullanıyorsanız , ddbir satırı silmek için tuşuna basın . Nano kullanıcılar Ctrl+ tuşuna basın K)
Kaydettiğinizde düzenleyiciniz şöyle görünmelidir:
# 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.
Şimdi taahhüt edelim.
git commit -m "remove old code"
Ve sadece emin olmak için, son taahhütten gelen değişiklikleri görelim.
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 {
Mükemmel - atomik işleme sadece silme işlemlerinin dahil edildiğini görebilirsiniz. Şimdi işi bitirelim ve gerisini halledelim.
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;
}
Son olarak, son taahhüdün yalnızca seçici değişiklikleri içerdiğini görebilirsiniz.