นี่คือคำสั่ง git-for-each-ref ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
git-for-each-ref - ส่งออกข้อมูลในแต่ละref
เรื่องย่อ
คอมไพล์ for-แต่ละ-ref [--นับ= ] [--shell|--perl|--python|--tcl]
[(--sort= )...] [--format= ] [ ...]
[--จุด-ที่ ] [(--รวม | --ไม่มีการรวม) [ ]]
[--ประกอบด้วย [ ]]
DESCRIPTION
ย้ำผู้อ้างอิงทั้งหมดที่ตรงกัน และแสดงตามที่กำหนดไว้ ,
หลังจากจัดเรียงตามชุดที่กำหนดของ . ถ้า ได้รับ, หยุดหลังจาก
แสดงว่ามีผู้อ้างอิงหลายคน ค่าที่สอดแทรกใน สามารถเลือกที่จะยกมาเป็น
ตัวอักษรสตริงในภาษาโฮสต์ที่ระบุช่วยให้สามารถประเมินโดยตรงในนั้น
ภาษา.
OPTIONS
โดยค่าเริ่มต้น คำสั่งจะแสดงการอ้างอิงทั้งหมดที่ตรงกัน . ตัวเลือกนี้ทำให้มันหยุด
หลังจากแสดงให้เห็นว่าผู้อ้างอิงหลายคน
ชื่อฟิลด์ที่จะเรียงลำดับ คำนำหน้า - เพื่อเรียงลำดับจากมากไปหาน้อยของค่า เมื่อไหร่
ไม่ระบุ ใช้ชื่อผู้อ้างอิง คุณสามารถใช้ --sort= ตัวเลือกหลายครั้งใน
ซึ่งกรณีที่คีย์สุดท้ายกลายเป็นคีย์หลัก
สตริงที่สอดแทรก %(fieldname) จากวัตถุที่ผู้อ้างอิงชี้ไปที่
แสดง หากชื่อฟิลด์นำหน้าด้วยเครื่องหมายดอกจัน (*) และผู้อ้างอิงชี้ไปที่แท็ก
วัตถุ ค่าสำหรับฟิลด์ในการอ้างอิงแท็กวัตถุถูกใช้ เมื่อไม่ได้ระบุ
ค่าเริ่มต้นเป็น %(ชื่อวัตถุ) SPC %(ประเภทวัตถุ) TAB %(ชื่ออ้างอิง) นอกจากนี้ยังสอดแทรก %% ถึง
% และ %xx โดยที่ xx เป็นเลขฐานสิบหกสอดแทรกอักขระด้วยรหัสฐานสิบหก xx; สำหรับ
ตัวอย่าง %00 สอดแทรกเป็น \0 (NUL), %09 ถึง \t (TAB) และ %0a ถึง \n (LF)
...
หากกำหนดรูปแบบหนึ่งหรือมากกว่า จะแสดงเฉพาะผู้อ้างอิงที่ตรงกับอย่างน้อยหนึ่ง
รูปแบบไม่ว่าจะใช้ fnmatch(3) หรือตามตัวอักษร ในกรณีหลังตรงกันทั้งหมด
หรือจากจุดเริ่มต้นจนถึงเครื่องหมายทับ
--shell, --perl, --python, --tcl
หากกำหนดไว้ สตริงที่แทนที่ตัวยึดตำแหน่ง %(fieldname) จะถูกยกมาเป็น string
ตัวอักษรที่เหมาะสมกับภาษาโฮสต์ที่ระบุ นี้หมายถึงการผลิต
scriptlet ที่สามารถ `ประเมิน` ได้โดยตรง
--points-at
แสดงรายการผู้อ้างอิงที่ชี้ไปที่วัตถุที่กำหนดเท่านั้น
--ผสาน [ ]
แสดงรายการผู้อ้างอิงที่มีเคล็ดลับที่สามารถเข้าถึงได้จากการคอมมิตที่ระบุ (HEAD ถ้าไม่ใช่
ระบุไว้)
--ไม่มีการผสาน [ ]
แสดงรายการผู้อ้างอิงที่มีเคล็ดลับไม่สามารถเข้าถึงได้จากการคอมมิตที่ระบุ (HEAD ถ้าไม่ใช่
ระบุไว้)
--ประกอบด้วย [ ]
เฉพาะแท็กรายการที่มีการคอมมิตที่ระบุ (HEAD หากไม่ได้ระบุ)
สนามIE ชื่อ
ค่าต่างๆ จากฟิลด์ที่มีโครงสร้างในออบเจกต์อ้างอิงสามารถใช้เพื่อสอดแทรก
ลงในผลลัพธ์ที่ได้ หรือเป็นคีย์การเรียงลำดับ
สำหรับอ็อบเจ็กต์ทั้งหมด สามารถใช้ชื่อต่อไปนี้:
เปลี่ยนชื่อ
ชื่อผู้อ้างอิง (ส่วนหลัง $GIT_DIR/) สำหรับชื่อย่อที่ไม่คลุมเครือของ
อ้างอิงต่อท้าย :short. ตัวเลือก core.warnAmbiguousRefs ใช้เพื่อเลือกเข้มงวด
โหมดตัวย่อ ถ้าสตริป= ถูกต่อท้ายแถบ เส้นทางที่คั่นด้วยสแลช
ส่วนประกอบจากด้านหน้าของชื่อผู้อ้างอิง (เช่น %(refname:strip=2) เปลี่ยน refs/tags/foo
เป็น foo ต้องเป็นจำนวนเต็มบวก หากผู้อ้างอิงที่แสดงมีส่วนประกอบน้อยกว่า
กว่า คำสั่งยกเลิกโดยมีข้อผิดพลาด
ประเภทวัตถุ
ประเภทของอ็อบเจ็กต์ (blob, tree, commit, tag)
ขนาดวัตถุ
ขนาดของวัตถุ (เท่ากับ คอมไพล์ cat file -s รายงาน)
ชื่อวัตถุ
ชื่อวัตถุ (aka SHA-1) สำหรับตัวย่อที่ไม่คลุมเครือของชื่อวัตถุ
ต่อท้าย :short.
ต้นน้ำลำธาร
ชื่อผู้อ้างอิงในพื้นที่ซึ่งถือได้ว่าเป็น "ต้นน้ำ" จากผู้อ้างอิงที่แสดง
ความเคารพ :short ในลักษณะเดียวกับ refname ด้านบน ขอแสดงความนับถือ :track to show
"[ahead N, หลัง M]" และ :trackshort เพื่อแสดงเวอร์ชันสั้น: ">" (ข้างหน้า), "<"
(ข้างหลัง), "<>" (ข้างหน้าและข้างหลัง) หรือ "=" (พร้อมกัน) ไม่มีผลหากกรรมการไม่
มีข้อมูลการติดตามที่เกี่ยวข้อง
ดัน
ชื่อผู้อ้างอิงในพื้นที่ซึ่งแสดงถึงตำแหน่ง @{push} สำหรับผู้อ้างอิงที่แสดง
เคารพตัวเลือก :short, :track และ :trackshort เช่นเดียวกับอัปสตรีม ผลิตที่ว่างเปล่า
สตริงถ้าไม่มีการกำหนดค่าผู้อ้างอิง @{push}
HEAD
* ถ้า HEAD ตรงกับผู้อ้างอิงปัจจุบัน (สาขาที่เช็คเอาท์) ' ' มิฉะนั้น
สี
เปลี่ยนสีเอาต์พุต ติดตามโดย : โดยที่ชื่อจะอธิบายใน
สี.สาขา.*.
จัดแนว
จัดตำแหน่งเนื้อหาระหว่าง %(align:...) ทางซ้าย ตรงกลาง หรือทางขวาระหว่าง %(align:...) และ %(end) NS
"align:" ตามด้วย และ ในลำดับใดๆ คั่นด้วยเครื่องหมายจุลภาค
ที่ไหน คือ ซ้าย ขวา หรือตรงกลาง ค่าเริ่มต้นคือ ซ้าย และ
คือความยาวรวมของเนื้อหาที่มีการจัดตำแหน่ง หากเนื้อหามีความยาวมากกว่า
ความกว้างแล้วไม่มีการจัดตำแหน่ง ถ้าใช้กับ --อ้าง ทุกอย่างในระหว่าง
%(align:...) และ %(end) ถูกยกมา แต่ถ้าซ้อนกัน ระดับบนสุดเท่านั้นที่จะดำเนินการ
คำพูด
นอกเหนือจากข้างต้น สำหรับวัตถุการคอมมิทและแท็ก ชื่อฟิลด์ส่วนหัว (tree,
พาเรนต์ ออบเจ็กต์ ประเภท และแท็ก) สามารถใช้เพื่อระบุค่าในช่องส่วนหัว
สำหรับคอมมิตและแท็กอ็อบเจ็กต์ ฟิลด์ Creatordate และ Creator พิเศษจะสอดคล้องกับ
วันที่เหมาะสมหรือชื่อ-อีเมล-วันที่ทูเพิลจากฟิลด์ผู้มอบหรือแท็กเกอร์
ขึ้นอยู่กับประเภทของวัตถุ สิ่งเหล่านี้มีไว้สำหรับการทำงานบนการผสมผสานของคำอธิบายประกอบและ
แท็กน้ำหนักเบา
ฟิลด์ที่มีทูเพิล name-email-date เป็นค่าของมัน (ผู้แต่ง ผู้คอมมิชชัน และแท็กเกอร์) สามารถเป็น
ต่อท้ายด้วยชื่อ อีเมล และวันที่เพื่อแยกส่วนประกอบที่มีชื่อ
ข้อความที่สมบูรณ์ในวัตถุกระทำและแท็กคือเนื้อหา บรรทัดแรกคือ
เนื้อหา:หัวเรื่องโดยที่หัวเรื่องคือการต่อกันของทุกบรรทัดของข้อความส่งขึ้น
ถึงบรรทัดแรกว่าง บรรทัดต่อไปคือ เนื้อหา:ร่างกาย, โดยที่ร่างกายคือเส้นทั้งหมด
หลังบรรทัดแรกว่าง ลายเซ็น GPG ที่เป็นตัวเลือกคือ contents:signature นู๋คนแรก
ได้รับบรรทัดของข้อความโดยใช้ content:lines=N
เพื่อวัตถุประสงค์ในการเรียงลำดับ ฟิลด์ที่มีค่าตัวเลขจะเรียงลำดับตามตัวเลข (ขนาดวัตถุ
Authordate, committerdate, createdate, taggerdate) ช่องอื่นๆ ทั้งหมดใช้เพื่อจัดเรียงใน
ลำดับค่าไบต์ของพวกเขา
นอกจากนี้ยังมีตัวเลือกในการจัดเรียงตามเวอร์ชัน ซึ่งสามารถทำได้โดยใช้ fieldname
version:refname หรือนามแฝงของมัน v:refname.
ไม่ว่าในกรณีใด ชื่อฟิลด์ที่อ้างถึงฟิลด์ที่ไม่สามารถใช้ได้กับอ็อบเจ็กต์ที่อ้างอิงโดย
ผู้อ้างอิงไม่ทำให้เกิดข้อผิดพลาด ส่งคืนสตริงว่างแทน
เป็นกรณีพิเศษสำหรับฟิลด์ประเภทวันที่ คุณอาจระบุรูปแบบสำหรับวันที่โดย
เพิ่ม : ตามด้วยชื่อรูปแบบวันที่ (ดูค่าตัวเลือก --date to :git-รอบ-
รายการ(1) รับ)
ตัวอย่าง
ตัวอย่างการสร้างข้อความที่จัดรูปแบบโดยตรง แสดงการคอมมิตที่ติดแท็ก 3 รายการล่าสุด:
#!bin / sh /
git for-each-ref --count=3 --sort='-*authordate' \
--format='จาก: %(*ชื่อผู้แต่ง) %(*อีเมลผู้เขียน)
หัวเรื่อง: %(*หัวเรื่อง)
วันที่: %(*วันที่ผู้แต่ง)
อ้างอิง: %(*ชื่ออ้างอิง)
%(*ร่างกาย)
'อ้างอิง/แท็ก'
ตัวอย่างง่ายๆ ที่แสดงการใช้เชลล์ eval บนเอาต์พุต สาธิตการใช้
--เปลือก. รายการคำนำหน้าของหัวทั้งหมด:
#!bin / sh /
git for-each-ref --shell --format="ref=%(refname)" refs/heads | \
ขณะอ่านรายการ
do
ประเมิน "$entry"
echo `นามสกุล $ref`
ทำ
รายงานเกี่ยวกับแท็กที่ละเอียดขึ้นอีกเล็กน้อย ซึ่งแสดงให้เห็นว่ารูปแบบอาจเป็นทั้งหมด
สคริปต์:
#!bin / sh /
fmt='
r=%(ชื่ออ้างอิง)
t=%(*ประเภทวัตถุ)
T=${r#refs/tags/}
o=%(*ชื่อวัตถุ)
n=%(*ชื่อผู้แต่ง)
e=%(*อีเมลผู้เขียน)
s=%(*เรื่อง)
d=%(*วันที่เขียน)
b=%(*ตัว)
ชนิด=แท็ก
ถ้าทดสอบ "z$t" = z
แล้วก็
#อาจเป็นแท็กเบาๆก็ได้
t=%(ประเภทวัตถุ)
kind="ป้ายน้ำหนักเบา"
o=%(ชื่อวัตถุ)
n=%(ชื่อผู้แต่ง)
e=%(อีเมลผู้เขียน)
s=%(เรื่อง)
d=%(วันที่เขียน)
ข=%(ร่างกาย)
fi
echo "$kind $T ชี้ไปที่วัตถุ $t $o"
ถ้าทดสอบ "z$t" = zcommit
แล้วก็
echo "การคอมมิตเขียนโดย $n $e
ที่ $d และชื่อ
$s
ข้อความของมันอ่านว่า:
"
echo "$b" | sed -e "s/^/ /"
เสียงสะท้อน
fi
'
eval=`git for-each-ref --shell --format="$fmt" \
--sort='*objecttype' \
--sort=-แท็กเกอร์วันที่ \
อ้างอิง/tags`
eval "$ eval"
ใช้ git-for-each-ref ออนไลน์โดยใช้บริการ onworks.net