ນີ້ແມ່ນຄໍາສັ່ງ git-gc ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
git-gc - ເຮັດຄວາມສະອາດໄຟລ໌ທີ່ບໍ່ຈໍາເປັນແລະເພີ່ມປະສິດທິພາບຂອງ repository ທ້ອງຖິ່ນ
ສະຫຼຸບສັງລວມ
ໄປ gc [--aggressive] [--auto] [--ງຽບ] [--prune= | --no-prune] [--force]
ລາຍລະອຽດ
ເຮັດໜ້າທີ່ຮັກສາເຮືອນຈຳນວນໜຶ່ງພາຍໃນບ່ອນເກັບຂໍ້ມູນປັດຈຸບັນ, ເຊັ່ນ: ການບີບອັດ
ການແກ້ໄຂໄຟລ໌ (ເພື່ອຫຼຸດຜ່ອນພື້ນທີ່ດິສກ໌ແລະເພີ່ມປະສິດທິພາບ) ແລະການຖອນທີ່ບໍ່ສາມາດເຂົ້າຫາໄດ້
ວັດຖຸທີ່ອາດຈະໄດ້ຮັບການສ້າງຕັ້ງຂຶ້ນຈາກການຮຽກຮ້ອງກ່ອນຫນ້າຂອງ ໄປ ເພີ່ມ.
ຜູ້ໃຊ້ໄດ້ຖືກຊຸກຍູ້ໃຫ້ດໍາເນີນການວຽກງານນີ້ເປັນປົກກະຕິພາຍໃນແຕ່ລະ repository ກັບ
ຮັກສາການນໍາໃຊ້ພື້ນທີ່ດິສກ໌ທີ່ດີແລະປະສິດທິພາບການເຮັດວຽກທີ່ດີ.
ບາງຄໍາສັ່ງ git ອາດຈະດໍາເນີນການໂດຍອັດຕະໂນມັດ ໄປ gc; ເບິ່ງ --auto flag ຂ້າງລຸ່ມນີ້ສໍາລັບລາຍລະອຽດ. ຖ້າ
ທ່ານຮູ້ວ່າທ່ານກໍາລັງເຮັດຫຍັງແລະສິ່ງທີ່ທ່ານຕ້ອງການແມ່ນເພື່ອປິດພຶດຕິກໍານີ້ຢ່າງຖາວອນ
ໂດຍບໍ່ມີການພິຈາລະນາເພີ່ມເຕີມ, ພຽງແຕ່ເຮັດ:
$ git config --global gc.auto 0
OPTIONS
-- ຮຸກຮານ
ປົກກະຕິແລ້ວ ໄປ gc ແລ່ນໄວຫຼາຍໃນຂະນະທີ່ສະຫນອງການນໍາໃຊ້ພື້ນທີ່ດິດທີ່ດີແລະ
ການປະຕິບັດ. ທາງເລືອກນີ້ຈະເຮັດໃຫ້ເກີດ ໄປ gc ເພື່ອເພີ່ມປະສິດທິພາບການຮຸກຮານຫຼາຍຂຶ້ນ
repository ໃນຄ່າໃຊ້ຈ່າຍຂອງການໃຊ້ເວລາຫຼາຍ. ຜົນກະທົບຂອງການເພີ່ມປະສິດທິພາບນີ້
ແມ່ນຄົງຢູ່, ສະນັ້ນທາງເລືອກນີ້ພຽງແຕ່ຕ້ອງການໃຊ້ເປັນບາງຄັ້ງຄາວ; ທຸກໆສອງສາມຮ້ອຍ
ການປ່ຽນແປງຫຼືດັ່ງນັ້ນ.
--ອັດຕະໂນມັດ
ດ້ວຍຕົວເລືອກນີ້, ໄປ gc ກວດເບິ່ງວ່າຕ້ອງການຮັກສາເຮືອນ; ຖ້າບໍ່, ມັນອອກໄປ
ໂດຍບໍ່ມີການປະຕິບັດວຽກງານໃດໆ. ບາງຄໍາສັ່ງ git ດໍາເນີນການ git gc --auto ຫຼັງຈາກປະຕິບັດ
ການດໍາເນີນງານທີ່ສາມາດສ້າງວັດຖຸວ່າງຫຼາຍ.
ຕ້ອງຮັກສາເຮືອນ ຖ້າມີສິ່ງຂອງວ່າງຫຼາຍເກີນໄປ ຫຼືມີຊອງຫຼາຍເກີນໄປ
ຄັງເກັບມ້ຽນ. ຖ້າຈໍານວນຂອງວັດຖຸວ່າງເກີນມູນຄ່າຂອງ gc.auto
ຕົວແປການຕັ້ງຄ່າ, ຫຼັງຈາກນັ້ນວັດຖຸວ່າງທັງໝົດຈະຖືກລວມເຂົ້າເປັນຊຸດດຽວໂດຍໃຊ້
git repack -d -l. ການຕັ້ງຄ່າຄ່າຂອງ gc.auto ເປັນ 0 ປິດການຫຸ້ມຫໍ່ອັດຕະໂນມັດຂອງ
ວັດຖຸວ່າງ.
ຖ້າຈໍານວນຊອງເກີນມູນຄ່າຂອງ gc.autoPackLimit, ຫຼັງຈາກນັ້ນຊຸດທີ່ມີຢູ່
(ຍົກເວັ້ນໄຟລ໌ທີ່ຖືກໝາຍດ້ວຍໄຟລ໌ .keep) ຖືກລວມເຂົ້າເປັນຊຸດດຽວໂດຍໃຊ້
- ທາງເລືອກຂອງ ໄປ repack. ການຕັ້ງຄ່າ gc.autoPackLimit ເປັນ 0 ປິດການໃຊ້ງານອັດຕະໂນມັດ
ການລວມຊຸດ.
--prune=
ຂັດສິ່ງຂອງວ່າງທີ່ເກົ່າກວ່າວັນທີ (ຄ່າເລີ່ມຕົ້ນແມ່ນ 2 ອາທິດກ່ອນ, ສາມາດ overridable ໂດຍ config
gc.pruneExpire ຕົວແປ). --prune=ທຸກ prunes ວ່າງວັດຖຸໂດຍບໍ່ຄໍານຶງເຖິງອາຍຸຂອງເຂົາເຈົ້າ (ເຮັດ
ຢ່າໃຊ້ --prune=all ເວັ້ນເສຍແຕ່ວ່າທ່ານຮູ້ຢ່າງແນ່ນອນວ່າທ່ານກໍາລັງເຮັດຫຍັງ. ເວັ້ນເສຍແຕ່ repository
ແມ່ນ quiescent, ທ່ານຈະສູນເສຍວັດຖຸທີ່ສ້າງຂຶ້ນໃຫມ່ທີ່ຍັງບໍ່ໄດ້ສະມໍກັບ
refs ແລະສິ້ນສຸດເຖິງ corrupting repository ຂອງທ່ານ). --prune ເປີດເປັນຄ່າເລີ່ມຕົ້ນ.
--no-prune
ຢ່າຕັດສິ່ງຂອງທີ່ວ່າງອອກ.
--ງຽບ
ສະກັດກັ້ນການລາຍງານຄວາມຄືບຫນ້າທັງຫມົດ.
--ກຳລັງ
ບັງຄັບ git gc ດໍາເນີນການເຖິງແມ່ນວ່າອາດຈະມີ git gc instance ອື່ນແລ່ນຢູ່ໃນນີ້
repository
CONFIGURATION
ຕົວແປການຕັ້ງຄ່າທາງເລືອກ gc.reflog ໝົດອາຍຸ ສາມາດຖືກກໍານົດເພື່ອຊີ້ບອກໄລຍະເວລາ
ລາຍການປະຫວັດສາດພາຍໃນ reflog ຂອງແຕ່ລະສາຂາຄວນຈະມີຢູ່ໃນ repository ນີ້.
ການຕັ້ງຄ່າແມ່ນສະແດງອອກເປັນໄລຍະເວລາ, ຕົວຢ່າງ 90 ວັນ or 3 ເດືອນ. ມັນເປັນຄ່າເລີ່ມຕົ້ນ
to 90 ວັນ.
ຕົວແປການຕັ້ງຄ່າທາງເລືອກ gc.reflogExpireUnreachable ສາມາດໄດ້ຮັບການກໍານົດເພື່ອຊີ້ບອກວິທີການ
ລາຍການ reflog ປະຫວັດສາດທີ່ຍາວນານທີ່ບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງສາຂາໃນປະຈຸບັນຄວນຈະຍັງຄົງຢູ່
ມີຢູ່ໃນບ່ອນເກັບມ້ຽນນີ້. ປະເພດເຫຼົ່ານີ້ຂອງການອອກສຽງໂດຍທົ່ວໄປແມ່ນການສ້າງເປັນຜົນມາຈາກ
ການນໍາໃຊ້ git commit --amend ຫຼື git rebase ແລະເປັນຄໍາຫມັ້ນສັນຍາກ່ອນທີ່ຈະດັດແກ້ຫຼື rebase.
ເກີດຂຶ້ນ. ເນື່ອງຈາກການປ່ຽນແປງເຫຼົ່ານີ້ບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງໂຄງການໃນປະຈຸບັນຜູ້ໃຊ້ສ່ວນໃຫຍ່ຈະຕ້ອງການ
ໝົດອາຍຸພວກມັນໄວກວ່ານີ້. ທາງເລືອກນີ້ເປັນຄ່າເລີ່ມຕົ້ນທີ່ 30 ວັນ.
ທັງສອງຕົວແປການຕັ້ງຄ່າຂ້າງເທິງສາມາດຖືກມອບໃຫ້ກັບຮູບແບບ. ຕົວຢ່າງ, ຊຸດນີ້
ຄ່າໝົດອາຍຸທີ່ບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນພຽງແຕ່ຕໍ່ກັບສາຂາການຕິດຕາມທາງໄກເທົ່ານັ້ນ:
[gc "refs/remotes/*"]
reflogExpire = ບໍ່ເຄີຍ
reflogExpireUnreachable = 3 ມື້
ຕົວແປການຕັ້ງຄ່າທາງເລືອກ gc.rerere ແກ້ໄຂແລ້ວ ຊີ້ບອກໄລຍະເວລາຂອງການບັນທຶກ
ການຮວມທີ່ຂັດແຍ້ງກັນທີ່ທ່ານໄດ້ແກ້ໄຂກ່ອນໜ້ານີ້ຈະຖືກເກັບໄວ້. ນີ້ກຳນົດໄວ້ເປັນ 60 ມື້.
ຕົວແປການຕັ້ງຄ່າທາງເລືອກ gc.rerereUnresolved ຊີ້ບອກໄລຍະເວລາຂອງການບັນທຶກ
ການຜະສົມຜະສານທີ່ຂັດແຍ້ງທີ່ທ່ານຍັງບໍ່ໄດ້ແກ້ໄຂຈະຖືກເກັບຮັກສາໄວ້. ນີ້ກຳນົດໄວ້ເປັນ 15 ມື້.
ຕົວແປການຕັ້ງຄ່າທາງເລືອກ gc.packRefs ກໍານົດຖ້າຫາກວ່າ ໄປ gc ແລ່ນ ໄປ pack-refs.
ນີ້ສາມາດຖືກຕັ້ງເປັນ "notbare" ເພື່ອເປີດໃຊ້ງານມັນພາຍໃນ repos ທີ່ບໍ່ແມ່ນເປົ່າທັງຫມົດຫຼືມັນສາມາດຕັ້ງເປັນ
ຄ່າ boolean. ອັນນີ້ຕັ້ງເປັນຖືກຕ້ອງ.
ຕົວແປການຕັ້ງຄ່າທາງເລືອກ gc.aggressiveWindow ຄວບຄຸມເວລາຫຼາຍປານໃດ
optimizing ການບີບອັດ delta ຂອງວັດຖຸໃນ repository ໃນເວລາທີ່ --aggressive
ທາງເລືອກແມ່ນໄດ້ລະບຸໄວ້. ມູນຄ່າທີ່ໃຫຍ່ກວ່າ, ເວລາຫຼາຍແມ່ນໃຊ້ເວລາໃນການເພີ່ມປະສິດທິພາບຂອງ delta
ການບີບອັດ. ເບິ່ງເອກະສານສໍາລັບ --window' ທາງເລືອກໃນ git-repack(1) ສໍາລັບການເພີ່ມເຕີມ
ລາຍລະອຽດ. ຄ່າເລີ່ມຕົ້ນນີ້ແມ່ນ 250.
ເຊັ່ນດຽວກັນ, ຕົວປ່ຽນແປງການຕັ້ງຄ່າທາງເລືອກ gc.aggressiveDepth ຄວບຄຸມ -- ທາງເລືອກຄວາມເລິກ
in git-repack(1). ຄ່າເລີ່ມຕົ້ນນີ້ແມ່ນ 250.
ຕົວແປການຕັ້ງຄ່າທາງເລືອກ gc.prune ໝົດອາຍຸ ຄວບຄຸມວ່າການວ່າງທີ່ບໍ່ໄດ້ອ້າງອີງເຖິງອາຍຸປານໃດ
ວັດຖຸຈະຕ້ອງຖືກຕັດອອກກ່ອນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ "2 ອາທິດກ່ອນ".
ຫມາຍເຫດ
ໄປ gc ພະຍາຍາມຫຼາຍທີ່ຈະມີຄວາມປອດໄພກ່ຽວກັບຂີ້ເຫຍື້ອມັນເກັບກໍາ. ໂດຍສະເພາະ, ມັນຈະ
ຮັກສາບໍ່ພຽງແຕ່ວັດຖຸອ້າງອີງໂດຍຊຸດສາຂາແລະແທັກໃນປະຈຸບັນຂອງທ່ານ, ແຕ່ຍັງ
ວັດຖຸທີ່ອ້າງອີງໂດຍດັດຊະນີ, ສາຂາການຕິດຕາມໄລຍະໄກ, ອ້າງອີງບັນທຶກໂດຍ ໄປ ສາຂາການກັ່ນຕອງ
ໃນ refs / ຕົ້ນສະບັບ /, ຫຼື reflogs (ເຊິ່ງອາດຈະອ້າງເຖິງຄໍາຫມັ້ນສັນຍາໃນສາຂາທີ່ຕໍ່ມາ.
ການແກ້ໄຂຫຼື rewound).
ຖ້າເຈົ້າຄາດຫວັງວ່າຈະເກັບເອົາວັດຖຸບາງອັນ ແລະພວກມັນບໍ່ແມ່ນ, ໃຫ້ກວດເບິ່ງທັງໝົດນັ້ນ
ສະຖານທີ່ແລະຕັດສິນໃຈວ່າມັນສົມເຫດສົມຜົນໃນກໍລະນີຂອງທ່ານທີ່ຈະເອົາການອ້າງອີງເຫຼົ່ານັ້ນ.
ກອກ
ໄດ້ ໄປ gc --ອັດຕະໂນມັດ ຄໍາສັ່ງຈະດໍາເນີນການ pre-auto-gc hook. ເບິ່ງ Githooks(5) ສໍາລັບການເພີ່ມເຕີມ
ຂໍ້ມູນຂ່າວສານ.
ໃຊ້ git-gc ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net