ນີ້ແມ່ນຄໍາສັ່ງ git-for-each-ref ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
git-for-each-ref - ຂໍ້ມູນຜົນຜະລິດໃນແຕ່ລະ ref
ສະຫຼຸບສັງລວມ
ໄປ ສໍາລັບແຕ່ລະອ້າງອີງ [--count= ] [--shell|--perl|--python|--tcl]
[(--sort= )...] [--format= ] [ ...]
[--ຈຸດ-ຢູ່ ] [(--ລວມ | --no-merged) [ ]]
[-- ປະກອບດ້ວຍ [ ]]
ລາຍລະອຽດ
ກວດສອບການອ້າງອີງທັງໝົດທີ່ກົງກັນ ແລະສະແດງໃຫ້ເຂົາເຈົ້າຕາມທີ່ໄດ້ຮັບ ,
ຫຼັງຈາກການຄັດເລືອກໃຫ້ເຂົາເຈົ້າຕາມທີ່ກໍານົດໄວ້ຂອງ . ຖ້າ ແມ່ນໃຫ້, ຢຸດຫຼັງຈາກ
ສະແດງໃຫ້ເຫັນວ່າຫຼາຍອ້າງອີງ. ຄ່າ interpolated ໃນ ທາງເລືອກສາມາດຖືກອ້າງອີງເປັນ
string literals ໃນພາສາເຈົ້າພາບທີ່ລະບຸໄວ້ອະນຸຍາດໃຫ້ມີການປະເມີນຜົນໂດຍກົງຂອງພວກເຂົາໃນນັ້ນ
ພາສາ.
OPTIONS
ໂດຍຄ່າເລີ່ມຕົ້ນຄໍາສັ່ງສະແດງໃຫ້ເຫັນການອ້າງອີງທັງຫມົດທີ່ກົງກັນ . ທາງເລືອກນີ້ເຮັດໃຫ້ມັນຢຸດເຊົາ
ຫຼັງຈາກສະແດງໃຫ້ເຫັນການອ້າງອີງຫຼາຍ.
ຊື່ຊ່ອງຂໍ້ມູນເພື່ອຈັດຮຽງ. ຄໍານໍາຫນ້າ - ເພື່ອຈັດລຽງຕາມລໍາດັບ descending ຂອງມູນຄ່າ. ເມື່ອໃດ
unspecified, refname ແມ່ນໃຊ້. ເຈົ້າອາດຈະໃຊ້ --sort= ທາງເລືອກຫຼາຍຄັ້ງ, ໃນ
ກໍລະນີໃດກະແຈສຸດທ້າຍກາຍເປັນກະແຈຫຼັກ.
ສະຕຣິງທີ່ interpolates %(fieldname) ຈາກວັດຖຸທີ່ຊີ້ໄປໂດຍຜູ້ອ້າງອີງ
ສະແດງໃຫ້ເຫັນ. ຖ້າຊື່ພາກສະຫນາມຖືກນໍາຫນ້າດ້ວຍເຄື່ອງໝາຍດາວ (*) ແລະຈຸດອ້າງອີງໃສ່ແທັກ
ວັດຖຸ, ຄ່າສໍາລັບພາກສະຫນາມໃນແທັກວັດຖຸອ້າງອີງແມ່ນຖືກນໍາໃຊ້. ເມື່ອບໍ່ລະບຸ,
ຄ່າເລີ່ມຕົ້ນເປັນ %(objectname) SPC %(objecttype) TAB %(refname). ມັນຍັງ interpolates %% ກັບ
%, ແລະ % xx ທີ່ xx ແມ່ນຕົວເລກ hex interpolates ກັບຕົວອັກສອນທີ່ມີລະຫັດ hex xx; ສໍາລັບ
ຕົວຢ່າງ %00 interpolates ກັບ \0 (NUL), %09 ຫາ \t (TAB) ແລະ %0a ຫາ \n (LF).
...
ຖ້າມີຫນຶ່ງຫຼືຫຼາຍຮູບແບບຖືກໃຫ້, ມີພຽງແຕ່ການອ້າງອີງເທົ່ານັ້ນທີ່ກົງກັບຢ່າງຫນ້ອຍຫນຶ່ງ
ຮູບແບບ, ບໍ່ວ່າຈະໃຊ້ fnmatch(3) ຫຼືຕາມຕົວອັກສອນ, ໃນກໍລະນີສຸດທ້າຍທີ່ກົງກັນຢ່າງສົມບູນ
ຫຼືຈາກຈຸດເລີ່ມຕົ້ນເຖິງເຄື່ອງຫມາຍ.
--shell, --perl, --python, --tcl
ຖ້າໃຫ້, ສະຕຣິງທີ່ແທນຕົວຍຶດ %(fieldname) ຈະຖືກອ້າງອີງເປັນສະຕຣິງ
ຕົວໜັງສືທີ່ເໝາະສົມກັບພາສາເຈົ້າພາບທີ່ລະບຸ. ນີ້ແມ່ນຫມາຍເຖິງການຜະລິດ a
scriptlet ທີ່ສາມາດໂດຍກົງໄດ້ 'eval'ed.
--ຈຸດ-ຢູ່
ລາຍຊື່ພຽງແຕ່ອ້າງອີງເຖິງຈຸດທີ່ວັດຖຸທີ່ໃຫ້.
-- ລວມ [ ]
ພຽງແຕ່ລາຍຊື່ຜູ້ອ້າງອີງທີ່ຄໍາແນະນໍາແມ່ນສາມາດບັນລຸໄດ້ຈາກຄໍາຫມັ້ນສັນຍາທີ່ກໍານົດໄວ້ (HEAD ຖ້າບໍ່ແມ່ນ
ລະບຸ).
--ບໍ່ລວມ [ ]
ລາຍຊື່ພຽງແຕ່ຜູ້ອ້າງອີງທີ່ຄໍາແນະນໍາບໍ່ສາມາດບັນລຸໄດ້ຈາກຄໍາຫມັ້ນສັນຍາທີ່ກໍານົດ (HEAD ຖ້າບໍ່ແມ່ນ
ລະບຸ).
-- ປະກອບດ້ວຍ [ ]
ພຽງແຕ່ລາຍຊື່ແທັກທີ່ມີຄໍາຫມັ້ນສັນຍາທີ່ລະບຸ (HEAD ຖ້າບໍ່ໄດ້ລະບຸ).
ສະໜາມ ຊື່
ຄ່າຕ່າງໆຈາກຊ່ອງຂໍ້ມູນທີ່ມີໂຄງສ້າງໃນວັດຖຸທີ່ອ້າງອີງສາມາດຖືກນໍາໃຊ້ເພື່ອ interpolate
ເຂົ້າໄປໃນຜົນໄດ້ຮັບ, ຫຼືເປັນລະຫັດຈັດລຽງ.
ສໍາລັບວັດຖຸທັງຫມົດ, ຊື່ຕໍ່ໄປນີ້ສາມາດນໍາໃຊ້ໄດ້:
ປ່ຽນຊື່
ຊື່ຂອງຜູ້ອ້າງອີງ (ສ່ວນຫຼັງຈາກ $GIT_DIR/). ສໍາລັບຊື່ສັ້ນທີ່ບໍ່ຊັດເຈນຂອງ
ອ້າງອີງເພີ່ມເຕີມ: ສັ້ນ. ຕົວເລືອກ core.warnAmbiguousRefs ຖືກນໍາໃຊ້ເພື່ອເລືອກທີ່ເຄັ່ງຄັດ
ຮູບແບບການຫຍໍ້. ຖ້າເສັ້ນດ່າງ = ຖືກຕໍ່ທ້າຍ, ເສັ້ນດ່າງ ເສັ້ນທາງທີ່ແຍກຕົວຕັດ
ອົງປະກອບຈາກດ້ານຫນ້າຂອງ rename (ເຊັ່ນ: %(refname:strip=2) turns refs/tags/foo
ເຂົ້າໄປໃນ foo. ຕ້ອງເປັນຈໍານວນບວກ. ຖ້າການອ້າງອີງທີ່ສະແດງມີສ່ວນປະກອບຫນ້ອຍ
ກວ່າ , ຄໍາສັ່ງຍົກເລີກດ້ວຍຄວາມຜິດພາດ.
ປະເພດວັດຖຸ
ປະເພດຂອງວັດຖຸ (blob, tree, commit, tag).
ຂະຫນາດວັດຖຸ
ຂະຫນາດຂອງວັດຖຸ (ຄືກັນກັບ ໄປ cat-file -s ລາຍງານ).
ຊື່ວັດຖຸ
ຊື່ວັດຖຸ (aka SHA-1). ສໍາລັບການຫຍໍ້ທີ່ບໍ່ຊັດເຈນຂອງຊື່ວັດຖຸ
ເພີ່ມເຕີມ: ສັ້ນ.
ສາຍນ້ ຳ
ຊື່ຂອງຜູ້ອ້າງອີງທ້ອງຖິ່ນທີ່ສາມາດພິຈາລະນາເປັນ "ນ້ໍາ" ຈາກເອກະສານອ້າງອີງທີ່ສະແດງ.
ຄວາມເຄົາລົບ : ສັ້ນໃນລັກສະນະດຽວກັນກັບການປ່ຽນຊື່ຂ້າງເທິງ. ນອກຈາກນັ້ນເຄົາລົບ : ຕິດຕາມເພື່ອສະແດງໃຫ້ເຫັນ
"[ຕໍ່ຫນ້າ N, ຫລັງ M]" ແລະ :trackshort ເພື່ອສະແດງສະບັບ terse: ">" (ຕໍ່ຫນ້າ), "<"
(ທາງຫລັງ), "<>" (ຕໍ່ຫນ້າແລະຫລັງ), ຫຼື "=" (ໃນ sync). ບໍ່ມີຜົນຫຍັງຖ້າ ref ບໍ່
ມີຂໍ້ມູນການຕິດຕາມທີ່ກ່ຽວຂ້ອງກັບມັນ.
ການຊຸກຍູ້
ຊື່ຂອງຜູ້ອ້າງອີງທ້ອງຖິ່ນທີ່ເປັນຕົວແທນຂອງສະຖານທີ່ @{push} ສໍາລັບການອ້າງອີງທີ່ສະແດງ.
Respects :short, :track, and :trackshort options as upstream does. ຜະລິດເປົ່າຫວ່າງ
string ຖ້າບໍ່ມີ @{push} ref ຖືກຕັ້ງຄ່າ.
HEAD
* ຖ້າ HEAD ກົງກັບເອກະສານອ້າງອີງໃນປະຈຸບັນ (ສາຂາທີ່ອອກແລ້ວ), ' ' ຖ້າບໍ່ດັ່ງນັ້ນ.
ສີ
ປ່ຽນສີຜົນຜະລິດ. ຕິດຕາມໂດຍ: , ບ່ອນທີ່ຊື່ໄດ້ຖືກອະທິບາຍຢູ່ໃນ
ສີ.ສາຂາ.*.
align
ຊ້າຍ-, ກາງ-, ຫຼືຂວາຈັດເນື້ອໃນລະຫວ່າງ %(align:...) ແລະ %(end). ໄດ້
"align:" ແມ່ນຕິດຕາມດ້ວຍ ແລະ ໃນຄໍາສັ່ງໃດໆທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ,
ບ່ອນທີ່ ແມ່ນຊ້າຍ, ຂວາຫຼືກາງ, ຄ່າເລີ່ມຕົ້ນແມ່ນຊ້າຍແລະ
ແມ່ນຄວາມຍາວທັງຫມົດຂອງເນື້ອໃນທີ່ມີການຈັດຕໍາແຫນ່ງ. ຖ້າຄວາມຍາວຂອງເນື້ອຫາແມ່ນຫຼາຍກ່ວາ
ຄວາມກວ້າງຫຼັງຈາກນັ້ນບໍ່ມີການຈັດຕໍາແຫນ່ງ. ຖ້າໃຊ້ກັບ --quote ທຸກສິ່ງທຸກຢ່າງຢູ່ໃນລະຫວ່າງ
%(align:...) ແລະ %(end) ຖືກອ້າງອີງ, ແຕ່ຖ້າວາງໄວ້ແລ້ວພຽງແຕ່ລະດັບສູງສຸດເທົ່ານັ້ນທີ່ປະຕິບັດໄດ້.
ວົງຢືມ.
ນອກເຫນືອໄປຈາກຂ້າງເທິງ, ສໍາລັບຄໍາຫມັ້ນສັນຍາແລະ tag objects, ຊື່ພາກສະຫນາມ header (ຕົ້ນໄມ້,
parent, object, type, and tag) ສາມາດໃຊ້ເພື່ອລະບຸຄ່າໃນຊ່ອງ header.
ສໍາລັບຄໍາຫມັ້ນສັນຍາແລະແທັກວັດຖຸ, ຊ່ອງຂໍ້ມູນຜູ້ສ້າງແລະຜູ້ສ້າງພິເສດຈະສອດຄ່ອງກັບ
ວັນທີທີ່ເຫມາະສົມ ຫຼືຊື່-email-date tuple ຈາກຊ່ອງຂໍ້ມູນ committer ຫຼື tagger
ຂຶ້ນກັບປະເພດວັດຖຸ. ເຫຼົ່ານີ້ແມ່ນມີຈຸດປະສົງສໍາລັບການເຮັດວຽກກ່ຽວກັບການປະສົມຂອງຄໍາບັນຍາຍແລະ
tags ນ້ໍາຫນັກເບົາ.
ຊ່ອງຂໍ້ມູນທີ່ມີ tuple ຊື່-email-date ເປັນມູນຄ່າຂອງມັນ (ຜູ້ຂຽນ, committer, ແລະ tagger) ສາມາດເປັນ.
suffixed ກັບຊື່, ອີເມວ, ແລະວັນທີເພື່ອສະກັດອົງປະກອບທີ່ມີຊື່.
ຂໍ້ຄວາມທີ່ສົມບູນໃນ commit ແລະ tag object ແມ່ນເນື້ອໃນ. ເສັ້ນທໍາອິດຂອງມັນແມ່ນ
contents:subject, ບ່ອນທີ່ subject ແມ່ນ concatenation ຂອງທຸກສາຍຂອງ commit message ຂຶ້ນ
ໄປຫາເສັ້ນຫວ່າງທໍາອິດ. ແຖວຕໍ່ໄປແມ່ນ ເນື້ອໃນ: ຮ່າງກາຍ, ບ່ອນທີ່ຮ່າງກາຍແມ່ນທັງຫມົດຂອງສາຍ
ຫຼັງຈາກເສັ້ນເປົ່າທໍາອິດ. ລາຍເຊັນ GPG ທາງເລືອກແມ່ນເນື້ອໃນ: ລາຍເຊັນ. ທໍາອິດ N
ສາຍຂອງຂໍ້ຄວາມແມ່ນໄດ້ຮັບໂດຍໃຊ້ contents:lines=N.
ສໍາລັບຈຸດປະສົງການຈັດຮຽງ, ຊ່ອງຂໍ້ມູນທີ່ມີຄ່າຕົວເລກຈັດຮຽງຕາມລໍາດັບຕົວເລກ (ຂະຫນາດວັດຖຸ,
authordate, committerdate, creatordate, taggerdate). ຊ່ອງຂໍ້ມູນອື່ນໆທັງໝົດແມ່ນໃຊ້ເພື່ອຈັດຮຽງ
ຄໍາສັ່ງມູນຄ່າ byte ຂອງພວກເຂົາ.
ນອກຈາກນີ້ຍັງມີທາງເລືອກທີ່ຈະຈັດຮຽງຕາມສະບັບ, ນີ້ສາມາດເຮັດໄດ້ໂດຍການໃຊ້ຊື່ພາກສະຫນາມ
version:refname ຫຼືນາມແຝງຂອງມັນ v:refname.
ໃນກໍລະນີໃດກໍ່ຕາມ, ຊື່ພາກສະຫນາມທີ່ຫມາຍເຖິງພາກສະຫນາມທີ່ບໍ່ສາມາດໃຊ້ໄດ້ກັບວັດຖຸທີ່ອ້າງອີງໂດຍ
ref ບໍ່ເຮັດໃຫ້ເກີດຄວາມຜິດພາດ. ມັນສົ່ງຄ່າສະຕຣິງຫວ່າງເປົ່າແທນ.
ໃນຖານະເປັນກໍລະນີພິເສດສໍາລັບພາກສະຫນາມປະເພດວັນທີ, ທ່ານອາດຈະລະບຸຮູບແບບສໍາລັບວັນທີໂດຍ
ເພີ່ມ : ຕິດຕາມດ້ວຍຊື່ຮູບແບບວັນທີ (ເບິ່ງຄ່າທີ່ຕົວເລືອກ --date ກັບ :git-rev-
ບັນຊີລາຍຊື່(1) ໃຊ້ເວລາ).
ຕົວຢ່າງ
ຕົວຢ່າງໂດຍກົງໃນການຜະລິດຂໍ້ຄວາມທີ່ມີຮູບແບບ. ສະແດງ 3 tagged commits ຫຼ້າສຸດ:
#!/ ຖັງ / sh
git for-each-ref --count=3 --sort='-* authordate' \
--format='ຈາກ: %(*authorname) %(*ຜູ້ຂຽນຈົດໝາຍ)
ຫົວຂໍ້: %(*ຫົວຂໍ້)
ວັນທີ: %(* authordate)
ອ້າງອີງ: %(*ຊື່ຄືນ)
%(*ຮ່າງກາຍ)
'ອ້າງອີງ/ແທັກ'
ຕົວຢ່າງງ່າຍດາຍສະແດງໃຫ້ເຫັນການນໍາໃຊ້ shell eval ກ່ຽວກັບຜົນຜະລິດ, ສະແດງໃຫ້ເຫັນການນໍາໃຊ້ຂອງ
--ແກະ. ບອກຄໍານໍາຫນ້າຂອງຫົວທັງຫມົດ:
#!/ ຖັງ / sh
git for-each-ref --shell --format="ref=%(refname)" refs/heads | \
ໃນຂະນະທີ່ອ່ານເຂົ້າ
do
eval "$entry"
ສຽງສະທ້ອນ 'dirname $ref'
ເຮັດ
ບົດລາຍງານລະອຽດເລັກນ້ອຍກ່ຽວກັບແທັກ, ສະແດງໃຫ້ເຫັນວ່າຮູບແບບອາດຈະເປັນທັງຫມົດ
ອັກສອນ:
#!/ ຖັງ / sh
fmt='
r=%(ຊື່ຄືນ)
t=%(*ປະເພດວັດຖຸ)
T=${r#refs/tags/}
o=%(*ຊື່ວັດຖຸ)
n=%(*ຊື່ຜູ້ຂຽນ)
e=%(*ອີເມລຜູ້ຂຽນ)
s=%(*ວິຊາ)
d=%(*ຜູ້ຂຽນ)
b=%(*ຮ່າງກາຍ)
kind=ແທັກ
ຖ້າທົດສອບ "z$t" = z
ຫຼັງຈາກນັ້ນ
# ອາດຈະເປັນແທັກທີ່ມີນ້ໍາຫນັກເບົາ
t=%(ປະເພດວັດຖຸ)
kind="ແທັກນໍ້າໜັກເບົາ"
o=%(ຊື່ວັດຖຸ)
n=%(ຊື່ຜູ້ຂຽນ)
e=%(ອີເມລຜູ້ຂຽນ)
s=%(ວິຊາ)
d=%(ຜູ້ຂຽນ)
b=%(ຮ່າງກາຍ)
fi
ສະທ້ອນ "$kind $T ຈຸດຢູ່ທີ່ວັດຖຸ $t $o"
ຖ້າທົດສອບ "z$t" = zcommit
ຫຼັງຈາກນັ້ນ
echo "ຄໍາຫມັ້ນສັນຍາໄດ້ຖືກຂຽນໂດຍ $n $e
ຢູ່ທີ່ $d, ແລະຫົວຂໍ້
$s
ຂໍ້ຄວາມຂອງມັນອ່ານເປັນ:
"
ສຽງສະທ້ອນ "$b" | sed -e "s/^/ /"
echo
fi
'
eval=`git for-each-ref --shell --format="$fmt" \
--sort='*objecttype' \
--sort=-taggerdate \
refs/tags`
eval "$eval"
ໃຊ້ git-for-each-ref ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net