ນີ້ແມ່ນຄໍາສັ່ງ git-worktree ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
git-worktree - ຄຸ້ມຄອງຕົ້ນໄມ້ທີ່ເຮັດວຽກຫຼາຍຢ່າງ
ສະຫຼຸບສັງລວມ
ໄປ ຕົ້ນໄມ້ ເພີ່ມ [-f] [--detach] [-ຂ ] [ ]
ໄປ ຕົ້ນໄມ້ ໝາກຫຸ່ງ [-n] [-v] [--ໝົດອາຍຸ ]
ໄປ ຕົ້ນໄມ້ ບັນຊີລາຍຊື່ [--porcelain]
ລາຍລະອຽດ
ຈັດການຕົ້ນໄມ້ທີ່ເຮັດວຽກຫຼາຍອັນທີ່ຕິດກັບບ່ອນເກັບຂໍ້ມູນດຽວກັນ.
A git repository ສາມາດສະຫນັບສະຫນູນຕົ້ນໄມ້ທີ່ເຮັດວຽກຫຼາຍ, ຊ່ວຍໃຫ້ທ່ານສາມາດກວດສອບໄດ້ຫຼາຍກວ່າ
ຫນຶ່ງສາຂາຕໍ່ເວລາ. ດ້ວຍ git worktree ເພີ່ມຕົ້ນໄມ້ທີ່ເຮັດວຽກໃຫມ່ແມ່ນກ່ຽວຂ້ອງກັບ
ຄັງເກັບມ້ຽນ. ຕົ້ນໄມ້ທີ່ເຮັດວຽກໃຫມ່ນີ້ເອີ້ນວ່າ "ຕົ້ນໄມ້ເຮັດວຽກທີ່ເຊື່ອມຕໍ່" ກົງກັນຂ້າມກັບ
"ຕົ້ນໄມ້ທີ່ເຮັດວຽກຕົ້ນຕໍ" ກະກຽມໂດຍ "git init" ຫຼື "git clone". A repository ມີຫນຶ່ງຕົ້ນຕໍ
ຕົ້ນໄມ້ເຮັດວຽກ (ຖ້າມັນບໍ່ແມ່ນບ່ອນເກັບມ້ຽນເປົ່າ) ແລະຕົ້ນໄມ້ເຮັດວຽກທີ່ເຊື່ອມໂຍງເປັນສູນຫຼືຫຼາຍກວ່ານັ້ນ.
ເມື່ອເຈົ້າເຮັດແລ້ວກັບຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່ກັນ ເຈົ້າສາມາດລຶບມັນໄດ້ງ່າຍໆ. ຕົ້ນໄມ້ທີ່ເຮັດວຽກ
ໄຟລ໌ບໍລິຫານຢູ່ໃນບ່ອນເກັບມ້ຽນ (ເບິ່ງ "ລາຍລະອຽດ" ຂ້າງລຸ່ມນີ້) ໃນທີ່ສຸດກໍຈະຖືກລຶບອອກ.
ອັດຕະໂນມັດ (ເບິ່ງ gc.worktreePruneExpire in git-config(1)), ຫຼືທ່ານສາມາດດໍາເນີນການ git worktree
prune ໃນຕົ້ນຕໍຫຼືເປັນໄມ້ຢືນຕົ້ນການເຮັດວຽກທີ່ເຊື່ອມຕໍ່ເພື່ອອະນາໄມໄຟລ໌ການບໍລິຫານ stale ໃດ.
ຖ້າທ່ານຍ້າຍຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່, ທ່ານຈໍາເປັນຕ້ອງປັບປຸງໄຟລ໌ບໍລິຫານດ້ວຍຕົນເອງ
ວ່າພວກເຂົາບໍ່ໄດ້ຮັບການ pruned ອັດຕະໂນມັດ. ເບິ່ງພາກ "DETAILS" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
ຖ້າຕົ້ນໄມ້ເຮັດວຽກທີ່ເຊື່ອມໂຍງຖືກເກັບໄວ້ໃນອຸປະກອນເຄື່ອນທີ່ຫຼືການແບ່ງປັນເຄືອຂ່າຍທີ່ບໍ່ແມ່ນ
mounted ສະເຫມີ, ທ່ານສາມາດປ້ອງກັນບໍ່ໃຫ້ໄຟລ໌ການບໍລິຫານຂອງຕົນຈາກການຖືກ pruned ໂດຍການສ້າງ a
ໄຟລ໌ທີ່ມີຊື່ ລັອກ ຄຽງຄູ່ກັບໄຟລ໌ບໍລິຫານອື່ນໆ, ທາງເລືອກທີ່ບັນຈຸທົ່ງພຽງ
ເຫດຜົນຂໍ້ຄວາມທີ່ pruning ຄວນໄດ້ຮັບການສະກັດກັ້ນ. ເບິ່ງພາກ "DETAILS" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
ສາມາດ
ເພີ່ມ [ ]
ສ້າງ ແລະຈ່າຍເງິນ ເຂົ້າໄປໃນມັນ. ໄດເລກະທໍລີທີ່ເຮັດວຽກໃຫມ່ແມ່ນເຊື່ອມຕໍ່ກັບ
repository ໃນປະຈຸບັນ, ການແບ່ງປັນທຸກສິ່ງທຸກຢ່າງຍົກເວັ້ນການເຮັດວຽກໄຟລ໌ລະບົບສະເພາະ
ເຊັ່ນ: HEAD, index, ແລະອື່ນໆ.
ຖ້າ ຖືກລະເວັ້ນ ແລະທັງ -b ຫຼື -B ຫຼື --detached ຖືກນໍາໃຊ້, ຫຼັງຈາກນັ້ນ, ເປັນ
ຄວາມສະດວກສະບາຍ, ສາຂາໃຫມ່ທີ່ອີງໃສ່ HEAD ຖືກສ້າງຂື້ນໂດຍອັດຕະໂນມັດ, ຄືກັບວ່າ -b $(ຊື່ຖານ
) ໄດ້ລະບຸໄວ້.
ໝາກຫຸ່ງ
Prune ຂໍ້ມູນຕົ້ນໄມ້ທີ່ເຮັດວຽກຢູ່ໃນ $GIT_DIR/worktrees.
ບັນຊີລາຍຊື່
ບອກລາຍລະອຽດຂອງແຕ່ລະ worktree. ຕົ້ນຕໍຂອງການເຮັດວຽກແມ່ນໄດ້ລະບຸໄວ້ທໍາອິດ, ປະຕິບັດຕາມໂດຍແຕ່ລະຄົນ
ຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່. ລາຍລະອຽດຜົນຜະລິດປະກອບມີຖ້າຫາກວ່າ worktree ແມ່ນເປົ່າ, ການປັບປຸງ
ປະຈຸບັນໄດ້ເຊັກເອົາອອກ, ແລະສາຂາປະຈຸບັນໄດ້ເຊັກເອົາອອກ (ຫຼື ແຍກອອກ HEAD if
ບໍ່ມີ).
OPTIONS
-f, --force
ໂດຍຄ່າເລີ່ມຕົ້ນ, ເພີ່ມປະຕິເສດການສ້າງຕົ້ນໄມ້ທີ່ເຮັດວຽກໃຫມ່ເມື່ອ ຖືກກວດແລ້ວ
ອອກໂດຍຕົ້ນໄມ້ອື່ນ. ຕົວເລືອກນີ້ລົບລ້າງການປົກປ້ອງນັ້ນ.
- ຂ , -ຂ
ດ້ວຍການເພີ່ມ, ສ້າງສາຂາໃຫມ່ທີ່ມີຊື່ ເລີ່ມແຕ່ , ແລະກວດສອບການອອກ
ເຂົ້າໄປໃນຕົ້ນໄມ້ທີ່ເຮັດວຽກໃຫມ່. ຖ້າ ຖືກລະເວັ້ນ, ມັນຈະເປັນຄ່າເລີ່ມຕົ້ນຂອງ HEAD.
ໂດຍຄ່າເລີ່ມຕົ້ນ, -b ປະຕິເສດທີ່ຈະສ້າງສາຂາໃຫມ່ຖ້າມັນມີຢູ່ແລ້ວ. -B overrides ນີ້
ປົກປ້ອງ, ຕັ້ງຄ່າໃໝ່ ກັບ .
-- ແຍກ
ດ້ວຍການເພີ່ມ, ແຍກ HEAD ໃນຕົ້ນໄມ້ທີ່ເຮັດວຽກໃໝ່. ເບິ່ງ "DETACHED HEAD" ໃນ git-checkout(1).
-n, --dry-run
ດ້ວຍ prune, ບໍ່ເອົາຫຍັງ; ພຽງແຕ່ລາຍງານສິ່ງທີ່ມັນຈະເອົາອອກ.
-- porcelain
ດ້ວຍລາຍຊື່, ຜົນຜະລິດໃນຮູບແບບທີ່ງ່າຍຕໍ່ການວິເຄາະສໍາລັບສະຄິບ. ຮູບແບບນີ້ຈະຍັງຄົງຢູ່
ມີຄວາມຫມັ້ນຄົງໃນທົ່ວລຸ້ນ Git ແລະບໍ່ຄໍານຶງເຖິງການຕັ້ງຄ່າຂອງຜູ້ໃຊ້. ເບິ່ງຂ້າງລຸ່ມນີ້ສໍາລັບ
ລາຍລະອຽດ.
-v, --verbose
ດ້ວຍ prune, ລາຍງານການໂຍກຍ້າຍທັງຫມົດ.
--ໝົດອາຍຸ
ດ້ວຍການຕັດຕົ້ນ, ພຽງແຕ່ຫມົດອາຍຸຕົ້ນໄມ້ທີ່ບໍ່ໄດ້ໃຊ້ແລ້ວທີ່ມີອາຍຸຫຼາຍກວ່າ .
DETAILS
ແຕ່ລະຕົ້ນໄມ້ເຮັດວຽກທີ່ເຊື່ອມຕໍ່ມີບັນຊີຍ່ອຍສ່ວນຕົວຢູ່ໃນບ່ອນເກັບມ້ຽນ
$GIT_DIR/worktrees directory. ຊື່ຍ່ອຍຍ່ອຍຂອງເອກະຊົນປົກກະຕິແລ້ວແມ່ນຊື່ພື້ນຖານຂອງ
ເສັ້ນທາງຂອງຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່ກັນ, ອາດຈະຖືກຕໍ່ທ້າຍດ້ວຍຕົວເລກເພື່ອເຮັດໃຫ້ມັນເປັນເອກະລັກ. ສໍາລັບ
ຕົວຢ່າງ, ເມື່ອ $GIT_DIR=/path/main/.git ຄໍາສັ່ງ git worktree ເພີ່ມ /path/other/test-next
ຕໍ່ໄປສ້າງຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່ໃນ /path/other/test-next ແລະຍັງສ້າງ a
$GIT_DIR/worktrees/test-next directory (ຫຼື $GIT_DIR/worktrees/test-next1 ຖ້າ test-next ແມ່ນ
ເອົາແລ້ວ).
ພາຍໃນຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່ກັນ, $GIT_DIR ຖືກຕັ້ງໃຫ້ຊີ້ໄປຫາໄດເລກະທໍລີສ່ວນຕົວນີ້ (ຕົວຢ່າງ
/path/main/.git/worktrees/test-next ໃນຕົວຢ່າງ) ແລະ $GIT_COMMON_DIR ຖືກຕັ້ງເປັນຈຸດ.
ກັບຄືນຫາ $GIT_DIR ຂອງຕົ້ນໄມ້ເຮັດວຽກຫຼັກ (ເຊັ່ນ /path/main/.git). ການຕັ້ງຄ່າເຫຼົ່ານີ້ຖືກສ້າງຂື້ນ
ໃນໄຟລ໌ .git ທີ່ຕັ້ງຢູ່ເທິງໄດເຣັກທໍຣີຂອງຕົ້ນໄມ້ເຮັດວຽກທີ່ເຊື່ອມຕໍ່.
ການແກ້ໄຂເສັ້ນທາງຜ່ານ git rev-parse --git-path ໃຊ້ $GIT_DIR ຫຼື $GIT_COMMON_DIR
ຂຶ້ນຢູ່ກັບເສັ້ນທາງ. ຕົວຢ່າງ, ໃນການເຊື່ອມໂຍງຕົ້ນໄມ້ທີ່ເຮັດວຽກ git rev-parse --git-path
HEAD ກັບຄືນ /path/main/.git/worktrees/test-next/HEAD (ບໍ່ແມ່ນ /path/other/test-next/.git/HEAD
ຫຼື /path/main/.git/HEAD) ໃນຂະນະທີ່ git rev-parse --git-path refs/heads/master ໃຊ້
$GIT_COMMON_DIR ແລະສົ່ງຄືນ /path/main/.git/refs/heads/master, ເນື່ອງຈາກການອ້າງອີງຖືກແບ່ງປັນ
ໃນທົ່ວຕົ້ນໄມ້ທີ່ເຮັດວຽກທັງຫມົດ.
ເບິ່ງ gitrepository-layout(5) ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ. ກົດລະບຽບຂອງ thumb ແມ່ນບໍ່ໄດ້ເຮັດໃຫ້ໃດໆ
ສົມມຸດຕິຖານກ່ຽວກັບວ່າເສັ້ນທາງເປັນຂອງ $GIT_DIR ຫຼື $GIT_COMMON_DIR ເມື່ອທ່ານຕ້ອງການ
ເຂົ້າເຖິງບາງສິ່ງບາງຢ່າງພາຍໃນ $GIT_DIR ໂດຍກົງ. ໃຊ້ git rev-parse --git-path ເພື່ອໃຫ້ໄດ້ຮັບຂັ້ນສຸດທ້າຍ
ເສັ້ນທາງ
ຖ້າເຈົ້າຍ້າຍຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່ກັນ, ເຈົ້າຕ້ອງອັບເດດ gitdir ໄຟລ໌ຢູ່ໃນລາຍການ
ໄດເລກະທໍລີ. ຕົວຢ່າງ, ຖ້າຕົ້ນໄມ້ເຮັດວຽກທີ່ເຊື່ອມໂຍງຖືກຍ້າຍໄປ /newpath/test-next ແລະຂອງມັນ
ໄຟລ໌ .git ຊີ້ໄປທີ່ /path/main/.git/worktrees/test-next, ຈາກນັ້ນອັບເດດ
/path/main/.git/worktrees/test-next/gitdir ເພື່ອອ້າງອີງ /newpath/test-next ແທນ.
ເພື່ອປ້ອງກັນການເຂົ້າ $GIT_DIR/worktrees ຈາກການຖືກຕັດອອກ (ເຊິ່ງສາມາດເປັນປະໂຫຍດໃນບາງອັນ.
ສະຖານະການ, ເຊັ່ນ: ເມື່ອຕົ້ນໄມ້ເຮັດວຽກຖືກເກັບໄວ້ໃນອຸປະກອນເຄື່ອນທີ່), ເພີ່ມ a
ໄຟລ໌ທີ່ມີຊື່ ລັອກ ໄປຫາໄດເລກະທໍລີຂອງລາຍການ. ໄຟລ໌ປະກອບມີເຫດຜົນຢູ່ໃນຂໍ້ຄວາມທໍາມະດາ.
ຕົວຢ່າງ, ຖ້າໄຟລ໌ .git ຂອງຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່ທີ່ເຮັດວຽກຊີ້ໄປຫາ
/path/main/.git/worktrees/test-next ຫຼັງຈາກນັ້ນໄຟລ໌ທີ່ມີຊື່
/path/main/.git/worktrees/test-next/locked ຈະປ້ອງກັນການເຂົ້າທົດສອບ-ຕໍ່ໄປຈາກການເປັນ.
ຕັດອອກ. ເບິ່ງ gitrepository-layout(5) ສໍາລັບລາຍລະອຽດ.
LIST OUTPUT ຮູບແບບ
ຄໍາສັ່ງບັນຊີລາຍຊື່ worktree ມີສອງຮູບແບບຜົນຜະລິດ. ຮູບແບບເລີ່ມຕົ້ນສະແດງໃຫ້ເຫັນລາຍລະອຽດກ່ຽວກັບ
ເສັ້ນດຽວທີ່ມີຖັນ. ຍົກຕົວຢ່າງ:
S git ບັນຊີລາຍຊື່ worktree
/path/to/bare-source (ເປົ່າ)
/path/to/linked-worktree abcd1234 [ຕົ້ນສະບັບ]
/path/to/other-linked-worktree 1234abc (detached HEAD)
Porcelain ຮູບແບບ
ຮູບແບບ porcelain ມີເສັ້ນຕໍ່ຄຸນລັກສະນະ. ຄຸນລັກສະນະແມ່ນລະບຸໄວ້ກັບປ້າຍຊື່ແລະ
ຄ່າທີ່ແຍກອອກໂດຍຊ່ອງຫວ່າງດຽວ. ຄຸນລັກສະນະ Boolean (ເຊັ່ນ: ເປົ່າ ແລະ ແຍກອອກ) ແມ່ນລະບຸໄວ້
ເປັນປ້າຍຊື່ເທົ່ານັ້ນ, ແລະມີພຽງແຕ່ຖ້າຫາກວ່າແລະພຽງແຕ່ຖ້າຫາກວ່າມູນຄ່າເປັນຄວາມຈິງ. ເສັ້ນເປົ່າ
ຊີ້ບອກເຖິງຈຸດສິ້ນສຸດຂອງຕົ້ນໄມ້. ຍົກຕົວຢ່າງ:
S git worktree list --porcelain
worktree /path/to/bare-source
ເປົ່າ
worktree /path/to/linked-worktree
HEAD abcd1234abcd1234abcd1234abcd1234abcd1234
ສາຂາອ້າງອີງ/ຫົວໜ້າ/ແມ່ບົດ
worktree /path/to/other-linked-worktree
HEAD 1234abc1234abc1234abc1234abc1234abc1234a
ແຍກອອກ
ຕົວຢ່າງ
ທ່ານຢູ່ໃນລະຫວ່າງກອງປະຊຸມ refactoring ແລະນາຍຈ້າງຂອງທ່ານເຂົ້າມາແລະຮຽກຮ້ອງໃຫ້ທ່ານ
ແກ້ໄຂບາງສິ່ງບາງຢ່າງທັນທີ. ໂດຍທົ່ວໄປແລ້ວທ່ານອາດຈະໃຊ້ git-stash(1) ເພື່ອເກັບຮັກສາການປ່ຽນແປງຂອງທ່ານທັນທີ
ຢ່າງໃດກໍຕາມ, ຊົ່ວຄາວ, ຕົ້ນໄມ້ທີ່ເຮັດວຽກຂອງທ່ານຢູ່ໃນສະພາບທີ່ບໍ່ສະບາຍ (ມີໃຫມ່, ຍ້າຍ,
ແລະເອົາໄຟລ໌ອອກ, ແລະ bits ແລະຕ່ອນອື່ນໆ strewn ປະມານ) ທີ່ທ່ານບໍ່ຕ້ອງການທີ່ຈະມີຄວາມສ່ຽງ
ລົບກວນໃດໆຂອງມັນ. ແທນທີ່ຈະ, ເຈົ້າສ້າງຕົ້ນໄມ້ທີ່ເຊື່ອມຕໍ່ຊົ່ວຄາວເພື່ອເຮັດໃຫ້
ການແກ້ໄຂສຸກເສີນ, ເອົາມັນອອກໃນເວລາທີ່ເຮັດໄດ້, ແລະຫຼັງຈາກນັ້ນສືບຕໍ່ປະຕິບັດຄັ້ງກ່ອນຫນ້ານີ້ຂອງທ່ານ.
$ git worktree ເພີ່ມ -b ແກ້ໄຂສຸກເສີນ../temp master
$ pushd ../temp
#...ແຮກແຮັກ...
$ git commit -a -m 'ການແກ້ໄຂສຸກເສີນສໍາລັບນາຍຈ້າງ'
$ popd
$ rm -rf ../temp
$ git worktree prune
ໃຊ້ git-worktree ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net