Hãy nói rằng bạn example.css
trông như thế này:
.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;
}
Bây giờ, hãy thay đổi các bộ chọn kiểu ở khối giữa và trong khi chúng ta đang ở đó, hãy xóa một số kiểu nhận xét cũ mà chúng ta không cần nữa.
.classname {
width: 440px;
}
#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
.another {
width: 420px;
}
Điều đó thật dễ dàng, bây giờ hãy cam kết. Nhưng chờ đã, tôi muốn duy trì sự phân tách hợp lý các thay đổi trong kiểm soát phiên bản để xem xét mã theo từng bước đơn giản và để nhóm của tôi và tôi có thể dễ dàng tìm kiếm lịch sử cam kết để biết chi tiết cụ thể.
Xóa mã cũ tách biệt về mặt logic với thay đổi bộ chọn kiểu khác. Chúng ta sẽ cần hai cam kết riêng biệt, vì vậy hãy thêm hunk cho một bản vá.
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,?]?
Rất tiếc, có vẻ như các thay đổi quá gần, vì vậy git đã kết hợp chúng lại với nhau.
Ngay cả khi cố gắng tách nó bằng cách nhấn scũng có kết quả tương tự vì sự phân tách không đủ chi tiết cho những thay đổi chính xác của chúng tôi. Các dòng không thay đổi được yêu cầu giữa các dòng thay đổi để git có thể tự động phân chia các bản vá.
Vì vậy, hãy chỉnh sửa thủ công bằng cách nhấne
Stage this hunk [y,n,q,a,d,/,e,?]? e
git sẽ mở các bản vá trong trình soạn thảo của chúng tôi lựa chọn.
# 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.
Hãy xem lại mục tiêu:
Làm cách nào tôi có thể thêm loại bỏ nhận xét CSS vào lần xác nhận tiếp theo?
Chúng tôi muốn chia điều này thành hai cam kết:
Cam kết đầu tiên liên quan đến việc xóa một số dòng (xóa bình luận).
Để xóa các dòng nhận xét, chỉ cần để chúng một mình, chúng đã được đánh dấu để theo dõi việc xóa trong kiểm soát phiên bản như chúng ta muốn.
-/*#field_teacher_id {
- display: block;
-} */
Cam kết thứ hai là một thay đổi, được theo dõi bằng cách ghi lại cả xóa và bổ sung:
Xóa (dòng chọn cũ đã bị xóa)
Để giữ các dòng chọn cũ (không xóa chúng trong lần xác nhận này), chúng tôi muốn ...
Để xóa các dòng '-', tạo chúng ''
... nghĩa đen là thay thế trừ -
dấu hiệu với một không gian
nhân vật.
Vì vậy, ba dòng ...
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
... sẽ trở thành ( chú ý khoảng trống duy nhất ở đầu tiên của cả 3 dòng):
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
Bổ sung (thêm dòng chọn mới)
Để không chú ý đến dòng bộ chọn mới được thêm vào trong lần xác nhận này, chúng tôi muốn ...
Để xóa các dòng '+', hãy xóa chúng.
... có nghĩa đen là xóa toàn bộ dòng:
+#user-register form.table-form .field-type-checkbox label {
(Phần thưởng: Nếu bạn tình cờ sử dụng vim làm trình chỉnh sửa của mình, hãy nhấn ddđể xóa một dòng. Người dùng Nano nhấn Ctrl+ K)
Trình chỉnh sửa của bạn sẽ trông như thế này khi bạn lưu:
# 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.
Bây giờ hãy cam kết.
git commit -m "remove old code"
Và để chắc chắn, chúng ta hãy xem những thay đổi từ lần cam kết cuối cùng.
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 {
Hoàn hảo - bạn có thể thấy rằng chỉ có các thao tác xóa được đưa vào cam kết nguyên tử đó. Bây giờ hãy hoàn thành công việc và cam kết phần còn lại.
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;
}
Cuối cùng, bạn có thể thấy cam kết cuối cùng chỉ bao gồm các thay đổi của bộ chọn.