จากความคิดเห็น:
เข้ากันไม่ได้กับไฟล์ --interactive option
อันที่จริง ... มันจะไม่เข้ากันกับ Git 2.29 (ไตรมาสที่ 4 ปี 2020): " git rebase -i
" ( คน ) เรียนรู้ตัวเลือกมากขึ้นอีกนิด
ตัวเลือกที่เข้ากันได้กับ:
ดูกระทำ 6160b2e (26 สิงหาคม 2020) โดยJunio C Hamano (gitster
)
ดูกระทำ 2712669 (17 สิงหาคม 2020) และกระทำ ef484ad (13 กรกฎาคม 2020) โดยRohit Ashiwal (r1walz
)
ดูกระทำ a3894aa , กระทำ 7573cec , กระทำ e8cbe21 (17 สิงหาคม 2020) โดยฟิลลิปไม้ (phillipwood
)
(ผสานโดยJunio C Hamano - gitster
-ในการกระทำ 9c31b19 , 03 ก.ย. 2020)
rebase -i
: การสนับสนุน --ignore-date
Original-patch-by: Rohit Ashiwal
ลงนามโดย Phillip Wood
Rebase ถูกนำไปใช้กับแบ็กเอนด์สองแบบ - ' apply
' และ ' merge
' ซึ่งแต่ละแบ็กเอนด์สนับสนุนชุดตัวเลือกที่แตกต่างกัน
โดยเฉพาะอย่างยิ่งการใช้แบ็กเอนด์รองรับตัวเลือกจำนวนมากที่ดำเนินการโดย ' ( man ) ' ที่ไม่ได้ใช้งานในแบ็กเอนด์การผสาน
ซึ่งหมายความว่าตัวเลือกที่มีจะแตกต่างกันไปขึ้นอยู่กับว่าใช้แบ็กเอนด์ใดซึ่งทำให้สับสนgit am
แพตช์นี้เพิ่มการรองรับ--ignore-date
ตัวเลือกในการผสานแบ็กเอนด์
ตัวเลือกนี้ใช้เวลาปัจจุบันเป็นวันที่ของผู้เขียนแทนที่จะใช้วันที่ของผู้เขียนเดิมซ้ำเมื่อเขียนคอมมิตใหม่
เราดูแลจัดการการรวม--ignore-date
และ--committer-date-is-author-date
ในลักษณะเดียวกับการใช้แบ็กเอนด์
และ:
rebase
: เพิ่ม --reset-author-date
ช่วยเหลือโดย: Junio C Hamano
ลงนามโดย: Rohit Ashiwal
การคอมมิตก่อนหน้านี้แนะนำ--ignore-date
แฟล็กไปrebase -i
แต่ชื่อค่อนข้างคลุมเครือเนื่องจากไม่ได้บอกว่าวันที่เขียนหรือวันที่คอมมิทเตอร์ถูกละเว้น
เพิ่มนามแฝงเพื่อสื่อถึงวัตถุประสงค์ที่แน่นอน
--reset-author-date
นอกจากนี้:
rebase -i
: support --committer-date-is-author-date
Original-patch-by: Rohit Ashiwal
ลงนามโดย Phillip Wood
แพตช์นี้เพิ่มการรองรับ--committer-date-is-author-date
ตัวเลือกในการผสานแบ็กเอนด์
ตัวเลือกนี้ใช้วันที่สร้างของการกระทำที่ถูกเขียนใหม่เป็นวันที่คอมมิตเตอร์เมื่อสร้างคอมมิตใหม่
git rebase
ตอนนี้รวมอยู่ในหน้าคน :
--committer-date-is-author-date
:
แทนที่จะใช้เวลาปัจจุบันเป็นวันที่คอมมิทเตอร์ให้ใช้วันที่สร้างคอมมิตที่ถูก rebased เป็นวันที่คอมมิตเตอร์ ตัวเลือกนี้จะหมายถึง
--force-rebase
git rebase
ยังรวมอยู่ในหน้าคน :
--ignore-date:
แฟล็กนี้ถูกส่งผ่านไปยัง 'git am' เพื่อเปลี่ยนวันที่สร้างของการคอมมิตที่ rebased แต่ละครั้ง (ดูgit am
)
โปรดทราบว่าใน 2.29 (ด้านบน) คำสั่งย่อย" --committer-date-is-author-date
" option ของ " rebase
" และ " am
" สูญเสียที่อยู่อีเมลโดยไม่ได้ตั้งใจซึ่งได้รับการแก้ไขด้วย Git 2.29.1 (Q4 2020)
ดูกระทำ 5f35edd , กระทำ 16b0bb9 , กระทำ 56706db (23 ตุลาคม 2020) โดยเจฟฟ์คิง (peff
)
(ผสานโดยJunio C Hamano - gitster
-ในการกระทำ f34687d , 26 ต.ค. 2020)
am
: แก้ไขอีเมลเสียด้วย --committer-date-is-author-date
ลงนามโดย: Jeff King
Commit e8cbe2118a ( am
: หยุดการส่งออกGIT_COMMITTER_DATE,
2020/08/17) เขียนรหัสสำหรับการตั้งค่าวัน committer เพื่อการใช้งานfmt_ident()
มากกว่าการตั้งค่าตัวแปรสภาพแวดล้อมและให้commit_tree()
จัดการกับมัน
แต่มีข้อบกพร่องสองประการ:
- เราใช้สตริงอีเมลของผู้เขียนแทนอีเมลคอมมิตเตอร์
- เมื่อแยกวิเคราะห์ committer Ident เราใช้ตัวแปรที่ไม่ถูกต้องในการคำนวณความยาวของอีเมลส่งผลให้มันเป็นสตริงที่มีความยาวเป็นศูนย์เสมอ
การกระทำนี้แก้ไขทั้งสองอย่างซึ่งทำให้การทดสอบตัวเลือกนี้ของเราผ่านapply
แบ็กเอนด์rebase " " ประสบความสำเร็จในขณะนี้
และ:
rebase
: แก้ไขอีเมลที่เสียด้วย --committer-date-is-author-date
รายงานโดย: VenomVendor
Signed-off-off-by: Jeff King
Commit 7573cec52c ( "rebase -i สนับสนุน --committer-วันที่จะเขียนวัน" 2020/08/17, Git-v2.29.0 RC0 - ผสานการระบุไว้ในชุด # 13 ) คัดลอกโค้ด committer ident-แยก จากbuiltin/am.c
.
และในการทำเช่นนั้นมันได้คัดลอกจุดบกพร่องที่เราตั้งค่าอีเมลเป็นสตริงว่างเสมอ
เราแก้ไขเวอร์ชันgit-am
ในการกระทำก่อนหน้านี้ การกระทำนี้แก้ไขรหัสที่คัดลอก
git rebase --root
หรือ-i
ด้วย--reset-author-date
จะใช้งานได้ ดูคำตอบของฉันด้านล่าง