Katakanlah example.css
penampilan Anda seperti ini:
.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;
}
Sekarang mari kita ubah penyeleksi gaya di blok tengah, dan sementara kita melakukannya, hapus beberapa gaya komentar lama yang tidak kita perlukan lagi.
.classname {
width: 440px;
}
#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
.another {
width: 420px;
}
Itu mudah, sekarang mari kita komit. Tapi tunggu, saya ingin mempertahankan pemisahan logis dari perubahan dalam kontrol versi untuk peninjauan kode langkah-sederhana, dan agar tim saya dan saya dapat dengan mudah mencari riwayat komit untuk spesifik.
Menghapus kode lama secara logis terpisah dari perubahan pemilih gaya lainnya. Kita akan membutuhkan dua komitmen berbeda, jadi mari kita tambahkan bakhil untuk tambalan.
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, sepertinya perubahannya terlalu dekat, jadi git telah mencampurkan keduanya.
Bahkan mencoba membaginya dengan menekan smemiliki hasil yang sama karena pemisahan itu tidak cukup granular untuk perubahan presisi kami. Diperlukan garis yang tidak berubah di antara garis yang diubah agar git dapat membagi patch secara otomatis.
Jadi, mari kita edit secara manual dengan menekane
Stage this hunk [y,n,q,a,d,/,e,?]? e
git akan membuka tambalan di editor pilihan kami.
# 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.
Mari kita tinjau tujuannya:
Bagaimana saya bisa menambahkan penghapusan komentar CSS hanya untuk komit berikutnya?
Kami ingin membaginya menjadi dua komitmen:
Komit pertama melibatkan penghapusan beberapa baris (penghapusan komentar).
Untuk menghapus baris yang dikomentari, biarkan saja, mereka sudah ditandai untuk melacak penghapusan dalam kontrol versi seperti yang kita inginkan.
-/*#field_teacher_id {
- display: block;
-} */
Komit kedua adalah perubahan, yang dilacak dengan merekam penghapusan dan penambahan:
Penghapusan (garis pemilih lama dihapus)
Untuk menjaga garis pemilih yang lama (jangan hapus mereka selama komit ini), kami ingin ...
Untuk menghapus '-' garis, buatlah ''
... yang secara harfiah berarti mengganti -
tanda minus dengan
karakter spasi .
Jadi tiga baris ini ...
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
... akan menjadi ( perhatikan spasi tunggal pada yang pertama dari semua 3 baris):
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
Tambahan (garis pemilih baru ditambahkan)
Agar tidak memperhatikan garis pemilih baru yang ditambahkan selama komit ini, kami ingin ...
Untuk menghapus garis '+', hapuslah.
... yang secara harfiah berarti menghapus seluruh baris:
+#user-register form.table-form .field-type-checkbox label {
(Bonus: Jika Anda menggunakan vim sebagai editor Anda, tekan dduntuk menghapus baris. Pengguna Nano tekan Ctrl+ K)
Editor Anda akan terlihat seperti ini ketika Anda menyimpan:
# 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.
Sekarang mari kita komit.
git commit -m "remove old code"
Dan untuk memastikan, mari kita lihat perubahan dari komit terakhir.
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 {
Sempurna - Anda dapat melihat bahwa hanya penghapusan yang dimasukkan dalam komit atom. Sekarang mari kita selesaikan pekerjaan dan lakukan sisanya.
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;
}
Akhirnya Anda dapat melihat komit terakhir hanya mencakup perubahan pemilih.