GoGPT Best VPN GoSearch

ไอคอน Fav ของ OnWorks

git-log - ออนไลน์ใน Cloud

เรียกใช้ git-log ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง git-log ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


git-log - แสดงบันทึกการคอมมิต

เรื่องย่อ


คอมไพล์ เข้าสู่ระบบ [ ] [ ] [[--] ...]

DESCRIPTION


แสดงบันทึกการคอมมิต

คำสั่งใช้ตัวเลือกที่ใช้กับคำสั่ง git rev-list เพื่อควบคุมสิ่งที่แสดง
และวิธีและตัวเลือกที่ใช้กับคำสั่ง git diff-* เพื่อควบคุมการเปลี่ยนแปลงแต่ละคำสั่ง
คอมมิชชันแนะนำจะปรากฏขึ้น

OPTIONS


--ติดตาม
แสดงรายการประวัติของไฟล์ต่อไปนอกเหนือจากการเปลี่ยนชื่อ (ใช้ได้กับไฟล์เดียวเท่านั้น)

--no-decorate, --decorate[=สั้น|เต็ม|ไม่]
พิมพ์ชื่อผู้อ้างอิงของการกระทำใด ๆ ที่แสดง ถ้า Short ระบุไว้ ref
คำนำหน้าชื่อ กรรมการ/หัวหน้า/, อ้างอิง/แท็ก/ และ อ้างอิง/รีโมท/ จะไม่ถูกพิมพ์ ถ้า เต็ม
ถูกระบุ ชื่อผู้อ้างอิงแบบเต็ม (รวมถึงคำนำหน้า) จะถูกพิมพ์ออกมา ตัวเลือกเริ่มต้น
is Short .

--แหล่งที่มา
พิมพ์ชื่อผู้อ้างอิงที่กำหนดในบรรทัดคำสั่งซึ่งแต่ละการคอมมิตถึง

--use-mailmap
ใช้ไฟล์เมลแมปเพื่อจับคู่ชื่อผู้แต่งและผู้คอมมิต และที่อยู่อีเมลกับรูปแบบบัญญัติ
ชื่อจริงและที่อยู่อีเมล ดู git-shortlog(1)

--เต็มความแตกต่าง
หากไม่มีแฟล็กนี้ git log -p ... แสดงการกระทำที่สัมผัสเส้นทางที่ระบุ
และแตกต่างไปตามเส้นทางที่ระบุเหมือนกัน ด้วยเหตุนี้ จึงแสดงส่วนต่างทั้งหมดสำหรับ
กระทำการที่สัมผัสเส้นทางที่ระบุ; นี่หมายความว่า " ..."จำกัดเท่านั้น
คอมมิต และไม่จำกัดดิฟสำหรับคอมมิตเหล่านั้น

โปรดทราบว่าสิ่งนี้มีผลกับประเภทเอาต์พุตตามความแตกต่างทั้งหมด เช่น ที่สร้างโดย --stat
เป็นต้น

--log-ขนาด
รวมบรรทัด “ขนาดบันทึก ” ในผลลัพธ์สำหรับการคอมมิตแต่ละครั้งโดยที่ เป็น
ความยาวของข้อความของการกระทำนั้นเป็นไบต์ มีวัตถุประสงค์เพื่อเพิ่มความเร็วเครื่องมือที่อ่านบันทึก
ข้อความจากเอาต์พุตบันทึก git โดยอนุญาตให้จัดสรรพื้นที่ล่วงหน้า

-L , : , -L : :
ติดตามวิวัฒนาการของช่วงเส้นที่กำหนดโดย " , " (หรือชื่อฟังก์ชัน
regex ) ภายใน . คุณไม่สามารถให้ตัว จำกัด pathspec ใด ๆ นี่คือ
ปัจจุบัน จำกัด ให้เดินโดยเริ่มจากการแก้ไขครั้งเดียว กล่าวคือ คุณสามารถให้ .เท่านั้น
อาร์กิวเมนต์การแก้ไขที่เป็นบวกศูนย์หรือหนึ่งข้อ คุณสามารถระบุตัวเลือกนี้ได้มากกว่าหนึ่งครั้ง

และ สามารถใช้รูปแบบใดรูปแบบหนึ่งเหล่านี้:

· ตัวเลข

ถ้า หรือ เป็นตัวเลข ระบุจำนวนบรรทัดแบบสัมบูรณ์ (lines count
จาก 1).

· /regex/

แบบฟอร์มนี้จะใช้บรรทัดแรกที่ตรงกับ POSIX regex ที่กำหนด ถ้า คือ
regex มันจะค้นหาจากจุดสิ้นสุดของช่วง -L ก่อนหน้า หากมี มิฉะนั้น
ตั้งแต่เริ่มต้นไฟล์. ถ้า คือ “^/regex/” จะค้นหาตั้งแต่เริ่มต้น
ไฟล์. ถ้า เป็น regex มันจะค้นหาโดยเริ่มต้นที่บรรทัดที่กำหนดโดย .

· +offset หรือ -offset

ใช้ได้เฉพาะสำหรับ และจะระบุจำนวนบรรทัดก่อนหรือหลัง
บรรทัดที่กำหนดโดย .

ถ้า ": ” ให้แทน และ , มันเป็นนิพจน์ทั่วไป
ที่แสดงถึงช่วงจากบรรทัด funcname แรกที่ตรงกัน จนถึง
บรรทัด funcname ถัดไป “: ” ค้นหาจากจุดสิ้นสุดของช่วง -L ก่อนหน้า if
ใดๆ หรืออย่างอื่นตั้งแต่เริ่มต้นไฟล์ “^: ” ค้นหาตั้งแต่เริ่มต้นไฟล์


แสดงเฉพาะคอมมิตในช่วงการแก้ไขที่ระบุ เมื่อไม่มี เป็น
ระบุ ค่าเริ่มต้นเป็น HEAD (เช่น ประวัติทั้งหมดที่นำไปสู่การส่งปัจจุบัน)
origin..HEAD ระบุการคอมมิตทั้งหมดที่สามารถเข้าถึงได้จากการคอมมิตปัจจุบัน (เช่น HEAD)
แต่ไม่ใช่จากแหล่งกำเนิด สำหรับรายการวิธีสะกดคำทั้งหมด , ดู
ระบุ ช่วง ส่วนหนึ่งของ gitrevisions(7)

[--] ...
แสดงเฉพาะคอมมิตที่เพียงพอที่จะอธิบายว่าไฟล์ตรงกับที่ระบุอย่างไร
เส้นทางที่มาเป็น ดู ประวัติขององค์กร การทำให้เข้าใจง่าย ด้านล่างสำหรับรายละเอียดและอื่นๆ
โหมดลดความซับซ้อน

เส้นทางอาจต้องขึ้นต้นด้วย ''--'' เพื่อแยกเส้นทางออกจากตัวเลือกหรือ
ช่วงการแก้ไขเมื่อเกิดความสับสน

กระทำ การ จำกัด
นอกจากการระบุช่วงของการคอมมิตที่ควรแสดงรายการโดยใช้สัญลักษณ์พิเศษ
อธิบายไว้ในคำอธิบาย อาจใช้การจำกัดการคอมมิตเพิ่มเติม

การใช้ตัวเลือกเพิ่มเติมโดยทั่วไปจะจำกัดผลลัพธ์เพิ่มเติม (เช่น --since= จำกัดให้
กระทำใหม่กว่า และใช้กับ --grep= ขีด จำกัด เพิ่มเติมในการกระทำ
ซึ่งข้อความบันทึกมีบรรทัดที่ตรงกัน ) เว้นแต่จะระบุไว้เป็นอย่างอื่น

โปรดทราบว่าสิ่งเหล่านี้จะถูกนำไปใช้ก่อนที่จะส่งคำสั่งซื้อและตัวเลือกการจัดรูปแบบ เช่น
--ย้อนกลับ.

- , -NS , --max-count=
จำกัดจำนวนคอมมิตที่จะส่งออก

--skip=
ข้ามไป จำนวน คอมมิตก่อนที่จะเริ่มแสดงเอาต์พุตการคอมมิต

--ตั้งแต่= , --หลัง=
แสดงการกระทำที่ใหม่กว่าวันที่ระบุ

--จนกระทั่ง= , --ก่อน=
แสดงการกระทำที่เก่ากว่าวันที่ระบุ

--ผู้เขียน= , --committer=
จำกัดผลลัพธ์ของการคอมมิตให้เป็นรายการที่มีบรรทัดส่วนหัวของผู้เขียน/คอมมิตเตอร์ที่ตรงกับ
รูปแบบที่ระบุ (นิพจน์ปกติ) มีมากกว่าหนึ่ง --author= , มุ่งมั่น
ซึ่งผู้เขียนตรงกับรูปแบบใด ๆ ที่กำหนด (คล้ายกับหลาย
--committer= ).

--grep-reflog=
จำกัดผลลัพธ์ของคอมมิตให้เป็นรายการที่มีรายการ reflog ที่ตรงกับรูปแบบที่ระบุ
(นิพจน์ปกติ). มีมากกว่าหนึ่ง --grep-reflog คอมมิตข้อความ reflog
ตรงกับรูปแบบใด ๆ ที่กำหนดจะถูกเลือก การใช้ตัวเลือกนี้ถือเป็นข้อผิดพลาดเว้นแต่
--walk-reflogs กำลังใช้งานอยู่

--grep=
จำกัดเอาต์พุตการคอมมิตให้เป็นรายการที่มีข้อความบันทึกที่ตรงกับรูปแบบที่ระบุ
(นิพจน์ปกติ). มีมากกว่าหนึ่ง --grep= , กระทำการที่มีข้อความ
ตรงกับรูปแบบใดรูปแบบหนึ่งที่เลือกไว้ (แต่ดู --all-match)

เมื่อ --show-notes มีผล ข้อความจากบันทึกจะจับคู่เหมือนกับว่า
ส่วนหนึ่งของข้อความบันทึก

--ทุกการแข่งขัน
จำกัดผลลัพธ์ของการคอมมิตให้เป็นผลลัพธ์ที่ตรงกับทั้งหมด --grep แทนที่จะเป็นตัวที่
ตรงกับอย่างน้อยหนึ่ง

--invert-grep
จำกัดผลลัพธ์ของการคอมมิตให้เป็นรายการที่มีข้อความบันทึกที่ไม่ตรงกับรูปแบบ
ระบุด้วย --grep= .

-i, --regexp-ignore-case
จับคู่รูปแบบการจำกัดนิพจน์ทั่วไปโดยไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

--พื้นฐาน-regexp
พิจารณารูปแบบการจำกัดเป็นนิพจน์ทั่วไปพื้นฐาน นี่คือค่าเริ่มต้น

-E, --ขยาย-regexp
พิจารณารูปแบบการจำกัดที่จะขยายนิพจน์ทั่วไปแทน
นิพจน์ทั่วไปพื้นฐานเริ่มต้น

-F, --fixed-สตริง
พิจารณารูปแบบการจำกัดที่จะเป็นสตริงคงที่ (อย่าตีความรูปแบบเป็น a
นิพจน์ทั่วไป)

--perl-regexp
พิจารณารูปแบบการจำกัดให้เป็นนิพจน์ทั่วไปที่เข้ากันได้กับ Perl ต้องใช้
libpcre ที่จะรวบรวม

--remove-ว่างเปล่า
หยุดเมื่อเส้นทางที่กำหนดหายไปจากต้นไม้

--ผสาน
พิมพ์เฉพาะการรวมคอมมิต ซึ่งเหมือนกับ --min-parents=2

--ไม่มีการผสาน
อย่าพิมพ์คอมมิตกับพาเรนต์มากกว่าหนึ่งคน นี่ก็เหมือนกับ
--max-ผู้ปกครอง = 1

--min-parents= , --max-parents= , --no-min-parents, --no-max-parents
แสดงเฉพาะคอมมิตที่มีอย่างน้อย (หรือมากที่สุด) ที่พาเรนต์คอมมิชชันหลายรายการ ใน
โดยเฉพาะ --max-parents=1 เหมือนกับ --no-merges --min-parents=2 เหมือนกับ
--ผสาน --max-parents=0 ให้การคอมมิตทั้งหมดและ --min-parents=3 octopus ทั้งหมด
ผสาน

--no-min-parents และ --no-max-parents รีเซ็ตขีดจำกัดเหล่านี้ (เป็นไม่จำกัด) อีกครั้ง
รูปแบบเทียบเท่าคือ --min-parents=0 (คอมมิชชันใดๆ มี 0 parents ขึ้นไป) และ
--max-parents=-1 (ตัวเลขติดลบแสดงว่าไม่มีขีดจำกัดบน)

--ผู้ปกครองคนแรก
ติดตามเฉพาะการคอมมิตพาเรนต์แรกเมื่อเห็นคอมมิตการรวม ตัวเลือกนี้สามารถให้
ภาพรวมที่ดีขึ้นเมื่อดูวิวัฒนาการของหัวข้อเฉพาะเพราะ
การรวมเข้ากับสาขาหัวข้อมักจะเกี่ยวกับการปรับอัปสตรีมจาก .เท่านั้น
เป็นครั้งคราว และตัวเลือกนี้ช่วยให้คุณละเว้นการคอมมิตแต่ละรายการที่นำเข้ามา
สู่ประวัติศาสตร์ของคุณโดยการรวมกันดังกล่าว ไม่สามารถใช้ร่วมกับ --bisect

--ไม่
กลับความหมายของ ^ คำนำหน้า (หรือไม่มี) สำหรับการแก้ไขต่อไปนี้ทั้งหมด
ตัวระบุขึ้นไป - ไม่ใช่

--ทั้งหมด
แกล้งทำเป็นว่าผู้อ้างอิงทั้งหมดใน refs/ อยู่ในบรรทัดคำสั่งเป็น .

--สาขา[= ]
แกล้งทำเป็นว่าผู้อ้างอิงทั้งหมดใน refs/heads แสดงอยู่ในบรรทัดคำสั่งเป็น .
If ได้รับ จำกัด กิ่งก้านให้ตรงกับเชลล์โกลบอล ถ้ารูปแบบ
ขาด ?, *หรือ [, /* ในตอนท้ายเป็นนัย

--แท็ก[= ]
แกล้งทำเป็นว่าผู้อ้างอิงทั้งหมดใน refs/tags แสดงอยู่ในบรรทัดคำสั่งเป็น . ถ้า
จะได้รับ จำกัดแท็กให้ตรงกับเชลล์โกลบอลที่กำหนด ถ้าลายขาด ?,
*หรือ [, /* ในตอนท้ายเป็นนัย

--รีโมท[= ]
แกล้งทำเป็นว่าผู้อ้างอิงทั้งหมดใน refs/remotes แสดงอยู่ในบรรทัดคำสั่งเป็น .
If ได้รับ จำกัด สาขาการติดตามระยะไกลให้ตรงกับเชลล์ที่กำหนด
ลูกโลก ถ้าลายขาด ?, *หรือ [, /* ในตอนท้ายเป็นนัย

--glob=
แสร้งทำเป็นว่าผู้อ้างอิงทั้งหมดตรงกับเชลล์ glob มีการระบุไว้ใน
บรรทัดคำสั่ง as . ชั้นนำ ผู้อ้างอิง/จะถูกเติมหน้าโดยอัตโนมัติหากไม่มี ถ้า
ขาดลวดลาย ?, *หรือ [, /* ในตอนท้ายเป็นนัย

--exclude=
ไม่รวมผู้อ้างอิงที่ตรงกัน ที่ต่อไป --ทั้งหมด --สาขา --tags,
--remotes หรือ --glob จะพิจารณาเป็นอย่างอื่น การทำซ้ำของตัวเลือกนี้สะสม
รูปแบบการยกเว้นขึ้นไป --all, --branches, --tags, --remotes หรือ --glob
ตัวเลือก (ตัวเลือกหรือข้อโต้แย้งอื่น ๆ ไม่ชัดเจนรูปแบบสะสม)

รูปแบบที่กำหนดไม่ควรเริ่มต้นด้วย refs/heads, refs/tags หรือ refs/remotes เมื่อ
นำไปใช้กับ --branches, --tags หรือ --remotes ตามลำดับ และต้องขึ้นต้นด้วย
refs/ เมื่อใช้กับ --glob หรือ --all ถ้าตามหลัง /* ตั้งใจไว้ก็ต้องให้
อย่างชัดเจน

--reflog
แสร้งทำเป็นว่าอ็อบเจกต์ทั้งหมดที่กล่าวถึงโดย reflogs แสดงอยู่ในบรรทัดคำสั่งเป็น
.

--ละเว้น-หายไป
เมื่อเห็นชื่ออ็อบเจ็กต์ที่ไม่ถูกต้องในอินพุต ให้แสร้งทำเป็นว่าอินพุตไม่ถูกต้องไม่ได้
ให้

-- ทวิภาค
แสร้งทำเป็นว่า bisection ref refs/bisect/bad ถูกระบุและราวกับว่ามันเป็น
ตามด้วย --not และ bisection ที่ดี refs refs/bisect/good-* บนบรรทัดคำสั่ง
ไม่สามารถใช้ร่วมกับ --first-parent

-stdin
นอกจากนี้ยังมี ระบุไว้ในบรรทัดคำสั่ง อ่านจากมาตรฐาน
ป้อนข้อมูล. ถ้า -- เห็นตัวคั่นหยุดอ่านคอมมิตและเริ่มอ่านเส้นทางไปยัง
จำกัดผลลัพธ์

--เชอร์รี่มาร์ค
ชอบ --cherry-pick (ดูด้านล่าง) แต่ทำเครื่องหมายว่าเทียบเท่ากับ = แทนที่จะละเว้น
พวกเขา และที่ไม่เท่ากันกับ +

--เชอร์รี่เลือก
ละเว้นการคอมมิตใด ๆ ที่แนะนำการเปลี่ยนแปลงเช่นเดียวกับการคอมมิตอื่นใน "อีกด้านหนึ่ง"
เมื่อชุดของการคอมมิตถูกจำกัดด้วยความแตกต่างที่สมมาตร

ตัวอย่างเช่น หากคุณมีสองสาขา A และ B วิธีปกติในการแสดงรายการคอมมิตทั้งหมดบน
มีเพียงด้านเดียวเท่านั้นที่มี --left-right (ดูตัวอย่างด้านล่างในคำอธิบาย
ของตัวเลือก --left-right) อย่างไรก็ตาม มันแสดงให้เห็นความมุ่งมั่นที่ได้รับการคัดเลือกจากเชอร์รี่
จากสาขาอื่น (เช่น “ที่ 3 ใน b” อาจเลือกเชอร์รี่จากสาขา A)
ด้วยตัวเลือกนี้ การคอมมิตคู่ดังกล่าวจะไม่รวมอยู่ในเอาต์พุต

--ซ้ายเท่านั้น --ขวา-เท่านั้น
รายการจะกระทำเฉพาะด้านที่เกี่ยวข้องของช่วงสมมาตร กล่าวคือ เฉพาะช่วงที่
จะถูกทำเครื่องหมาย < resp. > โดย --left-right.

ตัวอย่างเช่น --cherry-pick --right-only A...B ละเว้นการคอมมิทจาก B ซึ่งอยู่ใน
A หรือแพตช์เทียบเท่ากับคอมมิตใน A กล่าวอีกนัยหนึ่ง นี่แสดงรายการ + คอมมิต
จาก git cherry AB ที่แม่นยำยิ่งขึ้น --cherry-pick --right-only --no-merges ให้
รายการที่แน่นอน

--เชอร์รี่
คำพ้องความหมายสำหรับ --right-only --cherry-mark --no-merges; มีประโยชน์ในการ จำกัด การส่งออกไปที่
การกระทำที่ฝ่ายเราและทำเครื่องหมายว่าถูกนำไปใช้กับอีกด้านหนึ่งของ
แยกประวัติด้วย git log --cherry upstream...mybranch คล้ายกับ git cherry
ต้นน้ำ mybranch

-g, --walk-reflogs
แทนที่จะเดินตามกลุ่มบรรพบุรุษ ให้เดินตามรายการอ้างอิงจากล่าสุด
หนึ่งถึงผู้สูงวัย เมื่อใช้อ็อพชันนี้ คุณจะไม่สามารถระบุคอมมิตที่จะแยกออกได้
(นั่นคือ, ^มุ่งมั่น, คอมมิชชั่น1..คอมมิท2และ คอมมิท1...คอมมิท2 ไม่สามารถใช้สัญกรณ์ได้)

ด้วย --pretty รูปแบบอื่นที่ไม่ใช่ oneline (ด้วยเหตุผลที่ชัดเจน) สิ่งนี้ทำให้เกิดผลลัพธ์
เพื่อให้มีข้อมูลพิเศษสองบรรทัดที่นำมาจากการอ้างอิง โดยค่าเริ่มต้น, ส่ง@{Nth}
สัญกรณ์ใช้ในเอาต์พุต เมื่อการคอมมิตเริ่มต้นถูกระบุเป็น ส่ง@{ตอนนี้},
เอาต์พุตยังใช้ คอมมิต@{ประทับเวลา} สัญกรณ์แทน ภายใต้ --pretty=oneline, the
ข้อความยืนยันจะขึ้นต้นด้วยข้อมูลนี้ในบรรทัดเดียวกัน ตัวเลือกนี้ไม่สามารถ
รวมกับ --reverse ดูสิ่งนี้ด้วย git-reflog(1)

--ผสาน
หลังจากการผสานที่ล้มเหลว ให้แสดงผู้อ้างอิงที่แตะไฟล์ที่มีข้อขัดแย้งและไม่มีอยู่ใน
ทุกหัวเพื่อรวม

--ขอบเขต
เอาต์พุตที่ไม่รวมขอบเขตคอมมิต การคอมมิตขอบเขตจะขึ้นต้นด้วย -

ประวัติขององค์กร การทำให้เข้าใจง่าย
บางครั้งคุณสนใจแค่บางส่วนของประวัติศาสตร์ เช่น ความมุ่งมั่น
การปรับเปลี่ยนโดยเฉพาะอย่างยิ่ง . แต่มีสองส่วนของ ประวัติขององค์กร การทำให้เข้าใจง่ายส่วนหนึ่ง
คือการเลือกคอมมิชชันและอีกอย่างคือวิธีการทำ เนื่องจากมีกลวิธีต่างๆ ในการ
ลดความซับซ้อนของประวัติศาสตร์

ตัวเลือกต่อไปนี้เลือกคอมมิตที่จะแสดง:


มุ่งมั่นที่จะแก้ไขที่กำหนด ถูกเลือก

--simplify-by-ตกแต่ง
คอมมิตที่อ้างอิงโดยบางสาขาหรือแท็กถูกเลือกไว้

โปรดทราบว่าสามารถแสดงการคอมมิตพิเศษเพื่อให้ประวัติที่มีความหมายได้

ตัวเลือกต่อไปนี้ส่งผลต่อวิธีการลดความซับซ้อน:

โหมดเริ่มต้น
ลดความซับซ้อนของประวัติศาสตร์เป็นประวัติศาสตร์ที่ง่ายที่สุดที่อธิบายสถานะสุดท้ายของต้นไม้
ง่ายที่สุดเพราะตัดกิ่งข้างบางกิ่งออกถ้าผลลัพธ์เหมือนกัน (เช่น
รวมสาขาที่มีเนื้อหาเดียวกัน)

--เต็มประวัติ
เหมือนกับโหมดเริ่มต้น แต่ไม่ตัดทอนประวัติบางส่วน

--หนาแน่น
แสดงเฉพาะการคอมมิตที่เลือก บวกกับบางรายการมีประวัติที่มีความหมาย

--กระจัดกระจาย
คอมมิตทั้งหมดในประวัติแบบง่ายจะแสดงขึ้น

--simplify-ผสาน
ตัวเลือกเพิ่มเติมสำหรับ --full-history เพื่อลบการผสานที่ไม่จำเป็นออกจากผลลัพธ์
ประวัติ เนื่องจากไม่มีการเลือกคอมมิตที่เอื้อต่อการผสานนี้

--บรรพบุรุษ-เส้นทาง
เมื่อกำหนดช่วงของการกระทำที่จะแสดง (เช่น คอมมิชชั่น1..คอมมิท2 or คอมมิท2 ^กระทำ1),
แสดงเฉพาะการกระทำที่มีอยู่โดยตรงในสายบรรพบุรุษระหว่าง คอมมิท1 และ
คอมมิท2กล่าวคือ กรรมที่เป็นทั้งทายาทของ คอมมิท1และบรรพบุรุษของ คอมมิท2.

คำอธิบายรายละเอียดเพิ่มเติมดังต่อไปนี้

สมมติว่าคุณระบุ foo เป็น the . เราจะเรียกการคอมมิตที่แก้ไข foo !TREESAME
และทรีซามที่เหลือ (ในดิฟกรอง foo พวกมันดูแตกต่างและเท่ากัน
ตามลำดับ)

ต่อไปนี้ เราจะอ้างอิงถึงประวัติตัวอย่างเดียวกันเสมอเพื่อแสดงให้เห็น
ความแตกต่างระหว่างการตั้งค่าการทำให้เข้าใจง่าย เราคิดว่าคุณกำลังกรองไฟล์
foo ในกราฟการคอมมิตนี้:

.-A---M---N---O---P---คิว
// / / / / /
IBCDEY
\ / / / / / /
`-------------' X

เส้นแนวนอนของประวัติศาสตร์ A---Q ถูกนำมาเป็นพาเรนต์แรกของการผสานแต่ละครั้ง NS
ความมุ่งมั่นคือ:

· ฉันเป็นคอมมิตเริ่มต้น ซึ่ง foo มีเนื้อหาว่า "asdf" และไฟล์ quux
มีเนื้อหาว่า “quux” การคอมมิตเริ่มต้นถูกเปรียบเทียบกับทรีที่ว่างเปล่า ดังนั้นฉันจึงเป็น
!ทรีเสม.

· ใน A foo มีเพียง “foo”

· B มีการเปลี่ยนแปลงเช่นเดียวกับ A การผสาน M นั้นไม่สำคัญและด้วยเหตุนี้ TREESAME สำหรับทุกคน
พ่อแม่

· C ไม่เปลี่ยน foo แต่การรวม N เปลี่ยนเป็น "foobar" ดังนั้นจึงไม่ใช่ TREESAME
ถึงผู้ปกครองคนใด

· D ตั้งค่า foo เป็น “baz” การผสาน O รวมสตริงจาก N และ D เป็น "foobarbaz";
กล่าวคือ ไม่ใช่ TREESAME สำหรับผู้ปกครองใดๆ

· E เปลี่ยน quux เป็น "xyzzy" และการรวม P รวมสตริงเป็น "quux xyzzy" พี คือ
TREESAME ถึง O แต่ไม่ใช่ E

· X เป็นรูทคอมมิทอิสระที่เพิ่มด้านไฟล์ใหม่ และ Y ได้แก้ไข Y คือ
TREESAME ถึง X การผสาน Q ของมันเพิ่มด้านให้กับ P และ Q คือ TREESAME ถึง P แต่ไม่ใช่สำหรับ Y

rev-list ย้อนประวัติศาสตร์ รวมถึงหรือไม่รวมการคอมมิตขึ้นอยู่กับว่า
ใช้ --full-history และ/หรือ parent rewrite (ผ่าน --parents หรือ --children) NS
มีการตั้งค่าต่อไปนี้

โหมดเริ่มต้น
คอมมิตจะถูกรวมไว้ด้วยหากไม่ใช่ TREESAME กับพาเรนต์ใดๆ (แม้ว่าจะเป็น
เปลี่ยนแล้ว ดู -- กระจัดกระจายด้านล่าง) หากการคอมมิตเป็นการผสาน และ TREESAME เป็นหนึ่ง
พ่อแม่ ให้ติดตามเฉพาะผู้ปกครองคนนั้น (ถึงจะมีพ่อแม่ TREESAME หลายคนก็ตามที
เพียงหนึ่งในนั้น) มิฉะนั้น ให้ปฏิบัติตามผู้ปกครองทั้งหมด.

ผลลัพธ์นี้ใน:

.-A---ไม่ใช่---O
///
NS

โปรดทราบว่ากฎจะปฏิบัติตามผู้ปกครอง TREESAME เท่านั้นหากมีให้ลบB
จากการพิจารณาโดยสิ้นเชิง C ถูกพิจารณาผ่าน N แต่เป็น TREESAME ทำการรูท
เปรียบได้กับต้นไม้เปล่า ฉันก็เลยเป็น !TREESAME

ความสัมพันธ์ระหว่างผู้ปกครองและเด็กสามารถมองเห็นได้เฉพาะกับ --parents แต่นั่นไม่ส่งผลต่อ
คอมมิตที่เลือกในโหมดเริ่มต้น ดังนั้นเราจึงแสดงบรรทัดพาเรนต์

--full-history โดยไม่ต้องเขียนหลักใหม่
โหมดนี้แตกต่างจากค่าเริ่มต้นในจุดหนึ่ง: ติดตามผู้ปกครองทั้งหมดของการผสานเสมอ
แม้ว่าจะเป็น TREESAME สำหรับหนึ่งในนั้น แม้ว่าจะมีการรวมมากกว่าหนึ่งด้านก็ตาม
คอมมิชชันที่รวมอยู่ด้วย ไม่ได้หมายความว่าการรวมตัวเองเป็น! ใน
ตัวอย่าง เราได้

IABNDOPQ

M ถูกแยกออกเนื่องจากเป็น TREESAME สำหรับทั้งพ่อและแม่ E, C และ B ต่างก็เดิน
แต่มีเพียง B เท่านั้นที่เป็น !TREESAME ดังนั้นตัวอื่นๆ จึงไม่ปรากฏ

โปรดทราบว่าหากไม่มีการเขียนใหม่โดยผู้ปกครอง จะไม่สามารถพูดถึง
ความสัมพันธ์หลัก/รองระหว่างการคอมมิต เราจึงแสดงให้เห็นว่าไม่มีการเชื่อมต่อ

--full-history กับผู้ปกครอง rewrite
คอมมิทสามัญจะรวมก็ต่อเมื่อเป็น !TREESAME (แม้ว่าจะสามารถเปลี่ยนแปลงได้
ดู -- กระจัดกระจายด้านล่าง)

การผสานรวมอยู่เสมอ อย่างไรก็ตาม รายชื่อผู้ปกครองของพวกเขาถูกเขียนใหม่: ข้างกัน
parent ให้ตัดการกระทำที่ไม่รวมตัวเองออกไป ส่งผลให้

.-A---M---N---O---P---คิว
// / / / /
ไอบี / ดี /
\ / / / / /
`-------------'

เปรียบเทียบกับ --full-history โดยไม่ต้องเขียนใหม่ด้านบน สังเกตว่า E ถูกตัดออกไปเพราะ
มันคือ TREESAME แต่รายการพาเรนต์ของ P ถูกเขียนใหม่เพื่อให้มีพาเรนต์ I ของ E อยู่ The
สิ่งเดียวกันนี้เกิดขึ้นกับ C และ N และ X, Y และ Q

นอกเหนือจากการตั้งค่าข้างต้น คุณสามารถเปลี่ยนได้ว่าจะให้ TREESAME มีผลกับการรวมหรือไม่:

--หนาแน่น
ภาระผูกพันที่เดินจะรวมอยู่ด้วยหากไม่ใช่ TREESAME กับผู้ปกครองคนใด

--กระจัดกระจาย
คอมมิชชันทั้งหมดที่เดินจะรวมอยู่ด้วย

โปรดทราบว่าหากไม่มี --full-history สิ่งนี้ยังคงทำให้การผสานง่ายขึ้น: หากผู้ปกครองคนใดคนหนึ่ง
คือ TREESAME เราติดตามเพียงอันเดียว ดังนั้นด้านอื่นๆ ของการผสานจะไม่มีวันหมด
เดิน

--simplify-ผสาน
ขั้นแรก สร้างกราฟประวัติในลักษณะเดียวกับ --full-history ด้วยการเขียนใหม่โดยผู้ปกครอง
ทำ (ดูด้านบน)

จากนั้นลดความซับซ้อนของการคอมมิต C เพื่อแทนที่ C 'ในประวัติสุดท้ายตาม
กฎต่อไปนี้:

· ตั้งค่า C' เป็น C

· แทนที่ P หลักแต่ละตัวของ C' ด้วยการลดความซับซ้อนของ P' ในกระบวนการ ให้ดรอป
บิดามารดาที่เป็นบรรพบุรุษของบิดามารดาอื่นหรือที่เป็น root กระทำ TREESAME to
ต้นไม้เปล่าและลบซ้ำ แต่ดูแลไม่ทิ้งพ่อแม่ทั้งหมด
เราเป็น TREESAME เพื่อ

· หากหลังจากเขียนพาเรนต์ใหม่ C' เป็นรูทหรือการรวมคอมมิต (มีศูนย์หรือ >1
parent), boundary commit หรือ !TREESAME ก็ยังคงอยู่ มิฉะนั้นจะถูกแทนที่
กับผู้ปกครองเพียงคนเดียว

ผลของสิ่งนี้แสดงให้เห็นได้ดีที่สุดโดยเปรียบเทียบกับ --full-history กับ parent
การเขียนใหม่ ตัวอย่างกลายเป็น:

.-อ---ม---น---อ
///
IBD
-
`---------'

สังเกตความแตกต่างที่สำคัญใน N, P และ Q ใน --full-history:

· ฉันลบรายชื่อผู้ปกครองของ N ออกแล้ว เนื่องจากเป็นบรรพบุรุษของผู้ปกครอง M อีกราย
ถึงกระนั้น N ยังคงอยู่เพราะเป็น !TREESAME

· ฉันลบรายชื่อผู้ปกครองของ P ในทำนองเดียวกัน P ถูกลบออกอย่างสมบูรณ์เพราะ
มีผู้ปกครองหนึ่งคนและเป็น TREESAME

· รายการพาเรนต์ของ Q ได้ Y แบบย่อเป็น X แล้ว X ถูกลบออกเพราะเป็น a
ราก TEESAME Q ถูกลบออกอย่างสมบูรณ์เนื่องจากมีผู้ปกครองหนึ่งคนและ is
ทรีเมม

ในที่สุดก็มีโหมดการทำให้เข้าใจง่ายที่ห้า:

--บรรพบุรุษ-เส้นทาง
จำกัดการแสดงการกระทำต่อผู้ที่อยู่ในสายบรรพบุรุษโดยตรงระหว่าง "จาก"
และ "to" กระทำในช่วงการคอมมิตที่กำหนด คือแสดงเฉพาะการคอมมิตที่เป็น
บรรพบุรุษของการกระทำ "ถึง" และลูกหลานของการกระทำ "จาก"

ตัวอย่างกรณีการใช้งาน ให้พิจารณาประวัติการคอมมิตต่อไปนี้:

ด---อี-------ฟ
-
ข---C---G---H---ฉัน---จ
-
A-------K ---------------L--M

เป็นประจำ ด..ม คำนวณชุดของการกระทำที่เป็นบรรพบุรุษของ M แต่ไม่รวม
ที่เป็นบรรพบุรุษของ ง. สิ่งนี้มีประโยชน์ในการดูว่าเกิดอะไรขึ้นกับประวัติศาสตร์
นำไปสู่ ​​M ตั้งแต่ D ในแง่ที่ว่า “M มีอะไรที่ไม่มีอยู่ใน D”
ผลลัพธ์ในตัวอย่างนี้จะเป็นการคอมมิตทั้งหมด ยกเว้น A และ B (และ D เอง ของ
แน่นอน).

เมื่อเราต้องการค้นหาสิ่งที่กระทำใน M ถูกปนเปื้อนด้วยจุดบกพร่องที่แนะนำโดย
D และจำเป็นต้องแก้ไข อย่างไรก็ตาม เราอาจต้องการดูเฉพาะส่วนย่อยของ ด..ม ที่มีความ
ที่จริงแล้วเป็นทายาทของ D คือ ยกเว้น C และ K นี่คือสิ่งที่
--ancestry-path ตัวเลือกไม่ นำไปใช้กับ ด..ม ช่วง ส่งผลให้:

จ-------ฉ
-
G---H---ฉัน---เจ
\
ล--ม

ตัวเลือก --simplify-by-decoration ช่วยให้คุณดูเฉพาะภาพใหญ่ของ
โทโพโลยีของประวัติโดยละเว้นการคอมมิตที่ไม่ได้อ้างอิงโดยแท็ก ภาระผูกพันคือ
ทำเครื่องหมายเป็น !TREESAME (กล่าวอีกนัยหนึ่ง เก็บไว้หลังจากอธิบายกฎการทำให้ประวัติศาสตร์ง่ายขึ้น
ด้านบน) หาก (1) มีการอ้างอิงโดยแท็กหรือ (2) พวกเขาเปลี่ยนเนื้อหาของเส้นทาง
ระบุไว้ในบรรทัดคำสั่ง การคอมมิตอื่นๆ ทั้งหมดจะถูกทำเครื่องหมายเป็น TREESAME (ขึ้นอยู่กับเป็น
ง่ายไป)

กระทำ การสั่งซื้อ
โดยค่าเริ่มต้น การคอมมิตจะแสดงตามลำดับเวลาย้อนกลับ

--วันที่-การสั่งซื้อ
ไม่แสดงผู้ปกครองก่อนที่เด็ก ๆ ทุกคนจะถูกแสดง แต่มิฉะนั้นแสดงว่ามีภาระผูกพันใน
คำสั่งการประทับเวลาคอมมิต

--ผู้เขียน-วันที่-คำสั่ง
ไม่แสดงผู้ปกครองก่อนที่เด็ก ๆ ทุกคนจะถูกแสดง แต่มิฉะนั้นแสดงว่ามีภาระผูกพันใน
ลำดับการประทับเวลาของผู้เขียน

--topo-คำสั่ง
ไม่แสดงผู้ปกครองก่อนที่เด็ก ๆ ทุกคนจะปรากฏและหลีกเลี่ยงการแสดงความมุ่งมั่นใน
ประวัติศาสตร์หลายบรรทัดผสมกัน

ตัวอย่างเช่น ในประวัติการคอมมิตดังนี้:

--------------1----2----4
-

3----5----6----8----
โดยที่ตัวเลขแสดงถึงลำดับการประทับเวลา git rev-list และเพื่อนด้วย
--date-order แสดงการคอมมิตในลำดับการประทับเวลา: 8 7 6 5 4 3 2 1

ด้วย --topo-order พวกเขาจะแสดง 8 6 5 3 7 4 2 1 (หรือ 8 7 4 2 6 5 3 1); แก่กว่าบ้าง
คอมมิทจะแสดงก่อนอันใหม่กว่าเพื่อหลีกเลี่ยงการแสดงคอมมิตจากสอง
แนวทางการพัฒนาแบบคู่ขนานผสมกัน

--ย้อนกลับ
ส่งออกการคอมมิตในลำดับที่กลับกัน ไม่สามารถใช้ร่วมกับ --walk-reflogs

วัตถุ การข้ามผ่าน
ตัวเลือกเหล่านี้ส่วนใหญ่กำหนดเป้าหมายสำหรับการบรรจุที่เก็บ Git

--ไม่เดิน[=(เรียงลำดับ|ไม่เรียงลำดับ)]
แสดงเฉพาะการกระทำที่กำหนด แต่อย่าสำรวจบรรพบุรุษของพวกเขา นี้ไม่มีผล
หากมีการระบุช่วง ถ้าอาร์กิวเมนต์ unsorted ได้รับ คอมมิทจะแสดงใน
คำสั่งที่พวกเขาได้รับในบรรทัดคำสั่ง มิฉะนั้น (ถ้าเรียงลำดับหรือไม่มีอาร์กิวเมนต์เป็น
กำหนด) การคอมมิตจะแสดงตามลำดับเวลาย้อนกลับตามเวลาส่ง ไม่สามารถ
รวมกับ --graph

--ทำ-เดิน
แทนที่ --no-walk ก่อนหน้า

กระทำ การจัดรูปแบบ
--สวย[= ], --format=
สวยพิมพ์เนื้อหาของบันทึกการคอมมิตในรูปแบบที่กำหนดโดยที่ เป็นไปได้
หนึ่งใน ไลน์, Short , กลาง, เต็ม, ฟูลเลอร์, อีเมล, ดิบ, รูปแบบ: และ
รูปแบบ:. เมื่อ ไม่มีข้อใดกล่าวข้างต้น และมี %ตัวยึดตำแหน่ง ในนั้นมัน
ทำตัวเหมือน --สวย=tรูปแบบ: ได้รับ.

ดูส่วน "รูปแบบที่สวยงาม" สำหรับรายละเอียดเพิ่มเติมสำหรับแต่ละรูปแบบ เมื่อไหร่
= ส่วนหนึ่งถูกละไว้ ค่าเริ่มต้นคือ กลาง.

หมายเหตุ: คุณสามารถระบุรูปแบบเริ่มต้นที่สวยงามในการกำหนดค่าที่เก็บได้ (ดู
git-config.php(พ.ศ. 1)).

--abbrev-กระทำ
แทนที่จะแสดงชื่ออ็อบเจ็กต์การคอมมิตเลขฐานสิบหกเต็ม 40 ไบต์ ให้แสดงเฉพาะ a
คำนำหน้าบางส่วน สามารถระบุจำนวนหลักที่ไม่ใช่ค่าเริ่มต้นด้วย "--abbrev= "
(ซึ่งแก้ไขเอาต์พุตต่างหากแสดง)

สิ่งนี้ควรทำให้ "--pretty=oneline" อ่านง่ายขึ้นสำหรับผู้ที่ใช้
ขั้วต่อ 80 คอลัมน์

--no-abbrev-commit
แสดงชื่ออ็อบเจ็กต์การคอมมิตเลขฐานสิบหก 40 ไบต์แบบเต็ม สิ่งนี้ปฏิเสธ --abbrev-commit และ
ตัวเลือกเหล่านั้นที่บ่งบอกถึงเช่น "--oneline" นอกจากนี้ยังแทนที่
log.abbrevCommit ตัวแปร

--ออนไลน์
นี่คือชวเลขสำหรับ "--pretty=oneline --abbrev-commit" ใช้ร่วมกัน

--การเข้ารหัส=
วัตถุส่งบันทึกการเข้ารหัสที่ใช้สำหรับข้อความบันทึกในการเข้ารหัส
หัวข้อ; ตัวเลือกนี้สามารถใช้เพื่อบอกให้คำสั่งเข้ารหัสข้อความบันทึกการคอมมิตใหม่
ในการเข้ารหัสที่ต้องการโดยผู้ใช้ สำหรับคำสั่งที่ไม่ใช่ท่อประปา ค่าเริ่มต้นนี้จะ
UTF-8 โปรดทราบว่าหากวัตถุอ้างว่าเข้ารหัสใน X และเรากำลังส่งออกเป็น X เรา
จะส่งออกคำต่อคำของวัตถุ นี่หมายความว่าลำดับที่ไม่ถูกต้องในต้นฉบับ
คอมมิทอาจถูกคัดลอกไปยังเอาต์พุต

--หมายเหตุ[= ]
แสดงหมายเหตุ (ดู คอมไพล์โน้ต(1)) ที่ใส่หมายเหตุประกอบการคอมมิตเมื่อแสดงการคอมมิต
ข้อความบันทึก นี่เป็นค่าเริ่มต้นสำหรับ git log, git show และ git whatchanged commands
เมื่อไม่มี --pretty, --format หรือ --oneline ตัวเลือกที่กำหนดในบรรทัดคำสั่ง

โดยค่าเริ่มต้น บันทึกย่อที่แสดงมาจากการอ้างอิงบันทึกย่อที่ระบุไว้ใน core.notesอ้างอิง และ
note.displayRef ตัวแปร (หรือการแทนที่สภาพแวดล้อมที่เกี่ยวข้อง) ดู git-config.php(1)
.

ด้วยตัวเลือก อาร์กิวเมนต์ แสดงบันทึกย่อนี้อ้างอิงแทนบันทึกย่อเริ่มต้น
ผู้อ้างอิง ผู้อ้างอิงจะระบุชื่อผู้อ้างอิงแบบเต็มเมื่อขึ้นต้นด้วย refs/notes/; เมื่อไหร่
ขึ้นต้นด้วย note/, refs/ และ refs/notes/ นำหน้าเพื่อสร้างชื่อเต็มของ
อ้างอิง

สามารถรวม --notes ได้หลายตัวเลือกเพื่อควบคุมว่าจะให้แสดงโน้ตใด
ตัวอย่าง: "--notes=foo" จะแสดงเฉพาะบันทึกจาก "refs/notes/foo"; "--notes=foo
--notes" จะแสดงทั้งบันทึกจาก "refs/notes/foo" และจากผู้อ้างอิงบันทึกเริ่มต้น

--no-หมายเหตุ
ไม่แสดงหมายเหตุ สิ่งนี้จะลบล้างตัวเลือก --notes ด้านบน โดยการรีเซ็ตรายการของ
บันทึกย่ออ้างอิงจากที่จะแสดงบันทึกย่อ ตัวเลือกจะถูกแยกวิเคราะห์ตามลำดับที่กำหนดใน
บรรทัดคำสั่ง เช่น "--notes --notes=foo --no-notes --notes=bar" จะแสดงเท่านั้น
บันทึกย่อจาก "refs/notes/bar"

--show-หมายเหตุ[= ], --[ไม่-]หมายเหตุมาตรฐาน
ตัวเลือกเหล่านี้เลิกใช้แล้ว ใช้ตัวเลือก --notes/--no-notes ด้านบนแทน

--แสดง-ลายเซ็น
ตรวจสอบความถูกต้องของวัตถุที่ลงนามโดยส่งลายเซ็นไปที่ gpg --verify
และแสดงผลออกมา

--ญาติ-วันที่
คำพ้องสำหรับ --date=relative

--วันที่=
มีผลเฉพาะวันที่ที่แสดงในรูปแบบที่มนุษย์อ่านได้เท่านั้น เช่น เมื่อใช้
--สวย. ตัวแปรกำหนดค่า log.date ตั้งค่าเริ่มต้นสำหรับ --date . ของคำสั่งบันทึก
ตัวเลือก. โดยค่าเริ่มต้น วันที่จะแสดงในเขตเวลาเดิม (ทั้งของผู้มอบอำนาจหรือ
ของผู้เขียน) ถ้า -local ถูกผนวกเข้ากับรูปแบบ (เช่น iso-local) ผู้ใช้ local
ใช้เขตเวลาแทน

--date=relative แสดงวันที่สัมพันธ์กับเวลาปัจจุบัน เช่น "2 ชั่วโมงที่แล้ว" NS
ไม่สามารถใช้ตัวเลือก -local กับ --raw หรือ --relative

--date=local เป็นนามแฝงสำหรับ --date=default-local

--date=iso (หรือ --date=iso8601) แสดงการประทับเวลาในรูปแบบที่คล้ายกับ ISO 8601 NS
ความแตกต่างของรูปแบบ ISO 8601 ที่เข้มงวดคือ:

· เว้นวรรคแทนตัวคั่นวันที่/เวลา T

· ช่องว่างระหว่างเวลาและเขตเวลา

·ไม่มีทวิภาคระหว่างชั่วโมงและนาทีของเขตเวลา

--date=iso-strict (หรือ --date=iso8601-strict) แสดงการประทับเวลาใน ISO 8601 ที่เข้มงวด
จัดรูปแบบ

--date=rfc (หรือ --date=rfc2822) แสดงการประทับเวลาในรูปแบบ RFC 2822 ซึ่งมักพบใน
ข้อความอีเมล

--date=short แสดงเฉพาะวันที่แต่ไม่ใช่เวลาในรูปแบบ YYYY-MM-DD

--date=raw แสดงวันที่ในรูปแบบ Raw Git ภายในรูปแบบ %s %z

--date=format:... ฟีดรูปแบบ ... ไปยังระบบของคุณ strftime ใช้ --date=format:%c
เพื่อแสดงวันที่ในรูปแบบที่ระบบของคุณต้องการ ดูคู่มือ strftime สำหรับ
รายการตัวยึดรูปแบบทั้งหมด เมื่อใช้ -local ไวยากรณ์ที่ถูกต้องคือ
--date=format-local:....

--date=default เป็นรูปแบบเริ่มต้น และคล้ายกับ --date=rfc2822 โดยมีบางส่วน
ข้อยกเว้น:

· ไม่มีเครื่องหมายจุลภาคหลังวันในสัปดาห์

· โซนเวลาจะถูกละเว้นเมื่อใช้โซนเวลาท้องถิ่น

--ผู้ปกครอง
พิมพ์พาเรนต์ของการคอมมิตด้วย (ในรูปแบบ "commit parent...") ยังเปิดใช้งาน
ผู้ปกครองเขียนใหม่ ดู ประวัติขององค์กร การทำให้เข้าใจง่าย ด้านล่าง

--เด็ก
พิมพ์ลูกของการคอมมิตด้วย (ในรูปแบบ "commit child ... ") ยังเปิดใช้งาน
ผู้ปกครองเขียนใหม่ ดู ประวัติขององค์กร การทำให้เข้าใจง่าย ด้านล่าง

--ซ้ายขวา
ทำเครื่องหมายด้านต่างสมมาตรที่คอมมิตสามารถเข้าถึงได้ สัญญาจากซ้าย
นำหน้าด้วย < และด้านขวามี > ถ้ารวมกับ --boundary
การกระทำเหล่านั้นนำหน้าด้วย -

ตัวอย่างเช่น หากคุณมีโทโพโลยีนี้:

y---b---b สาขา B
-
/.
-
o---x---a---สาขา A

คุณจะได้ผลลัพธ์ดังนี้:

$ git rev-list --left-right --boundary --pretty=oneline A...B

>bbbbbbb... ที่ 3 บน b
>bbbbbbb... ที่ 2 บน b
<aaaaaaa... 3rd on a
<aaaaaaa... 2nd on a
-yyyyyyy... ที่ 1 บน b
-xx... ที่ 1 บน a

--กราฟ
วาดการแสดงกราฟิกแบบข้อความของประวัติการคอมมิตทางด้านซ้ายมือ
ของผลผลิต ซึ่งอาจทำให้มีการพิมพ์บรรทัดพิเศษระหว่างการคอมมิต ตามลำดับ
เพื่อจะได้เขียนประวัติกราฟได้ถูกต้อง ไม่สามารถใช้ร่วมกับ --no-walk ได้

ซึ่งช่วยให้สามารถเขียนหลักใหม่ได้ โปรดดูที่ ประวัติขององค์กร การทำให้เข้าใจง่าย ด้านล่าง

นี่หมายถึงตัวเลือก --topo-order โดยค่าเริ่มต้น แต่ตัวเลือก --date-order อาจ
ระบุไว้

--show-linear-ตัวแบ่ง[= ]
เมื่อไม่ใช้ --graph ประวัติสาขาทั้งหมดจะถูกทำให้แบนซึ่งทำให้ยากต่อ
เห็นว่าการคอมมิตสองครั้งติดต่อกันไม่อยู่ในสาขาเชิงเส้น ตัวเลือกนี้
วางเครื่องกีดขวางระหว่างพวกเขาในกรณีนั้น ถ้า ระบุไว้ก็คือ
สตริงที่จะแสดงแทนสตริงเริ่มต้น

diff การจัดรูปแบบ
รายการด้านล่างคือตัวเลือกที่ควบคุมการจัดรูปแบบของเอาต์พุต diff บางส่วนของพวกเขาคือ
เฉพาะกับ git-rev-รายการ(1) อย่างไรก็ตาม อาจให้ตัวเลือกต่าง ๆ ที่แตกต่างกัน ดู git-แตกต่าง-
ไฟล์(1) สำหรับตัวเลือกเพิ่มเติม

-c
ด้วยตัวเลือกนี้ เอาต์พุต diff สำหรับการคอมมิตการผสานจะแสดงความแตกต่างจากแต่ละ
พ่อแม่จะรวมผลพร้อมกันแทนการแสดงคู่diff
ระหว่างผู้ปกครองกับผลลัพธ์ทีละรายการ นอกจากนี้ยังแสดงเฉพาะไฟล์ที่
ถูกดัดแปลงจากผู้ปกครองทั้งหมด

--ซีซี
แฟล็กนี้แสดงถึงอ็อพชัน -c และบีบอัดเอาต์พุตแพตช์เพิ่มเติมโดยละเว้น
ก้อนใหญ่ที่ไม่น่าสนใจซึ่งเนื้อหาในผู้ปกครองมีเพียงสองรูปแบบและการรวมกัน
ผลลัพธ์จะเลือกหนึ่งในนั้นโดยไม่มีการปรับเปลี่ยน

-m
แฟล็กนี้ทำให้การรวมคอมมิตแสดงส่วนต่างแบบเต็มเหมือนคอมมิตปกติ แต่ละ
รวมพาเรนต์ รายการบันทึกแยกและส่วนต่างจะถูกสร้างขึ้น ข้อยกเว้นคือเท่านั้น
แตกต่างจากพาเรนต์แรกจะแสดงเมื่อ --first-parent ตัวเลือกได้รับ; ในนั้น
กรณี ผลลัพธ์แสดงถึงการเปลี่ยนแปลงที่นำมารวมกัน เข้าไป ขณะนั้น-ปัจจุบัน
สาขา.

-r
แสดงส่วนต่างแบบเรียกซ้ำ

-t
แสดงวัตถุต้นไม้ในเอาต์พุตที่แตกต่าง นี่หมายความว่า -r

น่ารัก รูปแบบ


หากการคอมมิตเป็นการผสาน และหากรูปแบบพริตตี้ไม่ใช่ ไลน์, อีเมล or ดิบ,
แทรกบรรทัดเพิ่มเติมก่อน เขียนโดย: ไลน์. บรรทัดนี้ขึ้นต้นด้วย "ผสาน: " และ
sha1s ของการกระทำของบรรพบุรุษถูกพิมพ์โดยคั่นด้วยช่องว่าง โปรดทราบว่ารายการ
การกระทำอาจไม่จำเป็นต้องเป็นรายการของ โดยตรง ผู้ปกครองยอมรับหากคุณมีข้อ จำกัด
มุมมองประวัติศาสตร์ของคุณ: ตัวอย่างเช่น หากคุณสนใจเฉพาะการเปลี่ยนแปลงที่เกี่ยวข้องกับa
ไดเร็กทอรีหรือไฟล์บางอย่าง

มีรูปแบบในตัวหลายรูปแบบ และคุณสามารถกำหนดรูปแบบเพิ่มเติมได้โดยการตั้งค่า a
สวย. ตัวเลือก config เป็นชื่อรูปแบบอื่นหรือa รูปแบบ: สตริง as
อธิบายไว้ด้านล่าง (ดู git-config.php(1)). นี่คือรายละเอียดของรูปแบบในตัว:

· ไลน์



ซึ่งได้รับการออกแบบให้มีขนาดกะทัดรัดที่สุด

· Short

ให้สัญญา
ผู้เขียน:



· กลาง

ให้สัญญา
ผู้เขียน:
วันที่:





· เต็ม

ให้สัญญา
ผู้เขียน:
ให้สัญญา:





· ฟูลเลอร์

ให้สัญญา
ผู้เขียน:
ผู้เขียนวันที่:
ให้สัญญา:
วันที่กระทำ:





· อีเมล

จาก
จาก:
วันที่:
เรื่อง: [แพทช์]



· ดิบ

การขอ ดิบ รูปแบบจะแสดงการคอมมิตทั้งหมดเหมือนกับที่จัดเก็บไว้ในอ็อบเจกต์การคอมมิต
โดยเฉพาะอย่างยิ่ง SHA-1 จะแสดงอย่างครบถ้วน ไม่ว่า --abbrev หรือ
--ไม่ใช้ตัวย่อและ พ่อแม่ ข้อมูลแสดงการกระทำของผู้ปกครองที่แท้จริงโดยไม่ต้อง
โดยคำนึงถึงการปลูกถ่ายอวัยวะหรือการทำให้ประวัติศาสตร์ง่ายขึ้น โปรดทราบว่ารูปแบบนี้มีผลกับ
วิธีแสดงการกระทำ แต่ไม่ใช่วิธีแสดงความแตกต่างเช่นด้วย git log
--ดิบ. ในการรับชื่ออ็อบเจ็กต์แบบเต็มในรูปแบบ raw diff ให้ใช้ --no-abbrev

· รูปแบบ:

การขอ รูปแบบ: รูปแบบช่วยให้คุณสามารถระบุข้อมูลที่คุณต้องการแสดง
มันทำงานเหมือนรูปแบบ printf เล็กน้อย ยกเว้นที่คุณได้รับ a
ขึ้นบรรทัดใหม่กับ %n แทน \n.

เช่น, รูปแบบ:"The ผู้เขียน of %h คือ %NS, %ar%nThe ชื่อเรื่อง คือ >>%s<<%n" จะแสดง
บางอย่างเช่นนี้:

ผู้เขียน fe6e0ee คือ Junio ​​C Hamano 23 ชั่วโมงที่แล้ว
ชื่อเรื่อง >>t4119: ทดสอบคอมพิวเตอร์อัตโนมัติ -p สำหรับอินพุตดิฟดั้งเดิม<

ตัวยึดตำแหน่งคือ:

· %H: คอมมิต hash

· %h: ตัวย่อคอมมิชชัน hash

· %T: แฮชต้นไม้

· %t: อักษรย่อ แฮชต้นไม้

· %P: แฮชของผู้ปกครอง

· %p: แฮชพาเรนต์ตัวย่อ

· %NS: ชื่อผู้แต่ง

· %NS: ชื่อผู้แต่ง (ตาม .mailmap โปรดดูที่ git-shortlog(1) หรือ git-โทษ(ฮิต))

· %แอ: อีเมลผู้เขียน

· %เอ: อีเมลผู้เขียน (เกี่ยวกับ .mailmap โปรดดูที่ git-shortlog(1) หรือ git-โทษ(ฮิต))

· %โฆษณา: วันที่เขียน (รูปแบบเคารพ --date= ตัวเลือก)

· %โฆษณา: วันที่เขียน RFC2822 style

· %เท่: วันที่เขียน, ญาติ

· %ที่: วันที่เขียน, การประทับเวลา UNIX

· %AI: วันที่เขียน, รูปแบบเหมือน ISO 8601

· %AI: วันที่เขียน, รูปแบบ ISO 8601 ที่เข้มงวด

· %ค: ชื่อผู้มอบอำนาจ

· %cN: ชื่อผู้ส่ง (ตาม .mailmap โปรดดูที่ git-shortlog(1) หรือ git-โทษ(ฮิต))

· %ซีอี: อีเมลผู้มอบอำนาจ

· %ซีอี: อีเมลผู้ส่ง (เกี่ยวกับ .mailmap โปรดดูที่ git-shortlog(1) หรือ git-โทษ(ฮิต))

· %ซีดี: วันที่ผู้มอบ (รูปแบบเคารพ --date= ตัวเลือก)

· %ซีดี: วันที่คอมมิชชัน, RFC2822 style

· %cr: วันที่มอบอำนาจญาติ

· % กะรัต: วันที่คอมมิต, การประทับเวลา UNIX

· %ci: วันที่คอมมิต, รูปแบบเหมือน ISO 8601

· %ซีไอ: วันที่คอมมิต, รูปแบบ ISO 8601 ที่เข้มงวด

· %d: ชื่อผู้อ้างอิง เช่น --decorate ตัวเลือกของ คอมไพล์ล็อก(1)

· %D: ชื่อผู้อ้างอิงที่ไม่มีการตัดคำ " (", ")"

· %e: การเข้ารหัส

· %s: เรื่อง

· %f: หัวเรื่องที่ถูกสุขอนามัย เหมาะสำหรับชื่อไฟล์

· %b: ร่างกาย

· %B: ตัวแบบดิบ (ตัวแบบและตัวแบบแกะ)

· %N: คอมมิตโน๊ต

· %จีจี: ข้อความยืนยันดิบจาก GPG สำหรับคอมมิตที่ลงนาม

· %NS?: แสดง "G" สำหรับลายเซ็นดี "B" สำหรับลายเซ็นแย่ "U" สำหรับดี
ลายเซ็นที่ไม่น่าเชื่อถือและ "N" สำหรับไม่มีลายเซ็น

· %จีเอส: แสดงชื่อผู้ลงนามในสัญญาที่ลงนามแล้ว

· %จีเค: แสดงคีย์ที่ใช้ลงนามคอมมิต

· %จีดี: ตัวเลือก reflog เช่น refs/stash@{1}

· %จีดี: ตัวเลือก reflog ที่สั้นลง เช่น stash@{1}

· %GN: reflog ชื่อตัวตน

· %จีเอ็น: reflog ชื่อประจำตัว (เกี่ยวกับ .mailmap, ดู git-shortlog(1) หรือ คอมไพล์-
ตำหนิ(ฮิต))

· %ge: reflog อีเมลระบุตัวตน

· %จีอี: อีเมลระบุตัวตน reflog (เกี่ยวกับ .mailmap โปรดดูที่ git-shortlog(1) หรือ คอมไพล์-
ตำหนิ(ฮิต))

· %g: reflog เรื่อง

· %เครดิต: เปลี่ยนสีเป็นสีแดง

· %ซีกรีน: เปลี่ยนสีเป็นสีเขียว

· %ซีบลู: เปลี่ยนสีเป็นสีน้ำเงิน

· % Creset: รีเซ็ตสี

· %ค(...): ข้อกำหนดสี ตามที่อธิบายไว้ใน color.branch.* ตัวเลือกการกำหนดค่า; เพิ่ม
อัตโนมัติ ที่จุดเริ่มต้นจะปล่อยสีเมื่อเปิดใช้งานสีสำหรับบันทึกเอาต์พุตเท่านั้น
(ตาม color.diff, color.ui หรือ --color และคำนึงถึงการตั้งค่าอัตโนมัติของ
เดิมถ้าเรากำลังจะไปเทอร์มินัล) อัตโนมัติเพียงอย่างเดียว (เช่น %C(อัตโนมัติ)) จะเปิดขึ้น
ระบายสีอัตโนมัติในตัวยึดตำแหน่งถัดไปจนกระทั่งเปลี่ยนสีอีกครั้ง

· %m: ซ้าย ขวา หรือ เครื่องหมายเขต

· %n: ขึ้นบรรทัดใหม่

· %%: ดิบ %

· %x00: พิมพ์ไบต์จากรหัสฐานสิบหก

· %w([ [, [, ]]]): สลับการตัดบรรทัด เช่น -w ตัวเลือกของ คอมไพล์-
บันทึกย่อ(1)

· %<( [,trunc|lrunc|mtrunc]): ทำให้ตัวยึดตำแหน่งถัดไปมีอย่างน้อย N คอลัมน์
ช่องว่างภายในด้านขวาหากจำเป็น ตัดทอนที่จุดเริ่มต้น
(ltrunc) ตรงกลาง (mtrunc) หรือปลาย (trunc) หากเอาต์พุตยาวกว่า N
คอลัมน์ โปรดทราบว่าการตัดทอนทำงานอย่างถูกต้องกับ N >= 2 เท่านั้น

· %<|( ): ทำให้ตัวยึดตำแหน่งถัดไปใช้เวลาอย่างน้อยจนถึงคอลัมน์ Nth, padding
ช่องว่างด้านขวาถ้าจำเป็น

· %>( ), %>|( ): คล้ายกับ %<( ), %<|( ) ตามลำดับ แต่ช่องว่างภายใน
ด้านซ้าย

· %>>( ), %>>|( ): คล้ายกับ %>( ), %>|( ) ตามลำดับ เว้นแต่ว่าหาก
ตัวยึดตำแหน่งถัดไปใช้พื้นที่มากกว่าที่กำหนดและมีช่องว่างทางด้านซ้าย
ใช้ช่องว่างเหล่านั้น

· %><( ), %><|( ): คล้ายกับ % <( ), %<|( ) ตามลำดับ แต่เติมทั้งสองอย่าง
ด้าน (เช่นข้อความอยู่กึ่งกลาง)

หมายเหตุ
ตัวยึดตำแหน่งบางตัวอาจขึ้นอยู่กับตัวเลือกอื่นๆ ที่กำหนดให้กับกลไกการข้ามผ่านของการแก้ไข
ตัวอย่างเช่น ตัวเลือก %g* reflog จะแทรกสตริงว่างเว้นแต่เราจะเป็น
ผ่านรายการ reflog (เช่น โดย git log -g) ตัวยึดตำแหน่ง %d และ %D จะใช้
รูปแบบการตกแต่ง "สั้น" หาก --decorate ไม่ได้ระบุไว้ในคำสั่ง
เส้น

หากคุณเพิ่ม + (เครื่องหมายบวก) หลัง % ของตัวยึดตำแหน่ง ตัวป้อนบรรทัดจะถูกแทรกทันที
ก่อนการขยายก็ต่อเมื่อตัวยึดตำแหน่งขยายเป็นสตริงที่ไม่ว่างเปล่า

หากคุณเพิ่ม - (เครื่องหมายลบ) หลัง % ของตัวยึด ตัวป้อนบรรทัดที่อยู่ข้างหน้า
การขยายจะถูกลบออกถ้าและเฉพาะในกรณีที่พื้นที่ที่สำรองไว้ขยายเป็นสตริงว่าง

หากคุณเพิ่ม ` ` (เว้นวรรค) หลัง % ของตัวยึดตำแหน่ง ให้เว้นวรรคก่อน
การขยายก็ต่อเมื่อพื้นที่ที่สำรองไว้ขยายเป็นสตริงที่ไม่ว่างเปล่า

· รูปแบบ:

การขอ รูปแบบ: รูปแบบการทำงานเหมือนกับ รูปแบบ:ยกเว้นว่าจะมี "terminator"
ความหมายแทนความหมาย "ตัวคั่น" กล่าวอีกนัยหนึ่งการคอมมิตแต่ละครั้งมี
อักขระตัวสิ้นสุดข้อความ (มักจะขึ้นบรรทัดใหม่) ต่อท้าย แทนที่จะเป็นตัวคั่น
วางไว้ระหว่างรายการ ซึ่งหมายความว่ารายการสุดท้ายของรูปแบบบรรทัดเดียวจะ
สิ้นสุดอย่างถูกต้องด้วยบรรทัดใหม่ เช่นเดียวกับรูปแบบ "oneline" สำหรับ
ตัวอย่าง:

$ git บันทึก -2 --pretty=format:%h 4da45bef \
| perl -pe '$_ .= " -- NO NEWLINE\n" ยกเว้น /\n/'
4da45be
7134973 -- ไม่มี NEWLINE

$ บันทึก git -2 --pretty=tformat:%h 4da45bef \
| perl -pe '$_ .= " -- NO NEWLINE\n" ยกเว้น /\n/'
4da45be
7134973

นอกจากนี้ สตริงที่ไม่รู้จักที่มี % อยู่ในนั้นจะถูกตีความราวกับว่ามี
tformat: ข้างหน้ามัน ตัวอย่างเช่น ทั้งสองมีค่าเท่ากัน:

$ git log -2 --pretty=tformat:%h 4da45bef
$ git บันทึก -2 --pretty=%h 4da45bef

ทั่วไป ความแตกต่าง OPTIONS


-p, -u, --แพทช์
สร้างแพตช์ (ดูหัวข้อเกี่ยวกับการสร้างแพตช์)

-s, --no-แพทช์
ระงับเอาต์พุต diff มีประโยชน์สำหรับคำสั่งเช่น git show ที่แสดงแพตช์โดย
ค่าเริ่มต้นหรือเพื่อยกเลิกผลกระทบของ --patch

-ยู , --unified=
สร้างความแตกต่างด้วย บรรทัดบริบทแทนที่จะเป็นสามบรรทัดปกติ หมายถึง -p.

--ดิบ
สำหรับแต่ละคอมมิต แสดงสรุปการเปลี่ยนแปลงโดยใช้รูปแบบ raw diff ดู "RAW
OUTPUT FORMAT" ส่วนของ git-diff(1). ซึ่งต่างจากการแสดงบันทึกเอง
ในรูปแบบ raw ซึ่งคุณสามารถทำได้ด้วย --format=raw

--patch-กับ-ดิบ
คำพ้องความหมายสำหรับ -p --raw

--ขั้นต่ำ
ใช้เวลาเพิ่มเติมเพื่อให้แน่ใจว่าได้ส่วนต่างที่น้อยที่สุดเท่าที่จะเป็นไปได้

--ความอดทน
สร้างความแตกต่างโดยใช้อัลกอริธึม "ความแตกต่างของความอดทน"

--ฮิสโตแกรม
สร้างความแตกต่างโดยใช้อัลกอริทึม "histogram diff"

--diff-algorithm={ความอดทน|น้อยที่สุด|ฮิสโตแกรม|ไมเยอร์}
เลือกอัลกอริธึมต่าง ตัวแปรมีดังนี้:

ค่าเริ่มต้น myers
อัลกอริธึม diff โลภพื้นฐาน ปัจจุบันนี้เป็นค่าเริ่มต้น

ต่ำสุด
ใช้เวลาเพิ่มเติมเพื่อให้แน่ใจว่าได้ส่วนต่างที่น้อยที่สุดเท่าที่จะเป็นไปได้

ความอดทน
ใช้อัลกอริธึม "patience diff" เมื่อสร้างแพตช์

histogram
อัลกอริธึมนี้ขยายอัลกอริธึมความอดทนเพื่อ "สนับสนุนการเกิดขึ้นต่ำ
องค์ประกอบ".

ตัวอย่างเช่น หากคุณกำหนดค่าตัวแปร diff.algorithm เป็นค่าที่ไม่ใช่ค่าเริ่มต้นและ
ต้องการใช้ค่าเริ่มต้น จากนั้นคุณต้องใช้ --diff-algorithm=default ตัวเลือก

--สถิติ[= [, [, ]]]
สร้าง diffstat โดยค่าเริ่มต้น พื้นที่มากเท่าที่จำเป็นจะถูกใช้สำหรับ
ส่วนชื่อไฟล์และส่วนที่เหลือสำหรับส่วนกราฟ ค่าเริ่มต้นความกว้างสูงสุดของเทอร์มินัล
ความกว้าง หรือ 80 คอลัมน์หากไม่ได้เชื่อมต่อกับเทอร์มินัล และสามารถแทนที่ได้โดย .
ความกว้างของส่วนชื่อไฟล์สามารถถูกจำกัดโดยให้ความกว้างอื่น
หลังเครื่องหมายจุลภาค ความกว้างของส่วนกราฟสามารถจำกัดได้โดยใช้
--stat-กราฟ-ความกว้าง= (มีผลกับคำสั่งทั้งหมดที่สร้างกราฟสถิติ) หรือโดย
การตั้งค่า diff.statGraphWidth= (ไม่มีผลกับ git format-patch) โดยให้
พารามิเตอร์ที่สาม , คุณสามารถ จำกัด การส่งออกเป็นอันดับแรก สายตาม
โดย ... ถ้ามีมากกว่านี้

พารามิเตอร์เหล่านี้สามารถตั้งค่าทีละรายการด้วย --stat-width= ,
--stat-name-width= และ --stat-count= .

--ตัวเลข
คล้ายกับ --stat แต่แสดงจำนวนบรรทัดที่เพิ่มและลบในรูปแบบทศนิยมและ
ชื่อพาธที่ไม่มีตัวย่อเพื่อให้เป็นมิตรกับเครื่องมากขึ้น สำหรับไฟล์ไบนารี
เอาต์พุตสอง - แทนที่จะพูดว่า 0 0

--ชอร์ตสแตท
ส่งออกเฉพาะบรรทัดสุดท้ายของรูปแบบ --stat ที่มีจำนวนการแก้ไขทั้งหมด
ไฟล์ตลอดจนจำนวนบรรทัดที่เพิ่มและลบ

--dirstat[= ]
เอาท์พุตการกระจายของจำนวนการเปลี่ยนแปลงสัมพัทธ์สำหรับแต่ละไดเร็กทอรีย่อย NS
พฤติกรรมของ --dirstat สามารถปรับแต่งได้โดยส่งรายการที่คั่นด้วยเครื่องหมายจุลภาคของ
พารามิเตอร์ ค่าดีฟอลต์ถูกควบคุมโดยตัวแปรคอนฟิกูเรชัน diff.dirstat
(ดู git-config.php(1)). มีพารามิเตอร์ต่อไปนี้:

การเปลี่ยนแปลง
คำนวณตัวเลข dirstat โดยการนับบรรทัดที่ถูกลบออกจาก
ต้นทางหรือเพิ่มไปยังปลายทาง สิ่งนี้ละเว้นปริมาณของรหัสบริสุทธิ์
การเคลื่อนไหวภายในไฟล์ กล่าวอีกนัยหนึ่ง การจัดเรียงบรรทัดใหม่ในไฟล์ไม่ใช่
นับเท่าการเปลี่ยนแปลงอื่นๆ นี่เป็นพฤติกรรมเริ่มต้นเมื่อไม่มีพารามิเตอร์
ได้รับ

เส้น
คำนวณตัวเลข dirstat โดยทำการวิเคราะห์ diff ตามบรรทัดปกติและ
สรุปจำนวนบรรทัดที่ถูกลบ/เพิ่ม (สำหรับไฟล์ไบนารี ให้นับชิ้นขนาด 64 ไบต์
แทน เนื่องจากไฟล์ไบนารีไม่มีแนวคิดที่เป็นธรรมชาติของเส้น) นี่คือเพิ่มเติม
ราคาแพง --dirstat พฤติกรรมมากกว่าการเปลี่ยนแปลงพฤติกรรม แต่มันนับ
จัดเรียงบรรทัดใหม่ภายในไฟล์ให้มากที่สุดเท่าที่การเปลี่ยนแปลงอื่นๆ ผลลัพธ์ที่ได้คือ
สอดคล้องกับสิ่งที่คุณได้รับจากตัวเลือกสถิติอื่น ๆ

ไฟล์
คำนวณตัวเลข dirstat โดยนับจำนวนไฟล์ที่เปลี่ยนแปลง แต่ละคนเปลี่ยนไป
ไฟล์นับเท่ากันในการวิเคราะห์ dirstat นี่คือการคำนวณที่ถูกที่สุด
--dirstat พฤติกรรม เนื่องจากไม่ต้องดูเนื้อหาของไฟล์เลย

สะสม
นับการเปลี่ยนแปลงในไดเร็กทอรีย่อยสำหรับไดเร็กทอรีหลักด้วย สังเกตว่า
เมื่อใช้สะสม ผลรวมของเปอร์เซ็นต์ที่รายงานอาจเกิน 100% NS
พฤติกรรมเริ่มต้น (ไม่สะสม) สามารถระบุได้ด้วย noncumulative
พารามิเตอร์.


พารามิเตอร์จำนวนเต็มระบุเปอร์เซ็นต์การตัดออก (3% โดยค่าเริ่มต้น) ไดเรกทอรี
การมีส่วนร่วมน้อยกว่าเปอร์เซ็นต์ของการเปลี่ยนแปลงนี้จะไม่แสดงในผลลัพธ์

ตัวอย่าง: ต่อไปนี้จะนับไฟล์ที่เปลี่ยนแปลงในขณะที่ละเว้นไดเรกทอรีที่มีน้อยกว่า
มากกว่า 10% ของจำนวนไฟล์ที่เปลี่ยนแปลงทั้งหมด และสะสมจำนวนไดเร็กทอรีย่อย
ในไดเร็กทอรีหลัก: --dirstat=files,10,cumulative.

--สรุป
ส่งออกข้อมูลสรุปแบบย่อของข้อมูลส่วนหัวเพิ่มเติม เช่น การสร้าง การเปลี่ยนชื่อ
และการเปลี่ยนแปลงโหมด

--patch-กับ-stat
คำพ้องความหมายสำหรับ -p --stat

-z
แยกการคอมมิตด้วย NUL แทนที่จะขึ้นบรรทัดใหม่

นอกจากนี้เมื่อได้รับ --raw หรือ --numstat อย่า munge ชื่อพา ธ และใช้ NUL เป็น
เทอร์มิเนเตอร์ฟิลด์เอาต์พุต

หากไม่มีตัวเลือกนี้ เอาต์พุตชื่อพาธแต่ละรายการจะมี TAB, LF, อัญประกาศคู่ และ
อักขระแบ็กสแลชแทนที่ด้วย \t, \n, \" และ \\ ตามลำดับ และชื่อพาธ
จะถูกปิดด้วยเครื่องหมายคำพูดคู่หากมีการแทนที่เกิดขึ้น

--ชื่อเท่านั้น
แสดงเฉพาะชื่อไฟล์ที่เปลี่ยนแปลง

--ชื่อ-สถานะ
แสดงเฉพาะชื่อและสถานะของไฟล์ที่เปลี่ยนแปลง ดูคำอธิบายของ --diff-filter
ตัวเลือกเกี่ยวกับความหมายของตัวอักษรแสดงสถานะ

--submodule[= ]
ระบุว่าจะแสดงความแตกต่างในโมดูลย่อยอย่างไร เมื่อ --submodule หรือ --submodule=log
จะได้รับ เข้าสู่ระบบ มีการใช้รูปแบบ รูปแบบนี้แสดงรายการคอมมิตในช่วงเช่น คอมไพล์-
submodule(1) สรุปไม่ ละเว้นตัวเลือก --submodule หรือระบุ
--submodule=short ใช้ the Short รูปแบบ. รูปแบบนี้เพียงแค่แสดงชื่อของ
กระทำที่จุดเริ่มต้นและจุดสิ้นสุดของช่วง สามารถปรับแต่งได้ผ่าน diff.submodule
ตัวแปรการกำหนดค่า

--สี[= ]
แสดงความแตกต่างของสี --color (เช่นไม่มี =) เหมือนกับ --color=always
สามารถเป็นหนึ่งในเสมอ ไม่เคย หรืออัตโนมัติ

--ไม่มีสี
ปิดความแตกต่างของสี มันเหมือนกับ --color=never

--word-diff[= ]
แสดงคำต่างโดยใช้เครื่องหมาย เพื่อคั่นคำที่เปลี่ยนแปลง โดยค่าเริ่มต้น คำคือ
คั่นด้วยช่องว่าง; ดู --word-diff-regex ด้านล่าง NS ค่าเริ่มต้นเป็น ธรรมดา,
และต้องเป็นหนึ่งใน:

สี
เน้นคำที่เปลี่ยนแปลงโดยใช้สีเท่านั้น แปลว่า --สี

ธรรมดา
แสดงคำเป็น [-removed-] และ {+added+} ไม่มีความพยายามที่จะหลบหนี
ตัวคั่นหากปรากฏในอินพุต ดังนั้นเอาต์พุตอาจไม่ชัดเจน

เครื่องลายคราม
ใช้รูปแบบบรรทัดพิเศษที่มีไว้สำหรับการใช้สคริปต์
การวิ่งที่เพิ่ม/ลบ/ไม่เปลี่ยนแปลงจะถูกพิมพ์ในรูปแบบส่วนต่างแบบรวมปกติ
เริ่มต้นด้วยอักขระ +/-/` ` ที่ต้นบรรทัดและขยายเป็น
จุดสิ้นสุดของบรรทัด การขึ้นบรรทัดใหม่ในอินพุตจะแสดงด้วยเครื่องหมายตัวหนอน ~ บนบรรทัด
ของมันเอง.

ไม่มี
ปิดการใช้งาน word diff อีกครั้ง

โปรดทราบว่าแม้ชื่อของโหมดแรกจะใช้สีเพื่อเน้นการเปลี่ยนแปลง
ส่วนต่างๆ ในทุกโหมดหากเปิดใช้งาน

--word-diff-regex=
ใช้ เพื่อตัดสินใจว่าคำนั้นคืออะไร แทนที่จะพิจารณาถึงการรันของ non-whitespace to
เป็นคำ ยังหมายถึง --word-diff เว้นแต่จะเปิดใช้งานแล้ว

ทุกแมตช์ที่ไม่ทับซ้อนกันของ ถือเป็นคำ อะไรก็ได้ระหว่าง
การจับคู่เหล่านี้ถือเป็นช่องว่างและถูกละเว้น (!) เพื่อจุดประสงค์ในการค้นหา
ความแตกต่าง คุณอาจต้องการผนวก |[^[:space:]] ต่อท้ายนิพจน์ทั่วไปเพื่อสร้าง
ตรวจสอบให้แน่ใจว่าตรงกับอักขระที่ไม่ใช่ช่องว่างทั้งหมด การแข่งขันที่มีการขึ้นบรรทัดใหม่ is
ตัดทอนอย่างเงียบ ๆ (!) ที่บรรทัดใหม่

ตัวอย่างเช่น --word-diff-regex= จะปฏิบัติต่อตัวละครแต่ละตัวเป็นคำและ
ตามลำดับ แสดงความแตกต่างทีละอักขระ

นอกจากนี้ยังสามารถตั้งค่า regex ผ่านไดรเวอร์หรือตัวเลือกการกำหนดค่าต่าง ๆ ได้อีกด้วย โปรดดูที่
แอตทริบิวต์(1) หรือ git-config.php(1). ให้ชัดเจนแทนที่ไดรเวอร์ต่าง ๆ หรือ
การตั้งค่าคอนฟิก ไดรเวอร์ Diff แทนที่การตั้งค่าการกำหนดค่า

--สี-คำ[= ]
เทียบเท่ากับ --word-diff=color plus (หากระบุ regex)
--word-diff-regex= .

--no-เปลี่ยนชื่อ
ปิดการตรวจหาการเปลี่ยนชื่อ แม้ว่าไฟล์การกำหนดค่าจะให้ค่าดีฟอลต์เป็น do
ดวงอาทิตย์

--ตรวจสอบ
เตือนหากการเปลี่ยนแปลงทำให้เกิดข้อผิดพลาดช่องว่าง สิ่งที่ถือว่าเป็นข้อผิดพลาดช่องว่างคือ
ควบคุมโดยการกำหนดค่า core.whitespace ตามค่าเริ่มต้น ช่องว่างต่อท้าย
(รวมถึงบรรทัดที่ประกอบด้วยช่องว่างเพียงอย่างเดียว) และอักขระเว้นวรรคที่เป็น
ตามด้วยอักขระแท็บภายในเยื้องเริ่มต้นของบรรทัด are . ทันที
ถือว่าข้อผิดพลาดช่องว่าง ออกโดยสถานะไม่เป็นศูนย์หากพบปัญหา ไม่
เข้ากันได้กับ --exit-code

--ws-error-highlight=
เน้นข้อผิดพลาดช่องว่างในบรรทัดที่ระบุโดย ในสีที่กำหนดโดย
color.diff.ช่องว่าง เป็นรายการบริบทเก่า ใหม่ คั่นด้วยเครื่องหมายจุลภาค เมื่อไหร่
ไม่ได้ระบุตัวเลือกนี้ เฉพาะข้อผิดพลาดช่องว่างในบรรทัดใหม่เท่านั้นที่จะถูกเน้น เช่น
--ws-error-highlight=new,old ไฮไลต์ช่องว่างช่องว่างทั้งที่ถูกลบและเพิ่ม
เส้น ทั้งหมดสามารถใช้เป็นคำย่อสำหรับเก่า ใหม่ บริบท

--เต็มดัชนี
แทนที่จะแสดงอักขระไม่กี่ตัวแรก ให้แสดง blob . ก่อนและหลังรูปภาพแบบเต็ม
ชื่ออ็อบเจ็กต์บนบรรทัด "ดัชนี" เมื่อสร้างเอาต์พุตรูปแบบแพตช์

--ไบนารี่
นอกเหนือจาก --full-index แล้ว ให้ส่งออกไบนารี่ดิฟที่สามารถใช้กับ git-apply ได้

--ตัวย่อ[= ]
แทนที่จะแสดงชื่ออ็อบเจ็กต์ฐานสิบหก 40 ไบต์แบบเต็มในรูปแบบ diff-raw เอาต์พุต
และบรรทัดส่วนหัวแบบ diff-tree แสดงเฉพาะคำนำหน้าบางส่วนเท่านั้น สิ่งนี้ไม่ขึ้นกับ
--full-index option ด้านบน ซึ่งควบคุมรูปแบบเอาต์พุต diff-patch ไม่ใช่ค่าเริ่มต้น
สามารถระบุจำนวนหลักด้วย --abbrev= .

-NS[ ][/ ], --แบ่ง-เขียนใหม่[=[ ][/ ]]
ทำลายการเปลี่ยนแปลงเขียนใหม่ทั้งหมดเป็นคู่ของการลบและสร้าง นี้ทำหน้าที่สอง
วัตถุประสงค์:

มีผลกับการเปลี่ยนแปลงที่มีผลกับการเขียนไฟล์ใหม่ทั้งหมด ไม่ใช่เป็นชุด
ของการลบและการแทรกผสมกันด้วยไม่กี่บรรทัดที่เกิดขึ้นเพื่อให้ตรงกัน
ข้อความเป็นบริบท แต่เป็นการลบครั้งเดียวของทุกสิ่งที่เก่าตามด้วยa
การแทรกของใหม่ทั้งหมดเพียงครั้งเดียว และตัวเลข m ควบคุมด้านนี้ของ -B
ตัวเลือก (ค่าเริ่มต้น 60%) -B/70% ระบุว่าน้อยกว่า 30% ของต้นฉบับควร
ยังคงอยู่ในผลลัพธ์เพื่อให้ Git พิจารณาว่าเป็นการเขียนใหม่ทั้งหมด (กล่าวคือ
แพตช์ที่ได้จะเป็นชุดของการลบและการแทรกผสมกับบริบท
เส้น)

เมื่อใช้กับ -M ไฟล์ที่เขียนใหม่ทั้งหมดจะถือเป็นแหล่งที่มาของ a . ด้วย
เปลี่ยนชื่อ (โดยปกติ -M จะพิจารณาเฉพาะไฟล์ที่หายไปเป็นแหล่งที่มาของการเปลี่ยนชื่อ)
และหมายเลข n ควบคุมด้านนี้ของตัวเลือก -B (ค่าเริ่มต้นคือ 50%) -B20%
ระบุว่าการเปลี่ยนแปลงด้วยการเพิ่มและการลบเมื่อเทียบกับ 20% หรือมากกว่าของ
ขนาดของไฟล์มีสิทธิ์ที่จะถูกหยิบขึ้นมาเป็นแหล่งที่มาของการเปลี่ยนชื่อเป็น
ไฟล์อื่น

-NS[ ], --find-เปลี่ยนชื่อ[= ]
หากสร้างส่วนต่าง ให้ตรวจจับและรายงานการเปลี่ยนชื่อสำหรับการคอมมิตแต่ละครั้ง สำหรับไฟล์ต่อไปนี้
ในการเปลี่ยนชื่อขณะสำรวจประวัติ ดู --follow หากระบุ n จะเป็น a
เกณฑ์ในดัชนีความคล้ายคลึงกัน (เช่นจำนวนการเพิ่ม/การลบเมื่อเทียบกับ
ขนาดไฟล์) ตัวอย่างเช่น -M90% หมายความว่า Git ควรพิจารณาคู่ลบ/เพิ่มเป็น a
เปลี่ยนชื่อถ้ามากกว่า 90% ของไฟล์ไม่ได้เปลี่ยน หากไม่มีเครื่องหมาย % ตัวเลขจะเป็น
อ่านเป็นเศษส่วนโดยมีจุดทศนิยมนำหน้า เช่น -M5 กลายเป็น 0.5 และเป็น
จึงเหมือนกับ -M50% ในทำนองเดียวกัน -M05 ก็เหมือนกับ -M5% เพื่อจำกัดการตรวจจับที่
เปลี่ยนชื่อให้ถูกต้อง ใช้ -M100% ดัชนีความคล้ายคลึงเริ่มต้นคือ 50%

-ค[ ], --fin-copy[= .] ]
ตรวจจับสำเนารวมทั้งเปลี่ยนชื่อ ดูเพิ่มเติมที่ --find-copy-harder หากระบุ n ไว้ จะเป็น
มีความหมายเดียวกับ -M .

--find-copy-harder
ด้วยเหตุผลด้านประสิทธิภาพ โดยค่าเริ่มต้น ตัวเลือก -C จะค้นหาสำเนาก็ต่อเมื่อไฟล์ต้นฉบับ
ของสำเนาถูกแก้ไขในชุดการแก้ไขเดียวกัน แฟล็กนี้ทำให้คำสั่งตรวจสอบ
ไฟล์ที่ไม่ได้แก้ไขเป็นตัวเลือกสำหรับแหล่งที่มาของสำเนา ราคานี้แพงมาก
สำหรับโครงการขนาดใหญ่ ควรใช้ด้วยความระมัดระวัง ให้ตัวเลือก -C มากกว่าหนึ่งตัว
มีผลเช่นเดียวกัน

-D, --ลบกลับไม่ได้
ละเว้นพรีอิมเมจสำหรับการลบ เช่น พิมพ์เฉพาะส่วนหัวแต่อย่าแยกส่วนต่างระหว่าง
ภาพก่อนหน้าและ /dev/null. แพตช์ที่ได้ไม่ได้มีไว้สำหรับใช้กับแพตช์หรือ
ใช้คอมไพล์; นี้มีไว้สำหรับผู้ที่ต้องการเพียงแค่มีสมาธิในการทบทวน
ข้อความหลังการเปลี่ยนแปลง นอกจากนี้ ผลผลิตยังขาดข้อมูลเพียงพอสำหรับ
ใช้โปรแกรมแก้ไขดังกล่าวย้อนกลับ แม้กระทั่งด้วยตนเอง ดังนั้นชื่อของตัวเลือก

เมื่อใช้ร่วมกับ -B ให้ละเว้น preimage ในส่วนการลบของa .ด้วย
ลบ/สร้างคู่

-l
ตัวเลือก -M และ -C ต้องใช้เวลาในการประมวลผล O(n^2) โดยที่ n คือจำนวน
เป้าหมายการเปลี่ยนชื่อ/คัดลอกที่เป็นไปได้ ตัวเลือกนี้ป้องกันไม่ให้การตรวจหาการเปลี่ยนชื่อ/คัดลอกทำงาน
หากจำนวนเป้าหมายการเปลี่ยนชื่อ/คัดลอกเกินจำนวนที่ระบุ

--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
เลือกเฉพาะไฟล์ที่เพิ่ม (A), คัดลอก (C), ลบ (D), แก้ไข (M), เปลี่ยนชื่อ
(R) เปลี่ยนประเภท (เช่น ไฟล์ปกติ symlink โมดูลย่อย ...) (T) are
Unmerged (U) คือ Unknown (X) หรือมีการจับคู่แบบ Broken (B) ชุดค่าผสมใดก็ได้
ของอักขระตัวกรอง (รวมถึงไม่มี) สามารถใช้ได้ เมื่อเพิ่ม * (ทั้งหมดหรือไม่มี)
ในการรวมกัน เส้นทางทั้งหมดจะถูกเลือกหากมีไฟล์ที่ตรงกับ other
เกณฑ์ในการเปรียบเทียบ หากไม่มีไฟล์ที่ตรงกับเกณฑ์อื่นๆ ไม่มีอะไรเลย
จะถูกเลือก

-NS
ค้นหาความแตกต่างที่เปลี่ยนจำนวนครั้งของสตริงที่ระบุ
(เช่น การเพิ่ม/ลบ) ในไฟล์ มีไว้สำหรับการใช้งานของสคริปต์

มีประโยชน์เมื่อคุณกำลังมองหากลุ่มโค้ดที่แน่นอน (เช่น struct) และ want
เพื่อทราบประวัติของบล็อกนั้นตั้งแต่แรกเริ่ม: ใช้คุณสมบัติ
ซ้ำแล้วซ้ำเล่าเพื่อป้อนบล็อกที่น่าสนใจในพรีอิมเมจกลับเข้าไปใน -S และไปต่อ
จนกว่าคุณจะได้รับบล็อกเวอร์ชันแรก

-NS
มองหาความแตกต่างที่ข้อความแก้ไขมีบรรทัดที่เพิ่ม/ลบที่ตรงกัน .

เพื่อแสดงความแตกต่างระหว่าง -S --pickaxe-regex และ -G , พิจารณา
คอมมิทกับ diff ต่อไปนี้ในไฟล์เดียวกัน:

+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);

ในขณะที่ git log -G"regexec\(regexp" จะแสดงการคอมมิตนี้ git log -S"regexec\(regexp"
--pickaxe-regex จะไม่ (เนื่องจากจำนวนครั้งของสตริงนั้นไม่ได้
เปลี่ยน).

ดู pickaxe เข้า gitdiffcore(7) สำหรับข้อมูลเพิ่มเติม

--pickaxe-ทั้งหมด
เมื่อ -S หรือ -G พบการเปลี่ยนแปลง ให้แสดงการเปลี่ยนแปลงทั้งหมดในชุดการแก้ไขนั้น ไม่ใช่เฉพาะ
ไฟล์ที่มีการเปลี่ยนแปลงใน .

--พลั่ว-regex
รักษา กำหนดให้กับ -S เป็นนิพจน์ทั่วไป POSIX ที่ขยายให้ตรงกัน

-O
ส่งออกแพตช์ตามลำดับที่ระบุใน ซึ่งมีหนึ่งเปลือกglob
รูปแบบต่อบรรทัด ซึ่งจะแทนที่ตัวแปรการกำหนดค่า diff.orderFile (ดู คอมไพล์-
การตั้งค่า(1)). หากต้องการยกเลิก diff.orderFile ให้ใช้ -O/dev/null

-R
สลับสองอินพุต; กล่าวคือแสดงความแตกต่างจากไฟล์ดัชนีหรือบนดิสก์ถึง tree
เนื้อหา

--ญาติ[= ]
เมื่อเรียกใช้จากไดเร็กทอรีย่อยของโปรเจ็กต์ สามารถบอกให้ไม่รวมการเปลี่ยนแปลงภายนอก
ไดเร็กทอรีและแสดงชื่อพาธที่สัมพันธ์กับไดเร็กทอรีด้วยตัวเลือกนี้ เมื่อคุณไม่อยู่ใน
ไดเร็กทอรีย่อย (เช่น ในที่เก็บเปล่า) คุณสามารถตั้งชื่อไดเร็กทอรีย่อยที่จะสร้าง
ผลลัพธ์สัมพันธ์กับการให้ a เป็นอาร์กิวเมนต์

-a, --ข้อความ
ปฏิบัติต่อไฟล์ทั้งหมดเป็นข้อความ

--ignore-space-at-eol
ละเว้นการเปลี่ยนแปลงในช่องว่างที่ EOL

-b, --ignore-space-change
ละเว้นการเปลี่ยนแปลงในจำนวนช่องว่าง สิ่งนี้ละเว้นช่องว่างที่ท้ายบรรทัด และ
ถือว่าลำดับอื่นๆ ทั้งหมดของอักขระช่องว่างตั้งแต่หนึ่งตัวขึ้นไปจะเทียบเท่ากัน

-w, --ignore-พื้นที่ทั้งหมด
ละเว้นช่องว่างเมื่อเปรียบเทียบเส้น สิ่งนี้ละเว้นความแตกต่างแม้ว่าบรรทัดหนึ่งจะมี
ช่องว่างที่บรรทัดอื่นไม่มี

- ละเว้นบรรทัดว่าง
ละเว้นการเปลี่ยนแปลงที่มีบรรทัดว่างทั้งหมด

--inter-hunk-บริบท=
แสดงบริบทระหว่าง diff hunks จนถึงจำนวนบรรทัดที่ระบุด้วยเหตุนี้
หลอมรวมกันเป็นก้อนที่อยู่ใกล้กัน

-W, --ฟังก์ชัน-บริบท
แสดงการทำงานรอบข้างทั้งหมดของการเปลี่ยนแปลง

--ext-diff
อนุญาตให้ดำเนินการตัวช่วยต่างภายนอก หากคุณตั้งค่าไดรเวอร์ diff ภายนอกด้วย
แอตทริบิวต์(5) คุณต้องใช้ตัวเลือกนี้กับ คอมไพล์ล็อก(1) และผองเพื่อน

--no-ext-diff
ไม่อนุญาตไดรเวอร์ส่วนต่างภายนอก

--textconv, --no-textconv
อนุญาต (หรือไม่อนุญาต) ตัวกรองการแปลงข้อความภายนอกให้ทำงานเมื่อเปรียบเทียบไบนารี
ไฟล์. ดู แอตทริบิวต์(5) สำหรับรายละเอียด เนื่องจากตัวกรอง textconv มักจะเป็น
การแปลงทางเดียว ผลต่างที่ได้นั้นเหมาะสำหรับการบริโภคของมนุษย์ แต่ไม่สามารถทำได้
นำไปใช้ ด้วยเหตุนี้ ตัวกรอง textconv จึงเปิดใช้งานโดยค่าเริ่มต้นสำหรับ .เท่านั้น คอมไพล์-
diff(1) และ คอมไพล์ล็อก(1) แต่ไม่ใช่สำหรับ git-format-แพทช์(1) หรือคำสั่งประปาส่วนต่าง

--ละเว้น-submodules[= ]
ละเว้นการเปลี่ยนแปลงของโมดูลย่อยในการสร้างความแตกต่าง สามารถเป็นได้ทั้ง "ไม่มี"
"untracked", "dirty" หรือ "all" ซึ่งเป็นค่าเริ่มต้น การใช้ "ไม่มี" จะถือว่า
โมดูลย่อยที่แก้ไขเมื่อมีไฟล์ที่ไม่ได้ติดตามหรือแก้ไข หรือ HEAD
แตกต่างจากคอมมิตที่บันทึกไว้ในซูเปอร์โปรเจ็กต์และสามารถใช้เพื่อแทนที่ใดๆ
การตั้งค่าของ ไม่สนใจ ตัวเลือกใน git-config.php(1) หรือ gitmodules(5). เมื่อ "ไม่ถูกติดตาม" คือ
โมดูลย่อยที่ใช้แล้วจะไม่ถือว่าสกปรกเมื่อมีเฉพาะเนื้อหาที่ไม่ได้ติดตาม (แต่
พวกเขายังคงสแกนหาเนื้อหาที่แก้ไข) การใช้ "dirty" จะละเว้นการเปลี่ยนแปลงทั้งหมดของ
แผนผังงานของโมดูลย่อย เฉพาะการเปลี่ยนแปลงการคอมมิตที่เก็บไว้ใน superproject เท่านั้นคือ
แสดง (นี่คือพฤติกรรมจนถึง 1.7.0) การใช้ "ทั้งหมด" จะซ่อนการเปลี่ยนแปลงทั้งหมดไปยัง
โมดูลย่อย

--src-prefix=
แสดงคำนำหน้าแหล่งที่มาที่กำหนดแทน "a/"

--dst-คำนำหน้า=
แสดงคำนำหน้าปลายทางที่กำหนดแทน "b/"

--ไม่มีคำนำหน้า
ไม่ต้องแสดงคำนำหน้าต้นทางหรือปลายทาง

สำหรับคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกทั่วไปเหล่านี้ โปรดดูที่ gitdiffcore(7)

กำลังสร้าง แพทช์ กับ -P


เมื่อ "git-diff-index", "git-diff-tree" หรือ "git-diff-files" ถูกเรียกใช้ด้วย -p ตัวเลือก "git
ต่าง" โดยไม่มี --ดิบ ตัวเลือกหรือ "git log" กับตัวเลือก "-p" จะไม่สร้าง
ผลลัพธ์ที่ได้อธิบายไว้ข้างต้น แทนที่จะสร้างไฟล์แพตช์ คุณสามารถปรับแต่งการสร้าง
ของแพตช์ดังกล่าวผ่าน GIT_EXTERNAL_DIFF และตัวแปรสภาพแวดล้อม GIT_DIFF_OPTS

สิ่งที่อ็อพชัน -p สร้างขึ้นนั้นแตกต่างจากรูปแบบดิฟดั้งเดิมเล็กน้อย:

1. นำหน้าด้วยส่วนหัว "git diff" ที่มีลักษณะดังนี้:

ความแตกต่าง --git a/file1 b/file2.diff

ชื่อไฟล์ a/ และ b/ จะเหมือนกันเว้นแต่จะมีการเปลี่ยนชื่อ/คัดลอก โดยเฉพาะแม้แต่
สำหรับการสร้างหรือการลบ /dev/null is ไม่ ใช้แทน a/ หรือ b/
ชื่อไฟล์

เมื่อเกี่ยวข้องกับการเปลี่ยนชื่อ/คัดลอก file1 และ file2 จะแสดงชื่อของไฟล์ต้นฉบับของ
เปลี่ยนชื่อ/คัดลอกและชื่อของไฟล์ที่สร้างการเปลี่ยนชื่อ/คัดลอกตามลำดับ

2. ตามด้วยบรรทัดส่วนหัวที่ขยายอย่างน้อยหนึ่งบรรทัด:

โหมดเก่า
โหมดใหม่
โหมดไฟล์ที่ถูกลบ
โหมดไฟล์ใหม่
คัดลอกจาก
คัดลอกไปที่
เปลี่ยนชื่อจาก
เปลี่ยนชื่อเป็น
ดัชนีความคล้ายคลึงกัน
ดัชนีความแตกต่าง
ดัชนี ..

โหมดไฟล์จะพิมพ์เป็นเลขฐานแปด 6 หลัก รวมทั้งประเภทไฟล์และไฟล์
บิตการอนุญาต

ชื่อพาธในส่วนหัวแบบขยายจะไม่รวมส่วนนำหน้า a/ และ b/

ดัชนีความคล้ายคลึงกันคือเปอร์เซ็นต์ของเส้นที่ไม่เปลี่ยนแปลง และดัชนีความต่างกัน
คือเปอร์เซ็นต์ของเส้นที่เปลี่ยนแปลง เป็นจำนวนเต็มที่ปัดเศษลง ตามด้วย a
เครื่องหมายเปอร์เซ็นต์ ค่าดัชนีความคล้ายคลึงกัน 100% จึงสงวนไว้สำหรับไฟล์สองไฟล์ที่เท่ากัน
ในขณะที่ความแตกต่าง 100% หมายความว่าไม่มีบรรทัดจากไฟล์เก่าทำให้มันเป็นไฟล์ใหม่
หนึ่ง.

บรรทัดดัชนีรวมการตรวจสอบ SHA-1 ก่อนและหลังการเปลี่ยนแปลง NS เป็น
รวมไว้หากโหมดไฟล์ไม่เปลี่ยนแปลง มิฉะนั้น แยกบรรทัดระบุเก่า
และโหมดใหม่

3. TAB, LF, อัญประกาศคู่ และอักขระแบ็กสแลชในชื่อพาธจะแสดงเป็น \t, \n,
\" และ \\ ตามลำดับ หากจำเป็นต้องเปลี่ยนตัวทั้งหมด
ชื่อพาธถูกใส่ในเครื่องหมายคำพูดคู่

4. ไฟล์ file1 ทั้งหมดในเอาต์พุตอ้างอิงถึงไฟล์ก่อนการคอมมิต และไฟล์ทั้งหมด2
ไฟล์อ้างถึงไฟล์หลังจากการคอมมิต ไม่ถูกต้องที่จะใช้การเปลี่ยนแปลงแต่ละครั้งกับแต่ละรายการ
ไฟล์ตามลำดับ ตัวอย่างเช่น แพทช์นี้จะสลับ a และ b:

diff --git a/ab/b
เปลี่ยนชื่อจาก a
เปลี่ยนชื่อเป็นb
diff --git a/bb/a
เปลี่ยนชื่อจาก b
เปลี่ยนชื่อเป็น

รวม ความแตกต่าง FORMAT


คำสั่งสร้างความแตกต่างสามารถใช้ตัวเลือก -c หรือ --cc เพื่อสร้างa รวม diff เมื่อ
แสดงการรวม นี่เป็นรูปแบบเริ่มต้นเมื่อแสดงการผสานกับ git-diff(1) หรือ คอมไพล์-
โชว์(1). โปรดทราบว่าคุณสามารถให้ตัวเลือก -m กับคำสั่งเหล่านี้เพื่อบังคับ
รุ่นของความแตกต่างกับผู้ปกครองแต่ละคนของการควบรวมกิจการ

A รวม diff รูปแบบมีลักษณะดังนี้:

diff --combined อธิบาย.c
ดัชนี fabadb8,cc95eb0..4866510
--- a/describe.ค
+++ ข/describe.c
@@@ -98,20 -98,12 +98,20 @@@
กลับ (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}

- อธิบายโมฆะคงที่ (ถ่าน * หาเรื่อง)
-static โมฆะอธิบาย(struct commit *cmit, int last_one)
++โมฆะแบบคงที่อธิบาย (อักขระ * arg, int last_one)
{
+ ถ่านที่ไม่ได้ลงนาม sha1[20];
+ struct กระทำ * cmit;
struct commit_list * รายการ;
สแตติก int เริ่มต้น = 0;
โครงสร้าง commit_name *n;

+ ถ้า (get_sha1(หาเรื่อง sha1) < 0)
+ การใช้งาน (describe_usage);
+ cmit = lookup_commit_reference(sha1);
+ ถ้า (!cmit)
+ การใช้งาน (describe_usage);
+
ถ้า (!เริ่มต้น) {
เริ่มต้น = 1;
for_each_ref (get_name);

1. นำหน้าด้วยส่วนหัว "git diff" ซึ่งมีลักษณะดังนี้ (เมื่อ -c ตัวเลือกที่
ใช้แล้ว):

diff -- รวมไฟล์

หรือแบบนี้ (เมื่อ --ซีซี ใช้ตัวเลือก):

diff --cc ไฟล์

2. ตามด้วยบรรทัดส่วนหัวที่ขยายอย่างน้อยหนึ่งบรรทัด (ตัวอย่างนี้แสดงการผสานกับ
พ่อแม่สองคน):

ดัชนี , ..
โหมด , ..
โหมดไฟล์ใหม่
โหมดไฟล์ที่ถูกลบ ,

โหมด , .. บรรทัดปรากฏขึ้นก็ต่อเมื่ออย่างน้อยหนึ่ง เป็น
แตกต่างจากที่เหลือ ส่วนหัวขยายพร้อมข้อมูลเกี่ยวกับเนื้อหาที่ตรวจพบ
การเคลื่อนไหว (การเปลี่ยนชื่อและการตรวจจับการคัดลอก) ได้รับการออกแบบให้ทำงานกับส่วนต่างของสอง
และไม่ได้ใช้โดยรูปแบบ diff ที่รวมกัน

3. ตามด้วยส่วนหัว from-file/to-file สองบรรทัด

--- ไฟล์
+++ b/ไฟล์

คล้ายกับส่วนหัวสองบรรทัดสำหรับแบบดั้งเดิม ปึกแผ่น รูปแบบ diff /dev/null ใช้เพื่อ
สัญญาณที่สร้างหรือลบไฟล์

4. รูปแบบส่วนหัวของ Chunk ถูกแก้ไขเพื่อป้องกันไม่ให้ผู้คนป้อนมันโดยไม่ได้ตั้งใจ
แพทช์ -p1 รูปแบบ diff แบบรวมถูกสร้างขึ้นเพื่อตรวจทานการเปลี่ยนแปลงการคอมมิตการผสานและ
ไม่ได้มีไว้สำหรับการสมัคร การเปลี่ยนแปลงจะคล้ายกับการเปลี่ยนแปลงในส่วนขยาย ดัชนี
หัวข้อ:

@@@ @@@

มี (จำนวนผู้ปกครอง + 1) @ อักขระในส่วนหัวของกลุ่มสำหรับ diff . ที่รวมกัน
จัดรูปแบบ

ไม่เหมือนแบบดั้งเดิม ปึกแผ่น รูปแบบ diff ซึ่งแสดงสองไฟล์ A และ B ด้วยไฟล์เดียว
คอลัมน์ที่มี - (ลบ — ปรากฏใน A แต่ลบใน B), + (บวก — หายไปใน A แต่
เพิ่มใน B) หรือ " " (ช่องว่าง — ไม่เปลี่ยนแปลง) คำนำหน้า รูปแบบนี้เปรียบเทียบไฟล์ตั้งแต่สองไฟล์ขึ้นไป
file1, file2,... ด้วยไฟล์เดียว X และแสดงให้เห็นว่า X แตกต่างจากแต่ละไฟล์อย่างไรN หนึ่งคอลัมน์
สำหรับแต่ละ fileN ถูกนำหน้าไปยังบรรทัดเอาต์พุตเพื่อสังเกตว่าบรรทัดของ X นั้นแตกต่างจาก
มัน

A - อักขระในคอลัมน์ N หมายความว่าบรรทัดปรากฏใน fileN แต่ไม่ปรากฏ
ในผลลัพธ์ อักขระ A + ในคอลัมน์ N หมายความว่าบรรทัดปรากฏในผลลัพธ์
และ fileN ไม่มีบรรทัดนั้น (กล่าวคือเพิ่มบรรทัดจากจุด
มุมมองของผู้ปกครองคนนั้น)

ในผลลัพธ์ตัวอย่างด้านบน ฟังก์ชันลายเซ็นถูกเปลี่ยนจากทั้งสองไฟล์ (ด้วยเหตุนี้ two
- การลบออกจากทั้ง file1 และ file2 บวก ++ หมายถึงหนึ่งบรรทัดที่เพิ่มไม่ได้
ปรากฏใน file1 หรือ file2) อีกแปดบรรทัดเหมือนกันจาก file1 แต่ do
ไม่ปรากฏใน file2 (จึงนำหน้าด้วย +)

เมื่อแสดงโดย git diff-tree -c จะเปรียบเทียบพาเรนต์ของการผสานที่คอมมิตกับการผสาน
ผลลัพธ์ (เช่น file1..fileN เป็นพาเรนต์) เมื่อแสดงโดย git diff-files -c จะเปรียบเทียบ
การรวมพาเรนต์ที่ไม่ได้รับการแก้ไขสองคนกับไฟล์แผนผังการทำงาน (เช่น file1 คือสเตจ 2 หรือที่รู้จักว่า
"เวอร์ชันของเรา", file2 คือสเตจ 3 หรือที่เรียกว่า "เวอร์ชันของพวกเขา")

ตัวอย่าง


บันทึก git --no-merges
แสดงประวัติการคอมมิตทั้งหมด แต่ข้ามการผสานใดๆ

บันทึก git v2.6.12 .. รวม / ไดรเวอร์ scsi / scsi
แสดงการคอมมิตทั้งหมดตั้งแต่ version v2.6.12 ที่เปลี่ยนไฟล์ใด ๆ ใน include/scsi or
ไดเร็กทอรีย่อยไดรเวอร์/scsi

git log --since="2 สัปดาห์ก่อน" -- gitk
แสดงการเปลี่ยนแปลงในช่วงสองสัปดาห์ที่ผ่านมากับไฟล์ gitk. “--” เป็นสิ่งจำเป็นเพื่อ
หลีกเลี่ยงความสับสนกับ สาขา ชื่อ gitk

บันทึก git --name-status release..test
แสดงการคอมมิตที่อยู่ในสาขา "ทดสอบ" แต่ยังไม่อยู่ในสาขา "รีลีส"
พร้อมกับรายการพาธที่แต่ละคอมมิทจะแก้ไข

บันทึก git --follow builtin/rev-list.c
แสดงการคอมมิตที่เปลี่ยนแปลง buildin/rev-list.c รวมถึงคอมมิตที่
เกิดขึ้นก่อนที่ไฟล์จะได้รับชื่อปัจจุบัน

บันทึก git --branches --not --remotes=origin
แสดงการคอมมิตทั้งหมดที่อยู่ในสาขาท้องถิ่นแต่ไม่อยู่ในการติดตามระยะไกล
สาขาสำหรับ ที่มา (สิ่งที่คุณมีที่มานั้นไม่มี)

git log master --ไม่ --remotes=*/master
แสดงการคอมมิตทั้งหมดที่อยู่ในโลคัลมาสเตอร์แต่ไม่อยู่ในรีโมต repository master
สาขา

git log -p -m --first-parent
แสดงประวัติรวมถึงความแตกต่างของการเปลี่ยนแปลง แต่จากมุมมอง "สาขาหลัก" เท่านั้น
การข้ามคอมมิตที่มาจากสาขาที่ผสาน และแสดงการเปลี่ยนแปลงทั้งหมด
แนะนำโดยการผสาน สิ่งนี้สมเหตุสมผลเมื่อปฏิบัติตามนโยบายที่เข้มงวดของ .เท่านั้น
การรวมสาขาหัวข้อทั้งหมดเมื่ออยู่ในสาขาการรวมเดียว

git log -L '/int main/',/^}/:main.c
แสดงให้เห็นว่าฟังก์ชัน main() ในไฟล์ main.c พัฒนาขึ้นอย่างไรเมื่อเวลาผ่านไป

บันทึก git -3
จำกัดจำนวนคอมมิตที่จะแสดงเป็น 3

อภิปราย


Git คือการเข้ารหัสอักขระที่ไม่เชื่อเรื่องพระเจ้าในระดับหนึ่ง

· เนื้อหาของวัตถุหยดเป็นลำดับของไบต์ที่ไม่ได้ตีความ ไม่มี
การเข้ารหัสการแปลในระดับแกนกลาง

· ชื่อพาธถูกเข้ารหัสในรูปแบบการทำให้เป็นมาตรฐาน UTF-8 C ซึ่งใช้กับวัตถุต้นไม้
ไฟล์ดัชนี ชื่อผู้อ้างอิง เช่นเดียวกับชื่อพาธในอาร์กิวเมนต์บรรทัดคำสั่ง
ตัวแปรสภาพแวดล้อมและไฟล์ปรับแต่ง (.git/config (ดู git-config.php(1)) gitignore(5)
แอตทริบิวต์(5) และ gitmodules(พ.ศ. 5)).

โปรดทราบว่า Git ที่ระดับแกนกลางถือว่าชื่อพาธเป็นลำดับของ non-NUL
ไบต์ ไม่มีการแปลงการเข้ารหัสชื่อพาธ (ยกเว้นใน Mac และ Windows)
ดังนั้น การใช้ชื่อพาธที่ไม่ใช่ ASCII ส่วนใหญ่จะใช้งานได้แม้บนแพลตฟอร์มและไฟล์
ระบบที่ใช้การเข้ารหัส ASCII แบบขยายแบบเดิม อย่างไรก็ตามที่เก็บที่สร้างขึ้นบน
ระบบดังกล่าวจะไม่ทำงานอย่างถูกต้องบนระบบที่ใช้ UTF-8 (เช่น Linux, Mac, Windows)
และในทางกลับกัน. นอกจากนี้ เครื่องมือที่ใช้ Git จำนวนมากยังถือว่าชื่อพาธเป็น
UTF-8 และจะล้มเหลวในการแสดงการเข้ารหัสอื่นๆ อย่างถูกต้อง

· ข้อความบันทึกการคอมมิตมักจะเข้ารหัสแบบ UTF-8 แต่การเข้ารหัส ASCII แบบขยายอื่นๆ
ยังได้รับการสนับสนุน ซึ่งรวมถึง ISO-8859-x, CP125x และอื่นๆ อีกมากมาย แต่ ไม่
การเข้ารหัสแบบหลายไบต์ UTF-16/32, EBCDIC และ CJK (GBK, Shift-JIS, Big5, EUC-x, CP9xx
และอื่น ๆ )

แม้ว่าเราจะสนับสนุนให้เข้ารหัสข้อความบันทึกการคอมมิตใน UTF-8 ทั้งคอร์และ
Git Porcelain ได้รับการออกแบบมาเพื่อไม่ให้บังคับ UTF-8 กับโปรเจ็กต์ ถ้าผู้เข้าร่วมทั้งหมดของa
โครงการเฉพาะพบว่าสะดวกกว่าในการใช้การเข้ารหัสแบบเดิม Git ไม่ห้าม
มัน. อย่างไรก็ตาม มีบางสิ่งที่ต้องจำไว้

1. คอมไพล์ ผูกมัด และ คอมไพล์ สัญญาต้นไม้ ออกคำเตือนหากข้อความบันทึกการคอมมิตที่มอบให้
ดูไม่เหมือนสตริง UTF-8 ที่ถูกต้อง เว้นแต่คุณจะระบุอย่างชัดเจนว่าโปรเจ็กต์ของคุณใช้ a
การเข้ารหัสแบบเดิม วิธีพูดนี้คือต้องมี i18n.commitencoding ใน .git/config
ไฟล์เช่นนี้:

[i18n]
การเข้ารหัส = ISO-8859-1

ยอมรับวัตถุที่สร้างขึ้นด้วยการตั้งค่าข้างต้นบันทึกค่าของ i18n.commitencoding
ในส่วนหัวของการเข้ารหัส นี้เพื่อช่วยเหลือผู้อื่นที่มองพวกเขาในภายหลัง ขาด
ส่วนหัวนี้บอกเป็นนัยว่าข้อความบันทึกการคอมมิตถูกเข้ารหัสใน UTF-8

2. คอมไพล์ เข้าสู่ระบบ, คอมไพล์ โชว์, คอมไพล์ ตำหนิ และเพื่อนๆ ดูที่ส่วนหัวการเข้ารหัสของคอมมิชชัน
วัตถุ และพยายามเข้ารหัสข้อความบันทึกใหม่เป็น UTF-8 เว้นแต่จะระบุไว้เป็นอย่างอื่น คุณ
สามารถระบุการเข้ารหัสเอาต์พุตที่ต้องการด้วย i18n.logoutputencoding ใน .git/config
ไฟล์เช่นนี้:

[i18n]
ออกจากระบบเข้ารหัส = ISO-8859-1

หากคุณไม่มีตัวแปรคอนฟิกูเรชันนี้ ค่าของ i18n.commitencoding is
ใช้แทน

โปรดทราบว่าเราจงใจเลือกที่จะไม่เข้ารหัสข้อความบันทึกการคอมมิตใหม่เมื่อคอมมิตเป็น
ทำขึ้นเพื่อบังคับ UTF-8 ที่ระดับอ็อบเจ็กต์การคอมมิต เนื่องจากการเข้ารหัสซ้ำเป็น UTF-8 ไม่ใช่
จำเป็นต้องมีการดำเนินการย้อนกลับ

การกำหนดค่า


ดู git-config.php(1) สำหรับตัวแปรหลักและ git-diff(1) สำหรับการตั้งค่าที่เกี่ยวข้องกับ diff
รุ่น

รูปแบบสวย
ค่าเริ่มต้นสำหรับตัวเลือก --format (ดู พริตตี้ รูปแบบ ด้านบน) ค่าเริ่มต้นเป็นสื่อ

i18n.logOutputEncoding
การเข้ารหัสเพื่อใช้เมื่อแสดงบันทึก (ดู การสนทนา ด้านบน) ค่าเริ่มต้นเป็นค่าของ
i18n.commitEncoding หากตั้งค่าไว้ และ UTF-8 เป็นอย่างอื่น

เข้าสู่ระบบ.วันที่
รูปแบบเริ่มต้นสำหรับวันที่ที่มนุษย์อ่านได้ (เปรียบเทียบตัวเลือก --date) ค่าเริ่มต้นเป็น
"default" ซึ่งหมายถึงการเขียนวันที่เช่น Sat May 8 19:35:34 2010 -0500

เข้าสู่ระบบติดตาม
ถ้าเป็นจริง บันทึก git จะทำหน้าที่เสมือนว่า --follow ตัวเลือกถูกใช้เมื่อ single เป็น
ที่ให้ไว้. มีข้อจำกัดเหมือนกับ --follow คือใช้ follow ไม่ได้
หลายไฟล์และใช้งานไม่ได้กับประวัติที่ไม่เป็นเชิงเส้น

log.showRoot
หากเป็นเท็จ บันทึก git และคำสั่งที่เกี่ยวข้องจะไม่ถือว่าการคอมมิตเริ่มต้นเป็น big
เหตุการณ์การสร้าง รูทใด ๆ ที่คอมมิตในเอาต์พุต git log -p จะแสดงโดยไม่มี diff
ที่แนบมา. ค่าเริ่มต้นเป็นจริง

เมลแมป*
ดู git-shortlog(1)

note.displayRef
อ้างอิงใดนอกเหนือจากค่าเริ่มต้นที่กำหนดโดย core.notesRef หรือ GIT_NOTES_REF, อ่าน
บันทึกจากเมื่อแสดงข้อความยืนยันด้วยตระกูลบันทึกของคำสั่ง ดู คอมไพล์-
บันทึก(1)

อาจเป็นชื่ออ้างอิงที่ไม่ย่อหรือ glob และอาจระบุหลายครั้ง อา
จะออกคำเตือนสำหรับผู้อ้างอิงที่ไม่มีอยู่ แต่เป็น glob ที่ไม่ตรงกับใด ๆ
ผู้อ้างอิงจะถูกละเว้นอย่างเงียบ ๆ

การตั้งค่านี้สามารถปิดใช้งานได้โดยตัวเลือก --no-notes แทนที่โดย
GIT_NOTES_DISPLAY_REF ตัวแปรสภาพแวดล้อมและแทนที่โดย --notes=
ตัวเลือก

GIT


เป็นส่วนหนึ่งของ คอมไพล์(1) ห้องชุด

ใช้ git-log ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad




×
โฆษณา
❤️ช้อป จอง หรือซื้อที่นี่โดยไม่เสียค่าใช้จ่าย ช่วยให้บริการต่างๆ ฟรี