Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การลบไฟล์ที่ไม่ได้ติดตามด้วย Git

คุณสามารถใช้คำสั่ง git clean เพื่อลบไฟล์ที่ไม่ได้ติดตาม คำสั่ง -fd จะลบไดเร็กทอรีที่ไม่ได้ติดตาม และคำสั่ง git clean -fx จะลบไฟล์ที่ถูกละเว้นและไม่ถูกละเว้น คุณสามารถลบไฟล์ที่ไม่ได้ติดตามได้โดยใช้ไฟล์ .gitignore

ไฟล์ในที่เก็บ Git มีอยู่สองประเภท:ไฟล์ที่ติดตามและไม่ได้ติดตาม คุณอาจพบสถานการณ์ที่คุณต้องลบไฟล์ที่ไม่ได้ติดตามออกจากที่เก็บ Git

เราควรลบไฟล์ที่ไม่ได้ติดตามหรือไม่ เราอาจต้องทำเช่นนั้นหาก:

  • ไดเรกทอรีการทำงาน (ในเครื่อง) ของเราเต็มไปด้วยไฟล์ที่ไม่ได้ใช้
  • คุณชี้ Git ไปยังโฟลเดอร์ที่คุณไม่ต้องการ
  • มีไฟล์ที่เหลือจากการผสานอื่นๆ หรือคุณต้องการลบบางไฟล์

Git ลบไฟล์ที่ไม่ได้ติดตาม

คุณสามารถจัดการไฟล์ที่ไม่ได้ติดตามจากสาขา Git โดยใช้วิธีการเหล่านี้:

  • ไฟล์ .gitignore ซึ่งไม่สนใจไฟล์และไดเร็กทอรีในที่เก็บ
  • คำสั่ง git clean -fx ซึ่งลบไฟล์ที่ไม่ได้ติดตามและติดตาม
  • คำสั่ง git clean -fd ซึ่งลบไฟล์และไดเร็กทอรีที่ไม่ได้ติดตาม

ในคู่มือนี้ เราจะพูดถึงวิธีลบไฟล์ที่ไม่ได้ติดตามด้วย Git เราจะยกตัวอย่างบางส่วนเพื่อให้คุณเริ่มต้นได้อย่างรวดเร็ว

ความแตกต่างระหว่างไฟล์ที่ติดตามกับไฟล์ที่ไม่ได้ติดตาม

ในไดเร็กทอรีที่ทำงานหรือในเครื่องของคุณ ไฟล์ของคุณจะถูกติดตามหรือไม่ถูกติดตาม ติดตาม หมายถึงไฟล์เหล่านั้นที่เพิ่มและคอมมิตในสแนปชอตก่อนหน้าและ Git นั้นรับรู้เพื่อติดตามการเปลี่ยนแปลง

ไม่ถูกติดตาม ไฟล์จะตรงกันข้าม ไฟล์เหล่านั้นไม่ได้อยู่ในการคอมมิตครั้งก่อนและไม่ได้จัดฉากให้คอมมิต คุณมีตัวเลือกว่าจะสเตจและคอมมิตกับที่เก็บของคุณ หรือลบออก!

ถ้าเราทำ สถานะ git ทันทีหลังจากแก้ไข/เพิ่มไฟล์ ระบบจะแสดงรายการไฟล์ที่ไม่ได้ติดตามและไฟล์ที่ถูกติดตาม

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

ลบตัวเลือก Git ไฟล์ที่ไม่ได้ติดตาม 1:.gitignore

ตัวเลือกแรกคือ ละเว้น ไฟล์ดังกล่าว คุณสามารถทำงานในโปรเจ็กต์ C++ ซึ่งในระหว่างบิลด์ คุณอาจได้รับไฟล์ที่สร้างขึ้นโดยที่คุณไม่ต้องการให้ใช้งานได้

ตัวอย่างเช่น คุณอาจมี .env ไฟล์ที่มีตัวแปรสภาพแวดล้อมและฐานข้อมูล, API, คีย์การเข้าถึงทั้งหมดของคุณ คุณไม่ต้องการให้ข้อมูลนั้นออกไปในป่าใช่ไหม? นี่คือที่ที่ .gitignore ไฟล์เข้ามาเล่นครับ

ไฟล์ใด ๆ ที่มีอยู่ใน .gitignore ไฟล์จะไม่เป็นส่วนหนึ่งของโฟลว์ Git ที่ไม่ได้ติดตาม/ติดตาม พวกเขาจะ ลบ จากมัน. ดังนั้น Git จะเพิกเฉยต่อพวกเขาและไม่ติดตามพวกเขาหรือบ่นว่าพวกเขาไม่ถูกติดตาม

ขั้นแรก มาสร้าง .gitignore . กัน ไฟล์ในรูท จากนั้นเราจะระบุเส้นทางสัมพัทธ์ของตำแหน่ง ดังนั้น ถ้าสมมุติว่าเราต้องการซ่อนไฟล์ node_modules และ config.env เราก็แค่เพิ่มเข้าไปดังนี้:

node_modules
config.env

การทำความเข้าใจ Gitignore เป็นสิ่งสำคัญเมื่อโปรเจ็กต์ของคุณเติบโตขึ้น ดังนั้นคุณต้องรู้ว่าต้องเพิ่มโฟลเดอร์หรือไฟล์ใดบ้าง เนื่องจากคุณไม่ต้องการให้ไฟล์เหล่านี้ในเวิร์กโฟลว์ Git ไม่ถูกติดตาม จากนั้นจึงจัดสเตจโดยไม่ได้ตั้งใจ และให้ Git ติดตามไฟล์ที่ละเอียดอ่อนดังกล่าวเพื่อให้ทุกคนเห็นคีย์ของคุณถูกเปิดเผย!

การทำความเข้าใจ Gitignore เป็นสิ่งสำคัญเมื่อโปรเจ็กต์ของคุณเติบโตขึ้น ดังนั้นคุณต้องรู้ว่าต้องเพิ่มโฟลเดอร์หรือไฟล์ใดบ้าง เนื่องจากคุณไม่ต้องการให้พวกเขาอยู่ในเวิร์กโฟลว์ Git ไม่ถูกติดตามเพื่อจัดลำดับโดยไม่ได้ตั้งใจ ซึ่งจะทำให้ Git เริ่มติดตามไฟล์ที่มีข้อมูลที่ไม่ควรแชร์ในที่เก็บ

ลบ Untracked Files Git ตัวเลือก 2:git clean

ตัวเลือกต่อไปที่เราต้องลบไฟล์คือใช้ git clean สั่งการ. คำสั่ง git clean จะลบไฟล์ที่ไม่ได้ติดตามออกจากที่เก็บ

คำสั่ง git clean เริ่มต้นจากไดเร็กทอรีการทำงานปัจจุบันของคุณภายในแผนผังการทำงานของคุณ ต้นไม้ทำงานของคุณคือสาขาที่คุณกำลังดูอยู่

คำสั่งนี้จะเป็นประโยชน์ในกรณีที่คุณเพิ่มโฟลเดอร์ที่มีรูปภาพของโรงเรียนมัธยมศึกษาตอนปลายลงในที่เก็บโดยไม่ได้ตั้งใจ แทนที่จะเป็นโฟลเดอร์อื่น

Git clean มีสองสามตัวเลือก มาดูไวยากรณ์ของคำสั่งนี้กัน:

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

ณ จุดนี้ เป็นเรื่องที่ควรค่าแก่การกล่าวไว้ว่า Git clean ลบไฟล์ของคุณด้วยวิธีระบบที่ยาก . ซึ่งหมายความว่าคุณไม่สามารถเลิกทำการเปลี่ยนแปลงของคุณได้ คล้ายกับ rm คำสั่งในเทอร์มินัล แต่ถ้าไฟล์ถูกติดตามในการคอมมิตครั้งก่อน เราอาจสามารถค้นหาเวอร์ชันเก่าได้

git clean -d -n

หากเราไม่ระบุเส้นทาง เรามักจะต้องการรวม -d ตัวเลือกเพื่อให้ Git ดูในไดเร็กทอรีที่ไม่ได้ติดตาม

เราควรรวม -n ตัวเลือกการวิ่งแบบแห้ง แรก. สิ่งนี้แนะนำให้ Git เตือนเราถึงสิ่งที่จะถูกลบก่อนที่จะลบ กล่าวอีกนัยหนึ่ง แฟล็ก -n ดำเนินการรันฟังก์ชัน clean ของเราแบบแห้ง จากนั้น เราสามารถเรียกใช้ git clean ได้เมื่อเราแน่ใจว่าได้ทำการเปลี่ยนแปลงแล้ว

การใช้ตัวเลือกนี้จะช่วยป้องกันการนำไฟล์ที่เรายังไม่พร้อมที่จะลบออกหรือไม่ต้องการลบออก นี่คือวิธีที่เราจะลงเอยด้วย git clean -d -n สั่งการ.

ลองดูสิ่งนี้ในการดำเนินการ เรามี SillyPicture.jpg ของเราซึ่งเราไม่ต้องการติดตามและต้องการลบ ตรวจสอบสิ่งที่จะเกิดขึ้น:

การลบไฟล์ที่ไม่ได้ติดตามด้วย Git

git clean -f

เพื่อให้ Git ทำงานได้ เราอาจจำเป็นต้องระบุ ตัวเลือกบังคับ . ควรใช้ตัวเลือกนี้เฉพาะเมื่อคุณแน่ใจว่าต้องการลบไฟล์ที่คุณเลือกออกจากที่เก็บ

ไปข้างหน้าและลบ SillyPicture.jpg ของเราด้วย git clean -f หรือคุณสามารถเจาะจงมากขึ้นด้วย git clean -f SillyPicture.jpg

การลบไฟล์ที่ไม่ได้ติดตามด้วย Git

ที่นี่ คุณอาจสังเกตเห็นว่าที่นี่ สถานะ git ชี้ให้เห็นครั้งแรกว่ามีไฟล์ที่ไม่ได้ติดตาม จากนั้นหลังจากที่เราลบด้วย -f ตัวเลือกไฟล์นั้นหายไปแล้ว C'est fini!

แม้ว่า -f option และ Git clean นั้นทรงพลังมาก มันจะไม่ทำงานกับไฟล์ที่ถูกละเลย เนื่องจากใช้งานได้เฉพาะกับไฟล์ที่ Git ทราบและเป็นส่วนหนึ่งของระบบควบคุมเวอร์ชัน

git clean -x

ไม่แนะนำเว้นแต่คุณจะรู้ว่ากำลังทำอะไรอยู่ ใช่ คุณสามารถลบไฟล์และไดเร็กทอรีที่ถูกละเว้นได้ การทำเช่นนี้เพียงใช้ -x ตัวเลือก. ดังนั้น git clean -d -x -f จะทำได้ง่ายๆเพียงชั่วพริบตา แต่อย่าเพิ่งใช้

git clean -d -i

แนะนำสำหรับผู้เริ่มต้น ขณะที่คุณเริ่มต้น คุณอาจต้องระวังตัวเลือกที่คุณส่งผ่าน เราได้แสดงให้คุณเห็นแล้วว่าการวิ่งแบบแห้ง -n ตัวเลือก. นอกจากนี้ยังมี -i ตัวเลือกที่จะแสดงอินเทอร์เฟซแบบโต้ตอบที่คุณสามารถเล่นได้!

การลบไฟล์ที่ไม่ได้ติดตามด้วย Git

บทสรุป

คุณสามารถลบไฟล์ที่ไม่ได้ติดตามออกจากที่เก็บได้โดยใช้คำสั่ง .gitignore หรือคำสั่ง git clean คำสั่ง git clean ลบไฟล์แบบเรียกซ้ำ คำสั่งนี้เริ่มต้นในไดเร็กทอรีการทำงานปัจจุบันของคุณ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Git โปรดอ่านคู่มือวิธีการเรียนรู้ Git