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

การเรียนรู้ .gitignore:คู่มือสำหรับผู้เริ่มต้นในการยกเว้นไฟล์ Git

ไฟล์ .gitignore มีรายการไฟล์ที่ Git ไม่ควรละเว้นในโครงการท้องถิ่น โดยทั่วไปไฟล์ .gitignore จะปรากฏในไดเรกทอรีหลักของโปรเจ็กต์ คุณสามารถละเว้นไฟล์เดียว หลายไฟล์ หรือโฟลเดอร์ได้

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

นั่นคือที่มาของไฟล์ .gitignore ไฟล์นี้อนุญาตให้คุณสั่งให้ Git ละเว้นไฟล์ได้

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

ไฟล์ .gitignore คืออะไร

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

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

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

ไม่มีคำสั่งละเลยที่คุณสามารถใช้เพื่อละเว้นไฟล์ได้ คุณต้องสร้างรายการไฟล์ทั้งหมดที่คุณต้องการละเว้นในไฟล์ .gitignore

วิธีการเขียนไฟล์ .gitignore

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

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

พิจารณา .gitignore ต่อไปนี้ ไฟล์:

ไฟล์นี้ละเว้นสองรีซอร์ส:ไฟล์ทั้งหมดในไดเร็กทอรี node_modules และไฟล์ .env เราได้ละเว้นทรัพยากรเฉพาะสองรายการในที่เก็บในเครื่องของเรา:โฟลเดอร์และไฟล์

นี่เป็นการตั้งค่าทั่วไปสำหรับโปรเจ็กต์ JavaScript node_modules มีสำเนาภายในเครื่องของการขึ้นต่อกันทั้งหมดที่คุณใช้สำหรับโปรเจ็กต์ เป็นไปไม่ได้ที่จะส่งสิ่งนี้ไปยังพื้นที่เก็บข้อมูลเมื่อคุณสามารถติดตั้งการขึ้นต่อกันเหล่านี้ได้ด้วยตัวเอง ไฟล์ .env มีคีย์ API การแบ่งปันคีย์ API ในพื้นที่เก็บข้อมูลที่ผู้คนจำนวนมากสามารถเข้าถึงได้ถือเป็นแนวปฏิบัติที่ไม่ดี

สมมติว่าเราต้องการละเว้นหลายไฟล์หรือไดเร็กทอรี เราสามารถทำได้โดยใช้ * wildcard

ลองละเว้นไฟล์ .pyc ทั้งหมดในที่เก็บ:

ไฟล์ทั้งหมดที่มีรูปแบบชื่อตรงกัน *.pyc จะถูกละเว้น เครื่องหมายดอกจันคือตัวดำเนินการไวด์การ์ด

GitHub ได้สร้างคอลเลกชันไฟล์ gitignore ที่ยอดเยี่ยมซึ่งคุณสามารถใช้บนเว็บไซต์ของพวกเขาได้ ดูคอลเลกชันไฟล์ gitignore ของ GitHub

การใช้ไฟล์ .gitignore หลายไฟล์

คุณสามารถใช้ไฟล์ .gitignore หลายไฟล์ในพื้นที่เก็บข้อมูลเดียวกันได้ ใช้งานได้เนื่องจาก .gitignore สัมพันธ์กับไดเร็กทอรีที่วางไว้

ในตัวอย่างสุดท้ายของเรา เราวาง .gitignore ไว้ในไดเร็กทอรีรากของโปรเจ็กต์ของเรา สมมติว่าเราต้องการละเว้นไฟล์ทั้งหมดที่ลงท้ายด้วย .pyc ในโฟลเดอร์ diff/ เราสามารถทำได้โดยสร้างไฟล์ชื่อ .gitignore ในโฟลเดอร์ diff โดยใช้บรรทัดคำสั่ง:

เราจะเพิ่มกฎต่อไปนี้ลงในไฟล์ .gitignore:

เมื่อเราคอมมิตโค้ดไปยังที่เก็บของเรา Git จะเพิกเฉยต่อไฟล์ใดๆ ในโฟลเดอร์ diff/ ซึ่งลงท้ายด้วย .pyc

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

.gitignore นี้อยู่ในไดเร็กทอรีรากของโปรเจ็กต์ Git โดยสั่งให้ Git ละเว้นไฟล์ทั้งหมดที่ลงท้ายด้วย .txt ในโปรเจ็กต์ นอกจากนี้ยังสั่งให้ Git ละเว้นไฟล์ทั้งหมดที่ลงท้ายด้วย .pyc ซึ่งอยู่ในโฟลเดอร์ diff/

วิธีสร้างกฎการละเว้น Git ทั่วโลก

อาจใช้เวลานานในการกำหนดไฟล์ .gitignore สำหรับทุกโปรเจ็กต์ที่คุณสร้าง ยิ่งไปกว่านั้น คุณจะพบว่าโปรเจ็กต์ส่วนใหญ่ของคุณใช้ชุดกฎ .gitignore ชุดเดียวกัน

คุณสามารถตั้งค่ากฎการละเว้นคอมไพล์ส่วนกลางได้ ซึ่งจะตั้งค่ากฎ gitignore ให้กับทุกพื้นที่เก็บข้อมูลในระบบของคุณโดยอัตโนมัติ ไฟล์นี้มักจะอยู่ในโฮมไดเร็กตอรี่ของระบบปฏิบัติการของคุณ เช่น /home/your_username หรือ /Users/your_username .

มาสร้างไฟล์ .gitignore ที่เป็นสากล:

คำสั่งนี้จะสร้างไฟล์ .gitignore ว่างๆ ในโฮมไดเร็กตอรี่ของเรา เปิดไฟล์นี้และเพิ่มกฎใดๆ ก็ตามที่คุณต้องการตั้งค่าสำหรับที่เก็บ Git ทั้งหมดในระบบของคุณ

การเรียนรู้ .gitignore:คู่มือสำหรับผู้เริ่มต้นในการยกเว้นไฟล์ Git

"อาชีพกรรมเข้ามาในชีวิตของฉันเมื่อฉันต้องการมันมากที่สุดและช่วยให้ฉันเข้ากับหลักสูตรฝึกหัดได้อย่างรวดเร็ว สองเดือนหลังจากสำเร็จการศึกษา ฉันพบงานในฝันที่สอดคล้องกับค่านิยมและเป้าหมายในชีวิตของฉัน!"

Venus วิศวกรซอฟต์แวร์ที่ Rockbot

ค้นหาการแข่งขัน Bootcamp ของคุณ

เมื่อคุณกำหนดค่าไฟล์ gitignore แล้ว คุณสามารถบังคับใช้กฎได้โดยใช้ core.excludesFile คุณสมบัติ:

git config --global core.excludesFile ~/.gitignore

คำสั่งนี้จะตั้งกฎใน ~/.gitignore ไฟล์เพื่อนำไปใช้กับที่เก็บ Git ทั้งหมดบนคอมพิวเตอร์

โปรดใช้ความระมัดระวังเมื่อคุณกำหนดกฎการละเว้นคอมไพล์ส่วนกลาง เนื่องจากกฎใน .gitignore ส่วนกลางถูกกำหนดไว้ตามค่าเริ่มต้นในทุกโปรเจ็กต์

ไฟล์ .gitignore ส่วนกลางเหมาะที่สุดสำหรับไฟล์ทั่วไป เช่น .env ซึ่งคุณแทบจะไม่อยากผูกมัดกับที่เก็บ git เลย

วิธีละเว้นไฟล์ที่คอมมิต

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

ไม่ต้องสนใจไฟล์ config.json ไฟล์นี้ถูกส่งไปยังพื้นที่เก็บข้อมูลของเราแล้ว เราควรเริ่มต้นด้วยการเพิ่มกฎการเพิกเฉยให้กับ .gitignore ของเรา ไฟล์:

echo config.json >> .gitignore

คำสั่งนี้ต่อท้าย config.json ต่อท้ายไฟล์ .gitignore ของเรา ตอนนี้เราต้องลบไฟล์ออกจากที่เก็บของเรา เราสามารถทำได้โดยใช้คำสั่ง git rm –cached คำสั่งนี้จะลบไฟล์ออกจากที่เก็บของคุณเท่านั้น มันจะยังคงเป็นไฟล์ในเครื่องคอมพิวเตอร์ของคุณ

git rm --cached config.json

ครั้งต่อไปที่เราสร้างการคอมมิต ไฟล์ config.json จะถูกละเว้น

วิธีการคอมมิตไฟล์ที่ถูกละเว้น

คุณสามารถคอมมิตไฟล์ที่ถูกละเว้นในไฟล์ .gitignore ของคุณได้

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

git add -f config.json
git commit -m "feat: Create default config file"

โค้ดนี้จะเพิ่มไฟล์ config.json ลงในพื้นที่จัดเตรียม จากนั้นจะสร้างการคอมมิตตามเนื้อหาของพื้นที่การแสดงละคร คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ git add ได้ในบทช่วยสอน git add ของเรา คุณสามารถอ่านเกี่ยวกับคำสั่ง git commit ได้ในบทช่วยสอนเกี่ยวกับการคอมมิตของเรา

บทสรุป

ไฟล์ .gitignore ช่วยให้คุณละเว้นไฟล์ในที่เก็บ Git ได้

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

โครงการสามารถมี .gitignore ได้หลายรายการ ไฟล์. คุณสามารถแทนที่กฎ .gitignore ได้โดยใช้แฟล็ก -f เมื่อคุณใช้คำสั่ง git add

ตอนนี้คุณพร้อมที่จะใช้ไฟล์ .gitignore เหมือนผู้เชี่ยวชาญแล้ว!