Amazon Best VPN GoSearch

OnWorks favicon

git-push - ອອນລາຍໃນຄລາວ

ແລ່ນ git-push ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ git-push ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


git-push - ປັບປຸງການອ້າງອີງທາງໄກພ້ອມກັບວັດຖຸທີ່ກ່ຽວຂ້ອງ

ສະຫຼຸບສັງລວມ


ໄປ ການຊຸກຍູ້ [--ທັງໝົດ | --ກະຈົກ | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack= ]
[--repo= ] [-f | --force] [--prune] [-v | --verbose]
[-u | --ຕັ້ງ​ຂຶ້ນ​ນ​້​ໍ​າ​]
[--[no-]ເຊັນ|--sign=(ຈິງ|false|ຖ້າຖາມ)]
[--force-with-lease[= [: ]]]
[--no-verify] [ [ ...]]

ລາຍລະອຽດ


ປັບປຸງການອ້າງອີງທາງໄກໂດຍໃຊ້ refs ທ້ອງຖິ່ນ, ໃນຂະນະທີ່ການສົ່ງວັດຖຸທີ່ຈໍາເປັນເພື່ອເຮັດສໍາເລັດ
ອ້າງອີງໃຫ້.

ທ່ານສາມາດເຮັດໃຫ້ສິ່ງທີ່ຫນ້າສົນໃຈເກີດຂຶ້ນກັບ repository ທຸກໆຄັ້ງທີ່ທ່ານຍູ້ເຂົ້າໄປໃນມັນ, ໂດຍ
ການສ້າງຕັ້ງຂຶ້ນ hooks ຢູ່ທີ່ນັ້ນ. ເບິ່ງເອກະສານສໍາລັບ git-receive-pack(1).

ໃນ​ເວ​ລາ​ທີ່​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​ບໍ່​ໄດ້​ກໍາ​ນົດ​ບ່ອນ​ທີ່​ຈະ​ຊຸກ​ດັນ​ໃຫ້​ມີ​ ການໂຕ້ຖຽງ,
branch.*.remote configuration ສໍາລັບສາຂາປະຈຸບັນແມ່ນປຶກສາຫາລືເພື່ອກໍານົດບ່ອນທີ່ຈະ
ຍູ້. ຖ້າການຕັ້ງຄ່າຂາດຫາຍໄປ, ມັນຈະເປັນຄ່າເລີ່ມຕົ້ນ ຕົ້ນກໍາເນີດ.

ໃນເວລາທີ່ເສັ້ນຄໍາສັ່ງບໍ່ໄດ້ກໍານົດສິ່ງທີ່ຈະຍູ້ດ້ວຍ ... ການໂຕ້ຖຽງ ຫຼື --ທັງໝົດ,
--mirror, --tags ທາງເລືອກ, ຄໍາສັ່ງຊອກຫາຄ່າເລີ່ມຕົ້ນ ໂດຍການປຶກສາ
remote.*.push configuration, ແລະ ຖ້າ​ຫາກ​ວ່າ​ມັນ​ບໍ່​ໄດ້​ພົບ​ເຫັນ, honors push.default configuration ກັບ
ຕັດ​ສິນ​ໃຈ​ສິ່ງ​ທີ່​ຈະ​ຊຸກ​ຍູ້ (ເບິ່ງ git-config(1) ສໍາລັບຄວາມຫມາຍຂອງ push.default).

ເມື່ອທັງເສັ້ນຄໍາສັ່ງຫຼືການຕັ້ງຄ່າບໍ່ໄດ້ລະບຸສິ່ງທີ່ຕ້ອງຍູ້, ຄ່າເລີ່ມຕົ້ນ
ພຶດຕິກໍາຖືກນໍາໃຊ້, ເຊິ່ງກົງກັບຄ່າງ່າຍດາຍສໍາລັບ push.default: ປະຈຸບັນ
ສາຂາແມ່ນ pushed ກັບສາຂາ upstream ທີ່ສອດຄ້ອງກັນ, ແຕ່ເປັນມາດຕະການຄວາມປອດໄພ, ການຊຸກຍູ້
ຈະຖືກເອົາລູກອອກຖ້າສາຂາຕົ້ນນ້ໍາບໍ່ມີຊື່ດຽວກັນກັບທ້ອງຖິ່ນ.

OPTIONS



ຄັງເກັບມ້ຽນ "ໄລຍະໄກ" ທີ່ເປັນຈຸດຫມາຍປາຍທາງຂອງການປະຕິບັດການຊຸກຍູ້. ພາລາມິເຕີນີ້ສາມາດເປັນ
ບໍ່ວ່າຈະເປັນ URL (ເບິ່ງພາກ GIT URLS ຂ້າງລຸ່ມນີ້) ຫຼືຊື່ຂອງຫ່າງໄກສອກຫຼີກ (ເບິ່ງພາກ
REMOTES ຂ້າງລຸ່ມນີ້).

...
ລະບຸຈຸດໝາຍປາຍທາງເພື່ອອັບເດດກັບວັດຖຸແຫຼ່ງໃດ. ຮູບແບບຂອງ ກ
ພາລາມິເຕີເປັນທາງເລືອກບວກ +, ຕາມດ້ວຍວັດຖຸແຫຼ່ງ ,
ຕາມດ້ວຍຈໍ້າສອງເມັດ :, ຕິດຕາມດ້ວຍຈຸດໝາຍປາຍທາງ .

ໄດ້ ມັກຈະເປັນຊື່ຂອງສາຂາທີ່ເຈົ້າຢາກຈະຍູ້, ແຕ່ມັນສາມາດເປັນອັນໃດກໍ່ໄດ້
arbitrary "SHA-1 expression", ເຊັ່ນ master~4 ຫຼື HEAD (ເບິ່ງ ການວິໄສທັດ(7)).

ໄດ້ ບອກວ່າ ref ຂ້າງໄກໃດໄດ້ຖືກປັບປຸງດ້ວຍການຊຸກຍູ້ນີ້. ມັກ
ການສະແດງອອກບໍ່ສາມາດຖືກນໍາໃຊ້ຢູ່ທີ່ນີ້, ເອກະສານອ້າງອີງຕົວຈິງຕ້ອງຖືກຕັ້ງຊື່. ຖ້າ git push
[ ] ໂດຍບໍ່ມີການໃດໆ argument ຖືກກໍານົດໃຫ້ປັບປຸງບາງ ref ຢູ່ທີ່
ຈຸດຫມາຍປາຍທາງກັບ ກັບໄລຍະໄກ. .push ຕົວແປການຕັ້ງຄ່າ, :
ພາກສ່ວນສາມາດຖືກລະເວັ້ນ - ການຊຸກຍູ້ດັ່ງກ່າວຈະປັບປຸງເອກະສານອ້າງອີງ ປົກກະຕິແລ້ວການປັບປຸງໂດຍບໍ່ມີການ
ໃດ ຢູ່ໃນເສັ້ນຄໍາສັ່ງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຂາດ: ຫມາຍຄວາມວ່າຈະປັບປຸງຄືກັນ
ref ເປັນ .

ວັດຖຸອ້າງອີງໂດຍ ຖືກ​ນໍາ​ໃຊ້​ເພື່ອ​ປັບ​ປຸງ​ ກະ​ສານ​ອ້າງ​ອີງ​ໃນ​ໄລ​ຍະ​ໄກ​
ຂ້າງ. ໂດຍຄ່າເລີ່ມຕົ້ນນີ້ແມ່ນອະນຸຍາດໃຫ້ພຽງແຕ່ຖ້າຫາກວ່າ ບໍ່ແມ່ນແທັກ (ໝາຍເຫດ ຫຼື
lightweight), ແລະຫຼັງຈາກນັ້ນພຽງແຕ່ຖ້າຫາກວ່າມັນສາມາດໄວໄປຂ້າງຫນ້າ . ໂດຍການມີທາງເລືອກ
ນໍາ +, ທ່ານສາມາດບອກ Git ເພື່ອປັບປຸງ ref ເຖິງແມ່ນວ່າມັນບໍ່ໄດ້ຖືກອະນຸຍາດໃຫ້ໂດຍ
default (e. g. ມັນບໍ່ແມ່ນຄວາມໄວຕໍ່ຫນ້າ.) ນີ້ເຮັດ ບໍ່ ພະ​ຍາ​ຍາມ​ທີ່​ຈະ​ລວມ​ ເຂົ້າໄປໃນ
. ເບິ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້ສໍາລັບລາຍລະອຽດ.

ແທັກ ຫມາຍຄວາມວ່າຄືກັນກັບ refs/tags/ :refs/tags/ .

ຍູ້ເປົ່າ ອະນຸຍາດໃຫ້ທ່ານສາມາດລຶບ ອ້າງອີງຈາກ repository ຫ່າງໄກສອກຫຼີກ.

refspec ພິເສດ : (ຫຼື +: ເພື່ອອະນຸຍາດໃຫ້ມີການປັບປຸງທີ່ບໍ່ມີການສົ່ງຕໍ່ໄວ) ຊີ້ Git ເພື່ອຊຸກຍູ້.
ສາຂາ "ຈັບຄູ່": ສໍາລັບທຸກໆສາຂາທີ່ມີຢູ່ໃນທ້ອງຖິ່ນ, ດ້ານຫ່າງໄກສອກຫຼີກ
ຈະຖືກປັບປຸງຖ້າຫາກວ່າສາຂາຂອງຊື່ດຽວກັນມີຢູ່ແລ້ວໃນດ້ານຫ່າງໄກສອກຫຼີກ.

--ທັງໝົດ
ຍູ້ສາຂາທັງຫມົດ (ie refs ພາຍໃຕ້ refs/heads/); ບໍ່​ສາ​ມາດ​ນໍາ​ໃຊ້​ກັບ​ອື່ນໆ​ .

--prune
ເອົາສາຂາຫ່າງໄກສອກຫຼີກທີ່ບໍ່ມີຄູ່ທ້ອງຖິ່ນ. ສໍາລັບຕົວຢ່າງ, ຫ່າງໄກສອກຫຼີກ
ສາຂາ tmp ຈະຖືກລຶບອອກຖ້າສາຂາທ້ອງຖິ່ນທີ່ມີຊື່ດຽວກັນບໍ່ມີຢູ່
ເພີ່ມເຕີມ. ອັນນີ້ຍັງເຄົາລົບ refspec, ເຊັ່ນ: git push --prune remote
refs/heads/*:refs/tmp/* ຈະເຮັດໃຫ້ແນ່ໃຈວ່າ refs/tmp/foo ໄລຍະໄກຈະຖືກລຶບອອກຖ້າ
ບໍ່ມີ refs/heads/foo.

--ກະຈົກ
ແທນທີ່ຈະຕັ້ງຊື່ແຕ່ລະ ref ທີ່ຈະ push, ກໍານົດວ່າ refs ທັງຫມົດພາຍໃຕ້ refs / (ຊຶ່ງ.
ປະກອບມີແຕ່ບໍ່ຈໍາກັດພຽງແຕ່ refs/heads/, refs/remotes/, ແລະ refs/tags/) ຈະຖືກສະທ້ອນ
ກັບ repository ຫ່າງໄກສອກຫຼີກ. ຂໍ້ມູນອ້າງອີງທ້ອງຖິ່ນທີ່ສ້າງຂຶ້ນໃໝ່ຈະຖືກຍູ້ໄປເຖິງຈຸດທີ່ຫ່າງໄກ,
refs ທີ່ຖືກປັບປຸງຢູ່ໃນທ້ອງຖິ່ນຈະຖືກບັງຄັບໃຫ້ປັບປຸງຢູ່ປາຍທາງໄກ, ແລະ refs ທີ່ຖືກລົບຈະເປັນ
ເອົາ​ອອກ​ຈາກ​ປາຍ​ຫ່າງ​ໄກ​ສອກ​ຫຼີກ​. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນຖ້າຕົວເລືອກການຕັ້ງຄ່າ
ໄລຍະໄກ. .ກະຈົກຖືກຕັ້ງ.

-n, --dry-run
ເຮັດທຸກສິ່ງທຸກຢ່າງຍົກເວັ້ນຕົວຈິງແລ້ວສົ່ງການປັບປຸງ.

-- porcelain
ຜະລິດຜົນຜະລິດທີ່ເຄື່ອງອ່ານໄດ້. ເສັ້ນສະຖານະຜົນຜະລິດສໍາລັບແຕ່ລະ ref ຈະເປັນ
tab-separated ແລະຖືກສົ່ງໄປຫາ stdout ແທນ stderr. ຊື່ສັນຍາລັກອັນເຕັມທີ່ຂອງ
refs ຈະຖືກມອບໃຫ້.

--ລຶບ
ການອ້າງອີງທີ່ລະບຸໄວ້ທັງໝົດຈະຖືກລຶບອອກຈາກບ່ອນເກັບຂໍ້ມູນທາງໄກ. ນີ້ແມ່ນຄືກັນກັບການນໍາຫນ້າ
ອ້າງອີງທັງໝົດດ້ວຍຈໍ້າສອງເມັດ.

--ແທັກ
refs ທັງຫມົດພາຍໃຕ້ refs / tags ໄດ້ຖືກ pushed, ນອກເຫນືອໄປຈາກ refspec ລະບຸໄວ້ຢ່າງຊັດເຈນຢູ່ໃນ.
ບັນທັດຄໍາສັ່ງ.

--follow-tags
ຍູ້ການອ້າງອີງທັງໝົດທີ່ຈະຖືກ pushed ໂດຍບໍ່ມີທາງເລືອກນີ້, ແລະຍັງ push annotated
tags ໃນ refs / tags ທີ່ຫາຍໄປຈາກຫ່າງໄກສອກຫຼີກແຕ່ຊີ້ໃຫ້ເຫັນເຖິງ commit-ish ວ່າ
ແມ່ນສາມາດບັນລຸໄດ້ຈາກການອ້າງອີງທີ່ຖືກຊຸກດັນ. ນີ້ຍັງສາມາດຖືກກໍານົດດ້ວຍ
ຕົວແປການຕັ້ງຄ່າ push.followTags. ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ push.followTags in
git-config(1).

--[no-]ເຊັນ, --sign=(ຈິງ|false|ຖ້າຖາມ)
GPG-ເຊັນຊື່ການຮ້ອງຂໍໃຫ້ປັບປຸງ refs ໃນດ້ານທີ່ໄດ້ຮັບ, ເພື່ອອະນຸຍາດໃຫ້ມັນເປັນ
ກວດສອບໂດຍ hooks ແລະ / ຫຼືຖືກບັນທຶກ. ຖ້າບໍ່ຖືກຕ້ອງ ຫຼື -- ບໍ່ມີການເຊັນ, ບໍ່ມີການເຊັນ
ພະຍາຍາມ. ຖ້າເປັນຈິງ ຫຼື --signed, ການຊຸກຍູ້ຈະລົ້ມເຫລວຖ້າເຄື່ອງແມ່ຂ່າຍບໍ່ສະຫນັບສະຫນູນ
ເຊັນສັນຍາຊຸກຍູ້. ຖ້າຕັ້ງເປັນ if- asked, sign if and only if the server supports signed
ຍູ້. ການຊຸກຍູ້ຍັງຈະລົ້ມເຫລວຖ້າການໂທຫາ gpg --sign ລົ້ມເຫລວ. ເບິ່ງ git-
ຮັບຊອງ(1) ສໍາລັບລາຍລະອຽດກ່ຽວກັບການຮັບ.

--[ບໍ່-]ປະລໍາມະນູ
ໃຊ້ທຸລະກໍາປະລໍາມະນູຢູ່ດ້ານໄກຖ້າມີ. ອ້າງອີງທັງໝົດແມ່ນ
ການປັບປຸງ, ຫຼືມີຄວາມຜິດພາດ, ບໍ່ມີການປັບປຸງການອ້າງອີງ. ຖ້າເຄື່ອງແມ່ຂ່າຍບໍ່ສະຫນັບສະຫນູນປະລໍາມະນູ
pushes ການຊຸກຍູ້ຈະລົ້ມເຫລວ.

--receive-pack= , --exec=
ເສັ້ນທາງໄປສູ່ git-receive-pack ໂຄງ​ການ​ກ່ຽວ​ກັບ​ການ​ຫ່າງ​ໄກ​ສອກ​ຫຼີກ​. ບາງຄັ້ງກໍ່ມີປະໂຫຍດໃນເວລາຍູ້
ກັບ repository ຫ່າງໄກສອກຫຼີກໃນໄລຍະ ssh, ແລະທ່ານບໍ່ມີໂຄງການຢູ່ໃນໄດເລກະທໍລີຢູ່ໃນ
ຄ່າເລີ່ມຕົ້ນ $PATH.

--[no-]force-with-lease, --force-with-lease= ,
--force-with-lease= :
ປົກກະຕິແລ້ວ, "git push" ປະຕິເສດທີ່ຈະປັບປຸງ ref ຫ່າງໄກສອກຫຼີກທີ່ບໍ່ແມ່ນບັນພະບຸລຸດຂອງ
ອ້າງອີງໃນທ້ອງຖິ່ນໃຊ້ເພື່ອຂຽນທັບມັນ.

ທາງ​ເລືອກ​ນີ້​ຈະ​ລົບ​ລ້າງ​ຂໍ້​ຈໍາ​ກັດ​ນີ້​ຖ້າ​ຫາກ​ວ່າ​ຄ່າ​ປະ​ຈຸ​ບັນ​ຂອງ​ການ​ອ້າງ​ອີງ​ທາງ​ໄກ​ແມ່ນ​ໄດ້​
ຄາດ​ວ່າ​ມູນ​ຄ່າ. "git push" ລົ້ມເຫລວຖ້າບໍ່ດັ່ງນັ້ນ.

ຈິນຕະນາການວ່າທ່ານຕ້ອງ rebase ສິ່ງທີ່ທ່ານໄດ້ຈັດພີມມາແລ້ວ. ເຈົ້າຈະຕ້ອງ
ຂ້າມກົດລະບຽບ "ຕ້ອງໄວ" ເພື່ອທົດແທນປະຫວັດສາດທີ່ທ່ານເດີມ
ພິມ​ເຜີຍ​ແຜ່​ທີ່​ມີ​ປະ​ຫວັດ​ສາດ rebased​. ຖ້າຄົນອື່ນສ້າງຢູ່ເທິງສຸດຂອງຕົ້ນສະບັບຂອງເຈົ້າ
ປະຫວັດສາດໃນຂະນະທີ່ທ່ານກໍາລັງ rebasing, ປາຍຂອງສາຂາຢູ່ຫ່າງໄກສອກຫຼີກອາດຈະກ້າວຫນ້າກັບ
ຄໍາຫມັ້ນສັນຍາຂອງນາງ, ແລະ blindly pushing ກັບ --force ຈະສູນເສຍການເຮັດວຽກຂອງນາງ.

ທາງເລືອກນີ້ອະນຸຍາດໃຫ້ທ່ານເວົ້າວ່າທ່ານຄາດຫວັງວ່າປະຫວັດສາດທີ່ທ່ານກໍາລັງປັບປຸງແມ່ນສິ່ງທີ່ທ່ານ
rebased ແລະຕ້ອງການທົດແທນ. ຖ້າ​ຫາກ​ວ່າ​ການ​ອ້າງ​ອີງ​ທາງ​ໄກ​ຍັງ​ຈຸດ​ທີ່​ຄໍາ​ຫມັ້ນ​ສັນ​ຍາ​ທ່ານ​
ລະບຸໄວ້, ທ່ານສາມາດແນ່ໃຈວ່າບໍ່ມີຄົນອື່ນເຮັດຫຍັງກັບຜູ້ອ້າງອີງ. ມັນຄື
ເອົາ "ເຊົ່າ" ຢູ່ໃນ ref ໂດຍບໍ່ມີການ lock ຢ່າງຊັດເຈນ, ແລະ ref ຫ່າງໄກສອກຫຼີກແມ່ນ
ປັບປຸງພຽງແຕ່ຖ້າ "ເຊົ່າ" ຍັງຖືກຕ້ອງ.

--force-with-lease ຢ່າງດຽວ, ໂດຍບໍ່ມີການລະບຸລາຍລະອຽດ, ຈະປົກປ້ອງການອ້າງອີງຈາກໄລຍະໄກທັງຫມົດ
ທີ່ຈະຖືກປັບປຸງໂດຍຮຽກຮ້ອງໃຫ້ມູນຄ່າປັດຈຸບັນຂອງພວກເຂົາຄືກັນກັບຄ່າ
ສາຂາການຕິດຕາມໄລຍະໄກທີ່ພວກເຮົາມີໃຫ້ເຂົາເຈົ້າ.

--force-with-lease= , ໂດຍບໍ່ມີການລະບຸຄ່າທີ່ຄາດໄວ້, ຈະປົກປ້ອງ
ຊື່ ref (ດຽວ), ຖ້າຈະປັບປຸງ, ໂດຍກໍານົດຄ່າປະຈຸບັນຂອງມັນ
ຄືກັນກັບສາຂາການຕິດຕາມໄລຍະໄກທີ່ພວກເຮົາມີສໍາລັບມັນ.

--force-with-lease= : ຈະ​ປົກ​ປັກ​ຮັກ​ສາ ref ທີ່​ມີ​ຊື່ (ດຽວ​)​, ຖ້າ​ຫາກ​ວ່າ​ມັນ​ແມ່ນ​
ຈະໄດ້ຮັບການປັບປຸງ, ໂດຍຮຽກຮ້ອງໃຫ້ມູນຄ່າປະຈຸບັນຂອງມັນຄືກັນກັບທີ່ລະບຸໄວ້
ຄ່າ (ເຊິ່ງອະນຸຍາດໃຫ້ແຕກຕ່າງຈາກສາຂາການຕິດຕາມຫ່າງໄກສອກຫຼີກພວກເຮົາ
ມີສໍາລັບການປ່ຽນຊື່, ຫຼືພວກເຮົາບໍ່ຈໍາເປັນຕ້ອງມີສາຂາການຕິດຕາມໄລຍະໄກ
ເມື່ອແບບຟອມນີ້ຖືກນໍາໃຊ້).

ໃຫ້ສັງເກດວ່າທຸກຮູບແບບນອກຈາກ --force-with-lease= : ທີ່​ລະ​ບຸ
ມູນຄ່າປັດຈຸບັນທີ່ຄາດໄວ້ຂອງ ref ຢ່າງຈະແຈ້ງແມ່ນຍັງທົດລອງແລະຂອງເຂົາເຈົ້າ
semantics ອາດຈະປ່ຽນແປງຍ້ອນວ່າພວກເຮົາມີປະສົບການກັບຄຸນສົມບັດນີ້.

"--no-force-with-lease" ຈະຍົກເລີກທຸກ --force-with-lease ທີ່ຜ່ານມາໃນຄໍາສັ່ງ
ເສັ້ນ.

-f, --force
ປົກກະຕິແລ້ວ, ຄໍາສັ່ງປະຕິເສດທີ່ຈະປັບປຸງ ref ໄລຍະໄກທີ່ບໍ່ແມ່ນບັນພະບຸລຸດຂອງ
ອ້າງອີງໃນທ້ອງຖິ່ນໃຊ້ເພື່ອຂຽນທັບມັນ. ນອກຈາກນັ້ນ, ເມື່ອທາງເລືອກ --force-with-lease ຖືກນໍາໃຊ້, the
ຄໍາສັ່ງປະຕິເສດທີ່ຈະປັບປຸງ ref ໄລຍະໄກທີ່ມູນຄ່າປະຈຸບັນບໍ່ກົງກັບສິ່ງທີ່ເປັນ
ຄາດວ່າ.

ທຸງນີ້ປິດການກວດສອບເຫຼົ່ານີ້, ແລະສາມາດເຮັດໃຫ້ repository ຫ່າງໄກສອກຫຼີກສູນເສຍ commits;
ໃຊ້ມັນດ້ວຍຄວາມລະມັດລະວັງ.

ໃຫ້ສັງເກດວ່າ --force ໃຊ້ກັບທຸກ refs ທີ່ຖືກ pushed, ດັ່ງນັ້ນການນໍາໃຊ້ມັນກັບ
push.default ຕັ້ງໃຫ້ກົງກັນຫຼືກັບຈຸດຫມາຍປາຍທາງ push ຫຼາຍ configured ກັບ
remote.*.push ອາດຈະຂຽນທັບ refs ອື່ນນອກຈາກສາຂາປະຈຸບັນ (ລວມທັງການອ້າງອີງທ້ອງຖິ່ນ
ທີ່​ຢູ່​ເບື້ອງ​ຫຼັງ​ຄູ່​ຮ່ວມ​ງານ​ຫ່າງ​ໄກ​ສອກ​ຫຼີກ​ຢ່າງ​ເຂັ້ມ​ງວດ​)​. ເພື່ອບັງຄັບໃຫ້ມີການຊຸກຍູ້ພຽງແຕ່ຫນຶ່ງ
ສາຂາ, ໃຊ້ a + ຢູ່ທາງຫນ້າຂອງ refspec ເພື່ອຍູ້ (ເຊັ່ນ: git push origin +master ເພື່ອບັງຄັບ
ການ​ຊຸກ​ຍູ້​ໃຫ້​ສາ​ຂາ​ແມ່​ບົດ​)​. ເບິ່ງ ... ພາກຂ້າງເທິງສໍາລັບລາຍລະອຽດ.

--repo=
ທາງເລືອກນີ້ແມ່ນທຽບເທົ່າກັບ ການໂຕ້ຖຽງ. ຖ້າທັງສອງຖືກລະບຸ, the
argument ແຖວຄໍາສັ່ງມີລໍາດັບຄວາມສໍາຄັນ.

-u, --set-upstream
ສໍາລັບທຸກໆສາຂາທີ່ທັນສະໄຫມຫຼືການຊຸກຍູ້ຢ່າງສໍາເລັດຜົນ, ໃຫ້ເພີ່ມສາຍນ້ໍາ (ຕິດຕາມ)
ການອ້າງອິງ, ໃຊ້ໂດຍການໂຕ້ຖຽງຫນ້ອຍ git-ດຶງ(1) ແລະຄໍາສັ່ງອື່ນໆ. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ,
ເບິ່ງ ສາຂາ. .ລວມ in git-config(1).

--[ບໍ່-]ບາງ
ທາງເລືອກເຫຼົ່ານີ້ແມ່ນໄດ້ຜ່ານໄປ git-send-pack(1). ການໂອນຍ້າຍບາງໆຫຼຸດລົງຢ່າງຫຼວງຫຼາຍ
ຈໍານວນຂໍ້ມູນທີ່ຖືກສົ່ງເມື່ອຜູ້ສົ່ງແລະຜູ້ຮັບແບ່ງປັນວັດຖຸດຽວກັນຫຼາຍອັນ
ທົ່ວໄປ. ຄ່າເລີ່ມຕົ້ນແມ່ນ --thin.

-q, --ງຽບ
ສະກັດກັ້ນຜົນຜະລິດທັງຫມົດ, ລວມທັງລາຍຊື່ຂອງ refs ທີ່ຖືກປັບປຸງ, ເວັ້ນເສຍແຕ່ວ່າມີຂໍ້ຜິດພາດເກີດຂື້ນ.
ຄວາມຄືບໜ້າບໍ່ໄດ້ຖືກລາຍງານຕໍ່ກັບການຖ່າຍທອດຄວາມຜິດພາດມາດຕະຖານ.

-v, --verbose
ແລ່ນດ້ວຍຄຳເວົ້າ.

- ແມ່ຍິງ
ສະຖານະຄວາມຄືບໜ້າຖືກລາຍງານຢູ່ໃນສະຕຣີມຄວາມຜິດພາດມາດຕະຖານຕາມຄ່າເລີ່ມຕົ້ນເມື່ອມັນຢູ່
ຕິດກັບ terminal, ເວັ້ນເສຍແຕ່ -q ຖືກກໍານົດ. ທຸງນີ້ບັງຄັບສະຖານະຄວາມຄືບຫນ້າເຖິງແມ່ນວ່າ
ຖ້າ​ຫາກ​ວ່າ​ການ​ສະ​ຕ​ຣີມ​ຄວາມ​ຜິດ​ພາດ​ມາດ​ຕະ​ຖານ​ແມ່ນ​ບໍ່​ໄດ້​ຖືກ​ນໍາ​ໄປ​ຫາ​ສະ​ຖານ​ທີ່​.

--no-recurse-submodules, --recurse-submodules=check|on-demand|ບໍ່
ອາດຈະຖືກນໍາໃຊ້ເພື່ອໃຫ້ແນ່ໃຈວ່າ submodule ທັງຫມົດ commits ນໍາໃຊ້ໂດຍການແກ້ໄຂທີ່ຈະ pushed ແມ່ນ
ມີຢູ່ໃນສາຂາການຕິດຕາມໄລຍະໄກ. ຖ້າ ໃຫ້​ກວດ​ເບິ່ງ ຖືກນໍາໃຊ້ Git ຈະກວດສອບວ່າທັງຫມົດ
submodule ຄໍາຫມັ້ນສັນຍາທີ່ມີການປ່ຽນແປງໃນການດັດແກ້ທີ່ຈະໄດ້ຮັບການ pushed ມີຢູ່ໃນຢ່າງຫນ້ອຍ
ຫນຶ່ງຫ່າງໄກສອກຫຼີກຂອງ submodule ໄດ້. ຖ້າ​ຫາກ​ວ່າ​ຄໍາ​ຫມັ້ນ​ສັນ​ຍາ​ໃດ​ຫາຍ​ໄປ​ການ​ຊຸກ​ຍູ້​ຈະ​ຖືກ​ເອົາ​ລູກ​ອອກ​ແລະ​
ອອກດ້ວຍສະຖານະທີ່ບໍ່ແມ່ນສູນ. ຖ້າ ຄວາມຕ້ອງການ ຖືກນໍາໃຊ້ submodules ທັງຫມົດທີ່ມີການປ່ຽນແປງໃນ
ການດັດແກ້ທີ່ຈະຖືກຊຸກຍູ້ຈະຖືກຊຸກຍູ້. ຖ້າຕາມຄວາມຕ້ອງການບໍ່ສາມາດຍູ້ທີ່ຈໍາເປັນທັງຫມົດ
ການແກ້ໄຂມັນຈະຖືກຍົກເລີກ ແລະອອກດ້ວຍສະຖານະທີ່ບໍ່ແມ່ນສູນ. ມູນຄ່າຂອງ no or
ການນໍາໃຊ້ --no-recurse-submodules ສາມາດຖືກນໍາໃຊ້ເພື່ອ override push.recurseSubmodules
ຕົວແປການຕັ້ງຄ່າເມື່ອບໍ່ມີການເອີ້ນຄືນໂມດູນຍ່ອຍແມ່ນຕ້ອງການ.

--[ບໍ່-]ຢືນຢັນ
ສະຫຼັບປຸ່ມກົດກ່ອນການຍູ້ (ເບິ່ງ Githooks(5)). ຄ່າເລີ່ມຕົ້ນແມ່ນ --verify, ໃຫ້ hook a
ໂອກາດເພື່ອປ້ອງກັນການຊຸກຍູ້. ດ້ວຍ --no-verify, hook ແມ່ນ bypassed ຫມົດ.

GIT urls


ໂດຍທົ່ວໄປ, URLs ມີຂໍ້ມູນກ່ຽວກັບໂປໂຕຄອນການຂົນສົ່ງ, ທີ່ຢູ່ຂອງ
ເຊີບເວີທາງໄກ, ແລະເສັ້ນທາງໄປຫາບ່ອນເກັບມ້ຽນ. ຂຶ້ນຢູ່ກັບອະນຸສັນຍາການຂົນສົ່ງ, ບາງ
ຂໍ້ມູນນີ້ອາດຈະບໍ່ມີ.

Git ສະຫນັບສະຫນູນ ssh, git, http, ແລະ https protocols (ນອກຈາກນັ້ນ, ftp, ແລະ ftps ສາມາດນໍາໃຊ້ໄດ້.
ສໍາລັບ fetching ແລະ rsync ສາມາດຖືກນໍາໃຊ້ສໍາລັບການດຶງແລະການຊຸກຍູ້, ແຕ່ເຫຼົ່ານີ້ແມ່ນບໍ່ມີປະສິດທິພາບແລະ
ເຊົາສະໜັບສະໜູນ; ຢ່າໃຊ້ພວກມັນ).

ການຂົນສົ່ງພື້ນເມືອງ (ເຊັ່ນ: git: // URL) ບໍ່ມີການພິສູດຢືນຢັນແລະຄວນຈະຖືກນໍາໃຊ້ກັບ
ລະມັດລະວັງກ່ຽວກັບເຄືອຂ່າຍທີ່ບໍ່ປອດໄພ.

syntax ຕໍ່ໄປນີ້ອາດຈະຖືກໃຊ້ກັບພວກມັນ:

· ssh://[user@]host.xz[:port]/path/to/repo.git/

· git://host.xz[:port]/path/to/repo.git/

· http[s]://host.xz[:port]/path/to/repo.git/

· ftp[s]://host.xz[:port]/path/to/repo.git/

· rsync://host.xz/path/to/repo.git/

syntax ຄ້າຍຄື scp ທາງເລືອກອາດຈະຖືກນໍາໃຊ້ກັບໂປໂຕຄອນ ssh:

· [user@]host.xz:path/to/repo.git/

syntax ນີ້ຖືກຮັບຮູ້ພຽງແຕ່ຖ້າບໍ່ມີຕົວຫຍໍ້ກ່ອນຈໍ້າສອງເມັດທໍາອິດ. ນີ້ຊ່ວຍ
ແຍກເສັ້ນທາງທ້ອງຖິ່ນທີ່ປະກອບດ້ວຍຈໍ້າສອງເມັດ. ຕົວຢ່າງເສັ້ນທາງທ້ອງຖິ່ນ foo:bar ສາມາດ
ຖືກລະບຸເປັນເສັ້ນທາງຢ່າງແທ້ຈິງ ຫຼື ./foo:bar ເພື່ອຫຼີກເວັ້ນການຖືກຕີຄວາມຜິດເປັນ ssh url.

ໂປໂຕຄອນ ssh ແລະ git ຍັງສະຫນັບສະຫນູນ ~ ການຂະຫຍາຍຊື່ຜູ້ໃຊ້:

· ssh://[user@]host.xz[:port]/~[user]/path/to/repo.git/

· git://host.xz[:port]/~[user]/path/to/repo.git/

· [user@]host.xz:/~[user]/path/to/repo.git/

ສໍາລັບ repositories ທ້ອງຖິ່ນ, ຍັງສະຫນັບສະຫນູນໂດຍ Git natively, syntax ດັ່ງຕໍ່ໄປນີ້ອາດຈະເປັນ
ໃຊ້:

· /path/to/repo.git/

· file:///path/to/repo.git/

ສອງ syntax ເຫຼົ່ານີ້ສ່ວນຫຼາຍແມ່ນທຽບເທົ່າ, ຍົກເວັ້ນໃນເວລາທີ່ cloning, ເມື່ອອະດີດຫມາຍເຖິງ
-- ທາງ​ເລືອກ​ໃນ​ທ້ອງ​ຖິ່ນ​. ເບິ່ງ git-clone(1) ສໍາລັບລາຍລະອຽດ.

ເມື່ອ Git ບໍ່ຮູ້ວິທີການຈັດການກັບໂປໂຕຄອນການຂົນສົ່ງທີ່ແນ່ນອນ, ມັນພະຍາຍາມໃຊ້
ຫ່າງ​ໄກ​ສອກ​ຫຼີກ- ຜູ້ຊ່ວຍຫ່າງໄກສອກຫຼີກ, ຖ້າມີຢູ່. ເພື່ອຮ້ອງຂໍໃຫ້ຜູ້ຊ່ວຍຫ່າງໄກສອກຫຼີກຢ່າງຊັດເຈນ,
syntax ຕໍ່ໄປນີ້ອາດຈະຖືກນໍາໃຊ້:

· ::

ຢູ່ໃສ ອາດຈະເປັນເສັ້ນທາງ, ເຊີບເວີແລະເສັ້ນທາງ, ຫຼືສະຕຣິງທີ່ຄ້າຍຄືກັບ URL ທີ່ມັກ
ຮັບຮູ້ໂດຍຜູ້ຊ່ວຍຫ່າງໄກສອກຫຼີກສະເພາະທີ່ຖືກຮຽກຮ້ອງ. ເບິ່ງ gitremote-helpers(1) ສໍາລັບ
ລາຍລະອຽດ.

ຖ້າມີຈໍານວນຫລາຍຂອງ repositories ຫ່າງໄກສອກຫຼີກທີ່ມີຊື່ຄ້າຍຄືກັນແລະທ່ານຕ້ອງການໃຊ້ a
ຮູບແບບທີ່ແຕກຕ່າງກັນສໍາລັບພວກເຂົາ (ເຊັ່ນວ່າ URL ທີ່ເຈົ້າໃຊ້ຈະຖືກຂຽນຄືນໃຫມ່ໃນ URLs ທີ່
ເຮັດວຽກ), ທ່ານສາມາດສ້າງພາກສ່ວນການຕັ້ງຄ່າຂອງແບບຟອມ:

[url " "]
ແທນທີ່ =

ສໍາລັບຕົວຢ່າງ, ດ້ວຍນີ້:

[url "git://git.host.xz/"]
ແທນທີ່ = host.xz:/path/to/
ແທນທີ່ = ວຽກ:

URL ເຊັ່ນ "work:repo.git" ຫຼືເຊັ່ນ "host.xz:/path/to/repo.git" ຈະຖືກຂຽນຄືນໃນອັນໃດນຶ່ງ.
ສະພາບການທີ່ເອົາ URL ເປັນ "git://git.host.xz/repo.git".

ຖ້າທ່ານຕ້ອງການຂຽນຄືນ URLs ສໍາລັບການຊຸກຍູ້ເທົ່ານັ້ນ, ທ່ານສາມາດສ້າງສ່ວນການຕັ້ງຄ່າຂອງ
ແບບຟອມ:

[url " "]
pushInsteadOf =

ສໍາລັບຕົວຢ່າງ, ດ້ວຍນີ້:

[url "ssh://example.org/"]
pushInsteadOf = git://example.org/

URL ເຊັ່ນ "git://example.org/path/to/repo.git" ຈະຖືກຂຽນຄືນໃສ່.
"ssh://example.org/path/to/repo.git" ສໍາລັບການ pushes, ແຕ່ pulls ຈະຍັງໃຊ້ຕົ້ນສະບັບ.
Url.

ສິ່ງທີ່ຄວນຮູ້


ຊື່ຂອງຫນຶ່ງໃນຕໍ່ໄປນີ້ສາມາດຖືກນໍາໃຊ້ແທນ URL ເປັນ ການໂຕ້ຖຽງ:

· ຣີໂໝດຢູ່ໃນໄຟລ໌ການຕັ້ງຄ່າ Git: $GIT_DIR/config,

· ໄຟລ໌ໃນບັນຊີ $GIT_DIR/ໄລຍະໄກ, ຫຼື

· ໄຟລ໌ໃນບັນຊີ $GIT_DIR/ສາຂາ.

ທັງຫມົດເຫຼົ່ານີ້ຍັງອະນຸຍາດໃຫ້ທ່ານເພື່ອຍົກເວັ້ນ refspec ຈາກເສັ້ນຄໍາສັ່ງເນື່ອງຈາກວ່າພວກເຂົາເຈົ້າແຕ່ລະຄົນ
ມີ refspec ທີ່ git ຈະໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.

ຊື່ ໄລຍະໄກ in configuration ເອກະສານ
ທ່ານ​ສາ​ມາດ​ເລືອກ​ທີ່​ຈະ​ສະ​ຫນອງ​ຊື່​ຂອງ​ທາງ​ໄກ​ທີ່​ທ່ານ​ໄດ້​ກໍາ​ນົດ​ຄ່າ​ໃນ​ເມື່ອ​ກ່ອນ​ການ​ນໍາ​ໃຊ້​
git-remote(1) git-config(1) ຫຼື​ແມ້​ກະ​ທັ້ງ​ໂດຍ​ການ​ແກ້​ໄຂ​ຄູ່​ມື​ກັບ​ໄຟລ​໌ $GIT_DIR/config. URL
ຣີໂໝດນີ້ຈະຖືກໃຊ້ເພື່ອເຂົ້າເຖິງບ່ອນເກັບມ້ຽນ. Refspec ຂອງຣີໂມດນີ້ຈະເປັນ
ຖືກໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນເມື່ອທ່ານບໍ່ໃຫ້ refspec ໃນແຖວຄໍາສັ່ງ. ການ​ເຂົ້າ​ມາ​ໃນ​
config ໄຟລ໌ຈະປາກົດແບບນີ້:

[ທາງ​ໄກ​" "]
url =
pushurl =
ຍູ້ =
fetch =

ໄດ້ ຖືກນໍາໃຊ້ສໍາລັບການຊຸກຍູ້ເທົ່ານັ້ນ. ມັນເປັນທາງເລືອກແລະຄ່າເລີ່ມຕົ້ນທີ່ຈະ .

ຊື່ ເອກະສານ in $GIT_DIR/ໄລຍະໄກ
ທ່ານສາມາດເລືອກໃຫ້ຊື່ຂອງໄຟລ໌ໃນ $GIT_DIR/ໄລຍະໄກ. URL ໃນໄຟລ໌ນີ້
ຈະຖືກນໍາໃຊ້ເພື່ອເຂົ້າເຖິງ repository. refspec ໃນໄຟລ໌ນີ້ຈະຖືກໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນ
ໃນເວລາທີ່ທ່ານບໍ່ໃຫ້ refspec ໃນເສັ້ນຄໍາສັ່ງ. ໄຟລ໌ນີ້ຄວນຈະມີດັ່ງຕໍ່ໄປນີ້
ຮູບແບບ:

URL: ຫນຶ່ງໃນຮູບແບບ URL ຂ້າງເທິງ
ຍູ້:
ດຶງ:

Push: ສາຍຖືກນໍາໃຊ້ໂດຍ ໄປ ການຊຸກຍູ້ ແລະດຶງ: ເສັ້ນຖືກນໍາໃຊ້ໂດຍ ໄປ ດຶງ ແລະ ໄປ ດຶງ.
Multiple Push: ແລະ Pull: ສາຍອາດຈະຖືກລະບຸໄວ້ສໍາລັບການສ້າງແຜນທີ່ສາຂາເພີ່ມເຕີມ.

ຊື່ ເອກະສານ in $GIT_DIR/ສາຂາ
ທ່ານສາມາດເລືອກໃຫ້ຊື່ໄຟລ໌ໃນ $GIT_DIR/ສາຂາ. URL ໃນໄຟລ໌ນີ້
ຈະຖືກນໍາໃຊ້ເພື່ອເຂົ້າເຖິງ repository. ໄຟລ໌ນີ້ຄວນຈະມີຮູບແບບດັ່ງຕໍ່ໄປນີ້:

#

ຈໍາ​ເປັນ; # ເປັນທາງເລືອກ.

ອີງຕາມການດໍາເນີນງານ, git ຈະໃຊ້ຫນຶ່ງໃນ refspec ຕໍ່ໄປນີ້, ຖ້າທ່ານບໍ່ເຮັດ
ສະໜອງອັນໜຶ່ງໃນແຖວຄຳສັ່ງ. ແມ່ນຊື່ຂອງໄຟລ໌ນີ້ໃນ $GIT_DIR/ສາຂາ
ແລະ ເລີ່ມຕົ້ນເປັນຕົ້ນສະບັບ.

git fetch ໃຊ້:

ອ້າງອີງ/ຫົວ/ :refs/heads/

git push ໃຊ້:

HEAD:refs/heads/

OUTPUT


ຜົນຜະລິດຂອງ "git push" ແມ່ນຂຶ້ນກັບວິທີການຂົນສົ່ງທີ່ໃຊ້; ພາກນີ້ອະທິບາຍເຖິງ
ຜົນຜະລິດເມື່ອກົດໃສ່ໂປໂຕຄອນ Git (ທັງຢູ່ໃນທ້ອງຖິ່ນຫຼືຜ່ານ ssh).

ສະຖານະພາບຂອງການຊຸກຍູ້ແມ່ນຜົນຜະລິດໃນຮູບແບບຕາຕະລາງ, ໂດຍແຕ່ລະເສັ້ນເປັນຕົວແທນຂອງສະຖານະພາບ
ຂອງການອ້າງອີງດຽວ. ແຕ່​ລະ​ເສັ້ນ​ແມ່ນ​ຂອງ​ຮູບ​ແບບ​:

-> ( )

ຖ້າ --porcelain ຖືກນໍາໃຊ້, ຫຼັງຈາກນັ້ນແຕ່ລະເສັ້ນຂອງຜົນຜະລິດແມ່ນຮູບແບບ:

\t : \t ( )

ສະຖານະຂອງການອ້າງອີງເຖິງວັນທີແມ່ນສະແດງໃຫ້ເຫັນພຽງແຕ່ຖ້າ --porcelain ຫຼື --verbose ທາງເລືອກຖືກນໍາໃຊ້.

ທຸງ
ຕົວອັກສອນດຽວທີ່ຊີ້ບອກສະຖານະຂອງຜູ້ອ້າງອີງ:

(ຊ່ອງ)
ສໍາ ລັບ ຜົນ ສໍາ ເລັດ pushed ໄວ ໄປ;

+
ສໍາລັບການປັບປຸງການບັງຄັບສົບຜົນສໍາເລັດ;

-
ສໍາລັບການອ້າງອີງທີ່ຖືກລົບຢ່າງສໍາເລັດຜົນ;

*
ສໍາລັບການອ້າງອີງໃຫມ່ pushed ສົບຜົນສໍາເລັດ;

!
ສໍາລັບການອ້າງອີງທີ່ຖືກປະຕິເສດຫຼືລົ້ມເຫລວໃນການຊຸກຍູ້; ແລະ

=
ສໍາລັບຜູ້ອ້າງອີງທີ່ທັນສະໄຫມແລະບໍ່ຈໍາເປັນຕ້ອງຊຸກຍູ້.

ສະ​ຫຼຸບ​ສັງ​ລວມ
ສໍາລັບການອ້າງອິງທີ່ຖືກຊຸກຍູ້ຢ່າງສໍາເລັດຜົນ, ບົດສະຫຼຸບສະແດງໃຫ້ເຫັນເຖິງຄຸນຄ່າເກົ່າແລະໃຫມ່ຂອງການອ້າງອີງໃນ
ແບບຟອມທີ່ເຫມາະສົມສໍາລັບການນໍາໃຊ້ເປັນການໂຕ້ຖຽງກັບ git log (ນີ້ແມ່ນ .. ໃນສ່ວນໃຫຍ່
ກໍລະນີ, ແລະ ... ສໍາ​ລັບ​ການ​ບັງ​ຄັບ​ການ​ປັບ​ປຸງ​ທີ່​ບໍ່​ແມ່ນ​ການ​ໄປ​ຫນ້າ​ໄວ​)​.

ສໍາລັບການປັບປຸງທີ່ລົ້ມເຫລວ, ລາຍລະອຽດເພີ່ມເຕີມແມ່ນໃຫ້:

ຖືກປະຕິເສດ
Git ບໍ່ໄດ້ພະຍາຍາມສົ່ງ ref ທັງຫມົດ, ໂດຍປົກກະຕິເນື່ອງຈາກວ່າມັນບໍ່ແມ່ນການສົ່ງຕໍ່ໄວ
ແລະທ່ານບໍ່ໄດ້ບັງຄັບໃຫ້ອັບເດດ.

ຫ່າງໄກສອກຫຼີກຖືກປະຕິເສດ
ປາຍທາງໄກປະຕິເສດການອັບເດດ. ປົກກະຕິແລ້ວເກີດມາຈາກ hook ຂ້າງຫ່າງໄກສອກຫຼີກ, ຫຼື
ເນື່ອງຈາກວ່າ repository ຫ່າງໄກສອກຫຼີກມີຫນຶ່ງໃນທາງເລືອກຄວາມປອດໄພດັ່ງຕໍ່ໄປນີ້ເປັນຜົນບັງຄັບໃຊ້:
receive.denyCurrentBranch (ສໍາລັບການ pushes ກັບສາຂາທີ່ເຊັກເອົາອອກ),
receive.denyNonFastForwards (ສຳລັບການອັບເດດແບບບັງຄັບທີ່ບໍ່ແມ່ນການສົ່ງຕໍ່ໄວ),
receive.denyDeletes ຫຼື receive.denyDeleteCurrent. ເບິ່ງ git-config(1).

ຄວາມລົ້ມເຫຼວທາງໄກ
ການສິ້ນສຸດຫ່າງໄກສອກຫຼີກບໍ່ໄດ້ລາຍງານການປັບປຸງສົບຜົນສໍາເລັດຂອງການອ້າງອີງ, ບາງທີອາດເປັນຍ້ອນ
ຄວາມ​ຜິດ​ພາດ​ຊົ່ວ​ຄາວ​ຢູ່​ຂ້າງ​ຫ່າງ​ໄກ​ສອກ​ຫຼີກ​, ການ​ຢຸດ​ເຊົາ​ການ​ເຊື່ອມ​ຕໍ່​ເຄືອ​ຂ່າຍ​, ຫຼື​ອື່ນໆ​
ຄວາມຜິດພາດຊົ່ວຄາວ.

ຈາກ
ຊື່ຂອງຜູ້ອ້າງອີງທ້ອງຖິ່ນທີ່ຖືກຍູ້, ລົບການອ້າງອີງຂອງມັນ / / ຄໍານໍາຫນ້າ. ໃນກໍລະນີຂອງ
ການລຶບ, ຊື່ຂອງຜູ້ອ້າງອີງທ້ອງຖິ່ນຖືກລະເວັ້ນ.

to
ຊື່ຂອງຜູ້ອ້າງອີງທາງໄກກຳລັງຖືກປັບປຸງ, ລົບການອ້າງອີງຂອງມັນ / ຄໍານໍາຫນ້າ.

ເຫດຜົນ
ຄໍາອະທິບາຍທີ່ມະນຸດສາມາດອ່ານໄດ້. ໃນກໍລະນີຂອງ pushed refs ສົບຜົນສໍາເລັດ, ບໍ່ມີຄໍາອະທິບາຍ
ແມ່ນຈໍາເປັນ. ສໍາລັບການອ້າງອີງທີ່ລົ້ມເຫລວ, ເຫດຜົນສໍາລັບຄວາມລົ້ມເຫຼວແມ່ນໄດ້ອະທິບາຍ.

ຫມາຍ​ເຫດ​ ກ່ຽວກັບ ເລັ່ງດ່ວນ


ເມື່ອການປັບປຸງການປ່ຽນແປງສາຂາ (ຫຼືຫຼາຍກວ່ານັ້ນໂດຍທົ່ວໄປ, ref) ທີ່ໃຊ້ເພື່ອຊີ້ໃຫ້ເຫັນຄໍາຫມັ້ນສັນຍາ A
ເພື່ອຊີ້ໃຫ້ເຫັນເຖິງຄໍາຫມັ້ນສັນຍາ B ອື່ນ, ມັນຖືກເອີ້ນວ່າການປັບປຸງຢ່າງໄວວາຖ້າແລະພຽງແຕ່ຖ້າ B ແມ່ນ a
ເຊື້ອສາຍຂອງ A.

ໃນການປັບປຸງຢ່າງໄວວາຈາກ A ຫາ B, ຊຸດຄໍາຫມັ້ນສັນຍາທີ່ຄໍາຫມັ້ນສັນຍາຕົ້ນສະບັບ A ສ້າງຂຶ້ນ
ຢູ່ເທິງສຸດແມ່ນຊຸດຍ່ອຍຂອງ commits ສັນຍາ B ກໍ່ສ້າງໃຫມ່ຢູ່ເທິງສຸດ. ເພາະສະນັ້ນ, ມັນບໍ່ໄດ້
ສູນເສຍປະຫວັດສາດໃດໆ.

ໃນທາງກົງກັນຂ້າມ, ການປັບປຸງແບບບໍ່ຕໍ່ຫນ້າໄວຈະສູນເສຍປະຫວັດສາດ. ຕົວຢ່າງ, ສົມມຸດວ່າເຈົ້າແລະ
ຄົນອື່ນໄດ້ເລີ່ມຕົ້ນໃນ commit X ດຽວກັນ, ແລະເຈົ້າສ້າງປະຫວັດສາດທີ່ນໍາໄປສູ່ຄໍາຫມັ້ນສັນຍາ B
ຂະນະ​ທີ່​ຜູ້​ອື່ນ​ສ້າງ​ປະຫວັດສາດ​ນຳ​ໄປ​ສູ່​ການ​ກະທຳ A. ປະຫວັດ​ດັ່ງ​ນີ້:

B
/
---X---A

ສົມມຸດວ່າຄົນອື່ນໄດ້ຊຸກຍູ້ການປ່ຽນແປງທີ່ນໍາໄປສູ່ A ກັບຄືນໄປບ່ອນ
repository ຕົ້ນສະບັບທີ່ທ່ານທັງສອງໄດ້ຮັບຄໍາຫມັ້ນສັນຍາຕົ້ນສະບັບ X.

ການຊຸກຍູ້ທີ່ເຮັດໂດຍຄົນອື່ນໄດ້ປັບປຸງສາຂາທີ່ໃຊ້ເພື່ອຊີ້ໃຫ້ເຫັນຄໍາຫມັ້ນສັນຍາ X ກັບ
ຈຸດທີ່ຄໍາຫມັ້ນສັນຍາ A. ມັນເປັນການໄປຂ້າງຫນ້າໄວ.

ແຕ່ຖ້າທ່ານພະຍາຍາມຍູ້, ທ່ານຈະພະຍາຍາມປັບປຸງສາຂາ (ປະຈຸບັນຈຸດ A) ກັບ
ຄໍາຫມັ້ນສັນຍາ B. ນີ້ເຮັດ ບໍ່ ໄວຕໍ່ຫນ້າ. ຖ້າທ່ານເຮັດແນວນັ້ນ, ການປ່ຽນແປງທີ່ແນະນໍາໂດຍຄໍາຫມັ້ນສັນຍາ A
ຈະຖືກສູນເສຍ, ເພາະວ່າທຸກຄົນຈະເລີ່ມຕົ້ນການກໍ່ສ້າງຢູ່ເທິງ B.

ຄໍາສັ່ງໂດຍຄ່າເລີ່ມຕົ້ນບໍ່ອະນຸຍາດໃຫ້ມີການປັບປຸງທີ່ບໍ່ແມ່ນໄວເພື່ອປ້ອງກັນການດັ່ງກ່າວ
ການ​ສູນ​ເສຍ​ປະ​ຫວັດ​ສາດ​.

ຖ້າຫາກວ່າທ່ານບໍ່ຕ້ອງການທີ່ຈະສູນເສຍການເຮັດວຽກຂອງທ່ານ (ປະຫວັດສາດຈາກ X ກັບ B) ຫຼືການເຮັດວຽກໂດຍບຸກຄົນອື່ນ
(ປະ​ຫວັດ​ສາດ​ຈາກ X ຫາ A​)​, ທ່ານ​ຈະ​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ທໍາ​ອິດ​ທີ່​ຈະ​ເອົາ​ປະ​ຫວັດ​ສາດ​ຈາກ repository​,
ສ້າງປະຫວັດສາດທີ່ປະກອບດ້ວຍການປ່ຽນແປງທີ່ເຮັດໂດຍທັງສອງຝ່າຍ, ແລະຊຸກຍູ້ຜົນໄດ້ຮັບກັບຄືນໄປບ່ອນ.

ທ່ານສາມາດປະຕິບັດ "git pull", ແກ້ໄຂຂໍ້ຂັດແຍ່ງທີ່ເປັນໄປໄດ້, ແລະ "git push" ຜົນໄດ້ຮັບ. A "git
pull" ຈະສ້າງ merge commit C ລະຫວ່າງ commits A ແລະ B.

B---C
/ /
---X---A

ການປັບປຸງ A ກັບຄໍາຫມັ້ນສັນຍາການຜະສົມຜະສານຜົນໄດ້ຮັບຈະໄປຂ້າງຫນ້າໄວແລະການຊຸກຍູ້ຂອງທ່ານຈະເປັນ
ຍອມຮັບ.

ອີກທາງເລືອກ, ທ່ານສາມາດຟື້ນຟູການປ່ຽນແປງຂອງທ່ານລະຫວ່າງ X ແລະ B ຢູ່ເທິງສຸດຂອງ A, ດ້ວຍ "git pull
--rebase", ແລະຍູ້ຜົນໄດ້ຮັບກັບຄືນໄປບ່ອນ. rebase ຈະສ້າງ commit D ໃຫມ່ທີ່ສ້າງ
ການປ່ຽນແປງລະຫວ່າງ X ແລະ B ຢູ່ເທິງສຸດຂອງ A.

BD
/ /
---X---A

ອີກເທື່ອຫນຶ່ງ, ການປັບປຸງ A ກັບຄໍາຫມັ້ນສັນຍານີ້ຈະໄວໄປຂ້າງຫນ້າແລະການຊຸກຍູ້ຂອງທ່ານຈະຖືກຍອມຮັບ.

ມີສະຖານະການທົ່ວໄປອີກອັນຫນຶ່ງທີ່ທ່ານອາດຈະພົບກັບການປະຕິເສດທີ່ບໍ່ໄວຕໍ່ຫນ້າໃນເວລາທີ່
ທ່ານພະຍາຍາມຍູ້, ແລະມັນເປັນໄປໄດ້ເຖິງແມ່ນວ່າໃນເວລາທີ່ທ່ານກໍາລັງຍູ້ເຂົ້າໄປໃນ repository ບໍ່ມີໃຜ
ອື່ນ pushes ເຂົ້າໄປໃນ. ຫຼັງ​ຈາກ​ທີ່​ທ່ານ​ໄດ້​ຊຸກ​ຍູ້​ໃຫ້​ຕົວ​ທ່ານ​ເອງ A (ໃນ​ຮູບ​ທໍາ​ອິດ​ໃນ​ພາກ​ນີ້​)​.
ແທນທີ່ມັນດ້ວຍ "git commit --amend" ເພື່ອຜະລິດຄໍາຫມັ້ນສັນຍາ B, ແລະທ່ານພະຍາຍາມຍູ້ມັນອອກ,
ເພາະລືມວ່າເຈົ້າໄດ້ເອົາ A ອອກແລ້ວ. ໃນກໍລະນີດັ່ງກ່າວ, ແລະພຽງແຕ່ຖ້າຫາກວ່າທ່ານມີ
ແນ່ນອນວ່າບໍ່ມີໃຜໃນຂະນະນີ້ດຶງເອົາຄໍາຫມັ້ນສັນຍາ A ກ່ອນຫນ້າຂອງເຈົ້າ (ແລະເລີ່ມຕົ້ນສ້າງ
ເທິງຂອງມັນ), ທ່ານສາມາດດໍາເນີນການ "git push --force" ເພື່ອຂຽນທັບມັນ. ໃນຄໍາສັບຕ່າງໆອື່ນໆ, "git push
--force" ແມ່ນວິທີການສະຫງວນໄວ້ສໍາລັບກໍລະນີທີ່ທ່ານຫມາຍຄວາມວ່າຈະສູນເສຍປະຫວັດສາດ.

ຕົວຢ່າງ


git ຊຸກຍູ້
ເຮັດວຽກຄືກັບ git push , ຢູ່ໃສ ແມ່ນໄລຍະໄກຂອງສາຂາປະຈຸບັນ (ຫຼື
ຕົ້ນກໍາເນີດ, ຖ້າບໍ່ມີໄລຍະໄກຖືກຕັ້ງຄ່າສໍາລັບສາຂາປະຈຸບັນ).

git push ຕົ້ນກໍາເນີດ
ໂດຍບໍ່ມີການກໍານົດຄ່າເພີ່ມເຕີມ, pushes ສາຂາປະຈຸບັນກັບ upstream ທີ່ກໍານົດໄວ້
(remote.origin.merge configuration variable) ຖ້າມັນມີຊື່ດຽວກັນກັບປັດຈຸບັນ
ສາຂາ, ແລະຄວາມຜິດພາດອອກໂດຍບໍ່ມີການຊຸກຍູ້ຖ້າບໍ່ດັ່ງນັ້ນ.

ພຶດຕິກໍາເລີ່ມຕົ້ນຂອງຄໍາສັ່ງນີ້ເມື່ອບໍ່ມີ ແມ່ນໃຫ້ສາມາດ configured ໂດຍ
ຕັ້ງຄ່າຕົວເລືອກ push. ຂອງໄລຍະໄກ, ຫຼືຕົວແປການຕັ້ງຄ່າ push.default.

ຕົວຢ່າງ, ເພື່ອເລີ່ມຕົ້ນການຊຸກຍູ້ພຽງແຕ່ສາຂາປະຈຸບັນໄປຫາຕົ້ນກໍາເນີດ, ໃຊ້ git config
remote.origin.push HEAD. ທີ່ຖືກຕ້ອງ (ຄືກັບຕົວຢ່າງຂ້າງລຸ່ມນີ້) ສາມາດເຮັດໄດ້
ຈະຖືກຕັ້ງຄ່າເປັນຄ່າເລີ່ມຕົ້ນຂອງ git push.

git push ຕົ້ນ​ກໍາ​ເນີດ​:
ຍູ້ສາຂາ "ຈັບຄູ່" ໄປຫາຕົ້ນກໍາເນີດ. ເບິ່ງ ໃນພາກ OPTIONS ຂ້າງເທິງສໍາລັບ a
ລາຍລະອຽດຂອງສາຂາ "ຈັບຄູ່".

git push ຕົ້ນສະບັບຕົ້ນສະບັບ
ຊອກຫາ ref ທີ່ກົງກັບແມ່ບົດໃນ repository ແຫຼ່ງ (ສ່ວນຫຼາຍອາດຈະ, ມັນຈະຊອກຫາ
refs/heads/master), ແລະອັບເດດ ref ດຽວກັນ (ເຊັ່ນ: refs/heads/master) ໃນຕົ້ນກຳເນີດ.
repository ກັບ​ມັນ​. ຖ້າແມ່ບົດບໍ່ມີຢູ່ຫ່າງໄກສອກຫຼີກ, ມັນຈະຖືກສ້າງຂື້ນ.

git push ຕົ້ນກໍາເນີດ HEAD
ວິທີທີ່ສະດວກໃນການຍູ້ສາຂາປັດຈຸບັນໄປຫາຊື່ດຽວກັນຢູ່ທາງໄກ.

git push mothership master:ດາວທຽມ/master dev:satellite/dev
ໃຊ້ແຫຼ່ງອ້າງອີງທີ່ກົງກັບຕົ້ນສະບັບ (ເຊັ່ນ: refs/heads/master) ເພື່ອປັບປຸງການອ້າງອີງ
ທີ່ກົງກັບດາວທຽມ/ແມ່ບົດ (ສ່ວນຫຼາຍອາດຈະເປັນ refs/remotes/satellite/master) ໃນ
ຄັງເກັບແມ່; ເຮັດເຊັ່ນດຽວກັນສໍາລັບ dev ແລະດາວທຽມ / dev.

ນີ້ແມ່ນເພື່ອຈໍາລອງ git fetch run ຢູ່ໃນ mothership ໂດຍໃຊ້ git push ທີ່ດໍາເນີນການຢູ່ໃນ
ທິດ​ທາງ​ກົງ​ກັນ​ຂ້າມ​ໃນ​ຄໍາ​ສັ່ງ​ທີ່​ຈະ​ເຊື່ອມ​ໂຍງ​ກັບ​ວຽກ​ງານ​ທີ່​ເຮັດ​ໄດ້​ໃນ​ດາວ​ທຽມ​, ແລະ​ມັກ​ຈະ​
ມີຄວາມຈໍາເປັນໃນເວລາທີ່ທ່ານພຽງແຕ່ສາມາດເຮັດໃຫ້ການເຊື່ອມຕໍ່ໃນວິທີການຫນຶ່ງ (ie ດາວທຽມສາມາດ ssh ເຂົ້າໄປໃນ
ການເປັນແມ່ແຕ່ຄວາມເປັນແມ່ບໍ່ສາມາດລິເລີ່ມການເຊື່ອມຕໍ່ກັບດາວທຽມໄດ້ເພາະວ່າອັນສຸດທ້າຍ
ແມ່ນຢູ່ຫລັງ firewall ຫຼືບໍ່ໄດ້ດໍາເນີນການ sshd).

ຫຼັງຈາກແລ່ນ git push ນີ້ໃນເຄື່ອງດາວທຽມ, ທ່ານຈະ ssh ເຂົ້າໄປໃນ
mothership ແລະແລ່ນ git merge ຢູ່ທີ່ນັ້ນເພື່ອເຮັດສໍາເລັດການ emulation ຂອງ git pull ທີ່ດໍາເນີນການ
ກ່ຽວກັບການເປັນແມ່ເພື່ອດຶງການປ່ຽນແປງທີ່ເຮັດໃນດາວທຽມ.

git push origin HEAD:master
ຍູ້ສາຂາປັດຈຸບັນໄປຫາແມ່ບົດການຈັບຄູ່ການອ້າງອີງທາງໄກໃນບ່ອນເກັບຂໍ້ມູນຕົ້ນທາງ.
ແບບຟອມນີ້ແມ່ນສະດວກທີ່ຈະຍູ້ສາຂາໃນປະຈຸບັນໂດຍບໍ່ຕ້ອງຄິດກ່ຽວກັບທ້ອງຖິ່ນຂອງມັນ
ຊື່

git push origin master:refs/heads/experimental
ສ້າງສາຂາທົດລອງໃນ repository ຕົ້ນກໍາເນີດໂດຍການຄັດລອກແມ່ແບບປະຈຸບັນ
ສາຂາ. ແບບຟອມນີ້ພຽງແຕ່ຕ້ອງການເພື່ອສ້າງສາຂາໃຫມ່ຫຼືແທັກຢູ່ໃນທາງໄກ
repository ເມື່ອຊື່ທ້ອງຖິ່ນແລະຊື່ຫ່າງໄກສອກຫຼີກແມ່ນແຕກຕ່າງກັນ; ຖ້າບໍ່ດັ່ງນັ້ນ, ອ້າງອີງ
ຊື່ຂອງມັນເອງຈະເຮັດວຽກ.

git push origin : ການທົດລອງ
ຊອກຫາເອກະສານອ້າງອີງທີ່ກົງກັບການທົດລອງຢູ່ໃນບ່ອນເກັບຂໍ້ມູນຕົ້ນທາງ (ຕົວຢ່າງ
refs/heads/experimental), ແລະລຶບມັນອອກ.

git push origin +dev:master
ອັບເດດສາຂາຕົ້ນສະບັບຂອງ repository ກັບສາຂາ dev, ອະນຸຍາດໃຫ້
ການປັບປຸງທີ່ບໍ່ມີການສົ່ງຕໍ່ໄວ. ນີ້ ສາມາດເຮັດໄດ້ ອອກຈາກ ບໍ່ໄດ້ອ້າງອີງ ສັນຍາ ແຂວນຄໍ in ໄດ້ ຕົ້ນກໍາເນີດ
repository ພິ​ຈາ​ລະ​ນາ​ສະ​ຖາ​ນະ​ການ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​, ບ່ອນ​ທີ່​ການ​ໄປ​ຂ້າງ​ຫນ້າ​ໄວ​ເປັນ​ໄປ​ບໍ່​ໄດ້​:

o---o---o---A---B ຕົ້ນກຳເນີດ/ແມ່ບົດ
\
X---Y---Z dev

ຄໍາສັ່ງຂ້າງເທິງຈະປ່ຽນ repository ຕົ້ນສະບັບເປັນ

A---B (ສາຂາທີ່ບໍ່ມີຊື່)
/
o---o---o---X---Y---Z ແມ່ບົດ

ຄໍາຫມັ້ນສັນຍາ A ແລະ B ຈະບໍ່ຂຶ້ນກັບສາຂາທີ່ມີຊື່ສັນຍາລັກ, ແລະອື່ນໆ
ບໍ່ສາມາດເຂົ້າເຖິງໄດ້. ດັ່ງນັ້ນ, ຄໍາຫມັ້ນສັນຍາເຫຼົ່ານີ້ຈະຖືກໂຍກຍ້າຍອອກໂດຍຄໍາສັ່ງ git gc ໃນ
ຄັງ​ເກັບ​ກໍາ​ຕົ້ນ​ກໍາ​ເນີດ​.

GIT


ສ່ວນຫນຶ່ງຂອງ ໄປ(1) ຊຸດ

ໃຊ້ git-push ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.