당신의 example.css
모습이 다음과 같다고 가정 해 봅시다 .
.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;
}
이제 중간 블록에서 스타일 선택기를 변경해 보겠습니다. 이제 주석이 달린 스타일을 삭제하면 더 이상 필요하지 않습니다.
.classname {
width: 440px;
}
#user-register form.table-form .field-type-checkbox label {
width: 300px;
}
.another {
width: 420px;
}
그것은 쉬웠다, 이제 커밋하자. 그러나 잠깐, 간단한 단계별 코드 검토를 위해 버전 제어 변경 사항을 논리적으로 분리하여 팀과 커밋 내역을 쉽게 검색 할 수 있도록하고 싶습니다.
기존 코드 삭제는 다른 스타일 선택기 변경과 논리적으로 분리되어 있습니다. 우리는 두 개의 별개의 커밋이 필요하므로 패치를 위해 덩어리를 추가합시다.
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,?]?
혹시, 변경 사항이 너무 가깝기 때문에 git이 변경했습니다.
스플릿이 정밀한 변경을 위해 충분히 세분화되지 않았기 때문에 프레스 를 통해 스플릿을 시도해도 s동일한 결과를 얻습니다.git이 패치를 자동으로 분할하려면 변경된 줄 사이에 변경되지 않은 줄이 필요 합니다.
을 눌러 수동으로 편집 하겠습니다e
Stage this hunk [y,n,q,a,d,/,e,?]? e
git은 선택한 편집기에서 패치를 엽니 다.
# 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.
목표를 검토해 봅시다 :
다음 커밋에만 CSS 주석 제거를 추가하려면 어떻게해야합니까?
이것을 두 개의 커밋으로 나누고 싶습니다.
첫 번째 커밋은 일부 줄을 삭제합니다 (코멘트 제거).
주석 처리 된 행을 제거하려면 해당 행을 그대로 두십시오. 원하는대로 버전 제어에서 삭제를 추적하도록 이미 표시되어 있습니다.
-/*#field_teacher_id {
- display: block;
-} */
두 번째 커밋은 변경 사항이며, 삭제와 추가 사항을 모두 기록하여 추적됩니다.
삭제 (이전 선택기 행 제거)
이전 선택기 행을 유지하려면 (이 커밋 중에 삭제하지 마십시오) ...
'-'줄을 제거하려면 ''를 만드십시오.
문자 그대로 빼기 -
기호 를 공백 문자로 바꾸는 것을 의미 합니다.
이 세 줄은 ...
-
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
...이 될 것이다 ( 통지 3 개 라인의 처음에 하나의 공간) :
form.table-form #field_teacher + label,
form.table-form #field_producer_distributor + label {
추가 (새로운 선택기 라인 추가)
이 커밋 중에 추가 된 새로운 선택기 라인에주의를 기울이지 않기 위해 ...
'+'줄을 제거하려면 삭제하십시오.
문자 그대로 전체 줄을 삭제하는 것을 의미합니다.
+#user-register form.table-form .field-type-checkbox label {
(Bonus : vim 을 편집기로 사용하는 경우을 눌러 dd줄을 삭제합니다. Nano 사용자는 Ctrl+을 누름 K)
저장할 때 편집기는 다음과 같아야합니다.
# 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.
이제 커밋합시다.
git commit -m "remove old code"
그리고 마지막 커밋의 변경 사항을 확인하십시오.
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 {
완벽-삭제 만 해당 원자 커밋에 포함되어 있음을 알 수 있습니다. 이제 작업을 마치고 나머지는 커밋하십시오.
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;
}
마지막으로 마지막 커밋에 선택기 변경 사항 만 포함되어 있음을 알 수 있습니다.