ນີ້ແມ່ນຄໍາສັ່ງ git-rm ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
git-rm - ເອົາໄຟລ໌ອອກຈາກຕົ້ນໄມ້ທີ່ເຮັດວຽກແລະຈາກດັດສະນີ
ສະຫຼຸບສັງລວມ
ໄປ rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--ງຽບ] [--] ...
ລາຍລະອຽດ
ເອົາໄຟລ໌ອອກຈາກດັດຊະນີ, ຫຼືຈາກຕົ້ນໄມ້ທີ່ເຮັດວຽກແລະດັດສະນີ. git rm ຈະບໍ່
ເອົາໄຟລ໌ອອກຈາກພຽງແຕ່ໄດເລກະທໍລີທີ່ເຮັດວຽກຂອງທ່ານ. (ບໍ່ມີທາງເລືອກທີ່ຈະເອົາໄຟລ໌ອອກເທົ່ານັ້ນ
ຈາກຕົ້ນໄມ້ທີ່ເຮັດວຽກແລະຍັງຮັກສາມັນຢູ່ໃນດັດຊະນີ; ໃຊ້ /bin/rm ຖ້າທ່ານຕ້ອງການເຮັດແນວນັ້ນ.)
ໄຟລ໌ທີ່ຖືກໂຍກຍ້າຍຈະຕ້ອງຄືກັນກັບປາຍຂອງສາຂາ, ແລະບໍ່ມີການອັບເດດ
ເນື້ອໃນຂອງພວກມັນສາມາດຖືກຈັດໃສ່ໃນດັດຊະນີ, ເຖິງແມ່ນວ່າພຶດຕິ ກຳ ເລີ່ມຕົ້ນນັ້ນສາມາດຖືກລົບລ້າງ
ດ້ວຍຕົວເລືອກ -f. ເມື່ອ --cached ຖືກມອບໃຫ້, ເນື້ອໃນຂັ້ນຕອນຈະຕ້ອງກົງກັບປາຍ
ຂອງສາຂາຫຼືໄຟລ໌ໃນແຜ່ນ, ອະນຸຍາດໃຫ້ໄຟລ໌ອອກຈາກພຽງແຕ່ດັດສະນີ.
OPTIONS
...
ໄຟລ໌ທີ່ຈະເອົາອອກ. Fileglobs (ເຊັ່ນ: *.c) ສາມາດຖືກມອບໃຫ້ເພື່ອເອົາໄຟລ໌ທີ່ກົງກັນທັງໝົດອອກ. ຖ້າ
ທ່ານຕ້ອງການ Git ຂະຫຍາຍຕົວອັກສອນ glob, ທ່ານອາດຈະຈໍາເປັນຕ້ອງໄດ້ shell-escape ພວກມັນ. ກ
ຊື່ໄດເລກະທໍລີຊັ້ນນໍາ (ເຊັ່ນ dir ເພື່ອເອົາ dir / file1 ແລະ dir / file2) ສາມາດຖືກມອບໃຫ້
ເອົາໄຟລ໌ທັງຫມົດໃນໄດເລກະທໍລີ, ແລະ recursively ໄດເລກະທໍລີຍ່ອຍທັງຫມົດ, ແຕ່ນີ້
ຕ້ອງການທາງເລືອກ -r ທີ່ຈະໃຫ້ຢ່າງຊັດເຈນ.
-f, --force
ລົບລ້າງການກວດສອບທີ່ທັນສະໄຫມ.
-n, --dry-run
ແທ້ຈິງແລ້ວ, ຢ່າເອົາໄຟລ໌ໃດໆອອກ. ແທນທີ່ຈະ, ພຽງແຕ່ສະແດງໃຫ້ເຫັນວ່າພວກເຂົາມີຢູ່ໃນດັດຊະນີແລະ
ຖ້າບໍ່ດັ່ງນັ້ນຈະຖືກໂຍກຍ້າຍອອກໂດຍຄໍາສັ່ງ.
-r
ອະນຸຍາດໃຫ້ມີການຖອນຄືນແບບຊ້ຳໆເມື່ອມີຊື່ໄດເລກະທໍລີຊັ້ນນໍາ.
--
ຕົວເລືອກນີ້ສາມາດຖືກໃຊ້ເພື່ອແຍກຕົວເລືອກແຖວຄໍາສັ່ງອອກຈາກບັນຊີລາຍຊື່ຂອງໄຟລ໌,
(ເປັນປະໂຫຍດໃນເວລາທີ່ຊື່ໄຟລ໌ອາດຈະຜິດພາດສໍາລັບຕົວເລືອກແຖວຄໍາສັ່ງ).
--cached
ໃຊ້ຕົວເລືອກນີ້ເພື່ອ unstage ແລະເອົາເສັ້ນທາງອອກຈາກດັດຊະນີເທົ່ານັ້ນ. ໄຟລ໌ຕົ້ນໄມ້ທີ່ເຮັດວຽກ,
ບໍ່ວ່າຈະມີການດັດແກ້ຫຼືບໍ່, ຈະຖືກປະໄວ້ຄົນດຽວ.
--ບໍ່ສົນໃຈ-ບໍ່ກົງກັນ
ອອກຈາກສະຖານະສູນເຖິງແມ່ນວ່າບໍ່ມີໄຟລ໌ທີ່ກົງກັນ.
-q, --ງຽບ
git rm ປົກກະຕິອອກເສັ້ນຫນຶ່ງ (ໃນຮູບແບບຂອງຄໍາສັ່ງ rm) ສໍາລັບແຕ່ລະໄຟລ໌ທີ່ຖືກໂຍກຍ້າຍ.
ທາງເລືອກນີ້ສະກັດກັ້ນຜົນຜະລິດນັ້ນ.
ການສົນທະນາ
ໄດ້ ບັນຊີລາຍຊື່ທີ່ໃຫ້ຄໍາສັ່ງສາມາດເປັນຊື່ເສັ້ນທາງທີ່ແນ່ນອນ, ຮູບແບບ glob ໄຟລ໌, ຫຼື
ຊື່ໄດເລກະທໍລີຊັ້ນນໍາ. ຄໍາສັ່ງເອົາພຽງແຕ່ເສັ້ນທາງທີ່ຮູ້ຈັກກັບ Git. ການໃຫ້
ຊື່ຂອງໄຟລ໌ທີ່ທ່ານບໍ່ໄດ້ບອກ Git ຈະບໍ່ເອົາໄຟລ໌ນັ້ນອອກ.
ໄຟລ໌ globbing ກົງກັນໃນທົ່ວເຂດແດນຂອງໄດເລກະທໍລີ. ດັ່ງນັ້ນ, ໃຫ້ສອງໄດເລກະທໍລີ d ແລະ d2,
ມີຄວາມແຕກຕ່າງກັນລະຫວ່າງການໃຊ້ git rm 'd *' ແລະ git rm 'd / *', ຍ້ອນວ່າອະດີດຈະຄືກັນ.
ເອົາທັງໝົດຂອງໄດເລກະທໍລີ d2.
ເອົາອອກ ເອກະສານ ທີ່ ມີ ຫາຍໄປ ຈາກ ການ ລະບົບໄຟລ໌
ບໍ່ມີທາງເລືອກສໍາລັບ git rm ທີ່ຈະເອົາອອກຈາກດັດສະນີພຽງແຕ່ເສັ້ນທາງທີ່ມີ
ຫາຍໄປຈາກລະບົບໄຟລ໌. ຢ່າງໃດກໍຕາມ, ອີງຕາມກໍລະນີການນໍາໃຊ້, ມີຫຼາຍ
ວິທີການທີ່ສາມາດເຮັດໄດ້.
ການນໍາໃຊ້ “git ຄໍາຫມັ້ນສັນຍາ -a”
ຖ້າທ່ານຕັ້ງໃຈວ່າຄໍາຫມັ້ນສັນຍາຕໍ່ໄປຂອງທ່ານຄວນບັນທຶກການປ່ຽນແປງທັງຫມົດຂອງໄຟລ໌ທີ່ຕິດຕາມຢູ່ໃນ
ຕົ້ນໄມ້ທີ່ເຮັດວຽກແລະບັນທຶກການໂຍກຍ້າຍທັງຫມົດຂອງໄຟລ໌ທີ່ຖືກໂຍກຍ້າຍອອກຈາກການເຮັດວຽກ
tree with rm (ກົງກັນຂ້າມກັບ git rm), ໃຊ້ git commit -a, ຍ້ອນວ່າມັນຈະສັງເກດເຫັນອັດຕະໂນມັດ.
ແລະບັນທຶກການໂຍກຍ້າຍທັງຫມົດ. ນອກນັ້ນທ່ານຍັງສາມາດມີຜົນກະທົບທີ່ຄ້າຍຄືກັນໂດຍບໍ່ມີການ committing ໂດຍການນໍາໃຊ້
git add -u.
ການນໍາໃຊ້ “git ເພີ່ມ -A”
ໃນເວລາທີ່ຍອມຮັບການຫຼຸດລົງລະຫັດໃຫມ່ສໍາລັບສາຂາຜູ້ຂາຍ, ທ່ານອາດຈະຕ້ອງການທີ່ຈະບັນທຶກທັງສອງ
ການໂຍກຍ້າຍເສັ້ນທາງແລະການເພີ່ມເສັ້ນທາງໃຫມ່ເຊັ່ນດຽວກັນກັບການດັດແປງເສັ້ນທາງທີ່ມີຢູ່ແລ້ວ.
ໂດຍປົກກະຕິທ່ານທໍາອິດຈະເອົາໄຟລ໌ຕິດຕາມທັງຫມົດອອກຈາກຕົ້ນໄມ້ທີ່ເຮັດວຽກໂດຍໃຊ້ນີ້
ຄໍາສັ່ງ:
git ls-files -z | xargs -0 rm -f
ແລະຫຼັງຈາກນັ້ນ untar ລະຫັດໃຫມ່ໃນຕົ້ນໄມ້ເຮັດວຽກ. ສະລັບກັນເຈົ້າສາມາດ rsync ການປ່ຽນແປງ
ເຂົ້າໄປໃນຕົ້ນໄມ້ທີ່ເຮັດວຽກ.
ຫຼັງຈາກນັ້ນ, ວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະບັນທຶກການໂຍກຍ້າຍທັງຫມົດ, ເພີ່ມ, ແລະການດັດແກ້ໃນ
ຕົ້ນໄມ້ທີ່ເຮັດວຽກແມ່ນ:
git add -A
ເບິ່ງ git-add(1).
ອື່ນ ໆ ວິທີການ
ຖ້າຫາກວ່າທັງຫມົດທີ່ທ່ານກໍ່ຕ້ອງການທີ່ຈະເຮັດແມ່ນການເອົາອອກຈາກດັດຊະນີໄຟລ໌ທີ່ບໍ່ມີຕໍ່ໄປອີກແລ້ວ
ຢູ່ໃນຕົ້ນໄມ້ທີ່ເຮັດວຽກ (ບາງທີອາດເປັນຍ້ອນຕົ້ນໄມ້ທີ່ເຮັດວຽກຂອງເຈົ້າເປື້ອນຈົນເຈົ້າເຮັດບໍ່ໄດ້
ໃຊ້ git commit -a), ໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:
git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached
ໂມດູນຍ່ອຍ
ໂມດູນຍ່ອຍເທົ່ານັ້ນທີ່ໃຊ້ gitfile (ຊຶ່ງຫມາຍຄວາມວ່າພວກມັນຖືກໂຄນດ້ວຍ Git ຮຸ່ນ 1.7.8 ຫຼື
ໃໝ່ກວ່າ) ຈະຖືກລຶບອອກຈາກຕົ້ນໄມ້ບ່ອນເຮັດວຽກ, ເພາະວ່າບ່ອນເກັບມ້ຽນຂອງພວກເຂົາອາໄສຢູ່ໃນ .git
ບັນຊີລາຍການ superproject. ຖ້າມີໂມດູນຍ່ອຍ (ຫຼືອັນນຶ່ງທີ່ຕັ້ງຢູ່ໃນນັ້ນ) ຍັງຢູ່
ໃຊ້ໄດເຣັກທໍຣີ .git, git rm ຈະລົ້ມເຫລວ - ບໍ່ວ່າຈະຖືກບັງຄັບຫຼືບໍ່ - ເພື່ອປົກປ້ອງ
ປະຫວັດຂອງໂມດູນຍ່ອຍ. ຖ້າມັນມີ submodule. ພາກສ່ວນໃນ gitmodules(5) ໄຟລ໌
ຍັງຈະຖືກລຶບອອກ ແລະໄຟລ໌ນັ້ນຈະຖືກຂັ້ນຕອນ (ເວັ້ນເສຍແຕ່ວ່າ --cached ຫຼື -n ຖືກນໍາໃຊ້).
ໂມດູນຍ່ອຍຖືກພິຈາລະນາເຖິງປັດຈຸບັນເມື່ອ HEAD ແມ່ນຄືກັນກັບທີ່ບັນທຶກໄວ້ໃນດັດຊະນີ,
ບໍ່ມີໄຟລ໌ທີ່ຕິດຕາມຖືກດັດແກ້ ແລະບໍ່ມີໄຟລ໌ທີ່ບໍ່ໄດ້ຕິດຕາມທີ່ບໍ່ໄດ້ລະເລີຍມີຢູ່ໃນ
submodules ຕົ້ນໄມ້ເຮັດວຽກ. ໄຟລ໌ທີ່ຖືກລະເລີຍຖືວ່າໃຊ້ຈ່າຍໄດ້ ແລະຈະບໍ່ຢຸດໂມດູນຍ່ອຍ
ຕົ້ນໄມ້ບ່ອນເຮັດວຽກຖືກໂຍກຍ້າຍ.
ຖ້າຫາກວ່າທ່ານພຽງແຕ່ຕ້ອງການທີ່ຈະເອົາ checkout ທ້ອງຖິ່ນຂອງ submodule ຈາກຕົ້ນໄມ້ເຮັດວຽກຂອງທ່ານໂດຍບໍ່ມີການ
committing ການໂຍກຍ້າຍ, ການນໍາໃຊ້ git-submodule(1) deinit ແທນ.
ຕົວຢ່າງ
git rm ເອກະສານ/\*.txt
ເອົາໄຟລ໌ *.txt ທັງຫມົດອອກຈາກດັດຊະນີທີ່ຢູ່ໃຕ້ໄດເລກະທໍລີເອກະສານແລະ
ໄດເລກະທໍລີຍ່ອຍຂອງມັນ.
ໃຫ້ສັງເກດວ່າດາວ * ແມ່ນອ້າງອີງຈາກແກະໃນຕົວຢ່າງນີ້; ນີ້ເຮັດໃຫ້ Git, ແລະ
ບໍ່ແມ່ນແກະ, ຂະຫຍາຍຊື່ເສັ້ນທາງຂອງໄຟລ໌ແລະໄດເລກະທໍລີຍ່ອຍພາຍໃຕ້
ເອກະສານ / ໄດເລກະທໍລີ.
git rm -f git-*.sh
ເນື່ອງຈາກວ່າຕົວຢ່າງນີ້ເຮັດໃຫ້ shell ຂະຫຍາຍຮູບດາວໄດ້ (ເຊັ່ນ: ທ່ານກໍາລັງສະແດງລາຍການ
ໄຟລ໌ຢ່າງຊັດເຈນ), ມັນບໍ່ໄດ້ເອົາ subdir/git-foo.sh.
ໃຊ້ git-rm ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net