วิธี git ละเว้นจุดตรวจสมุดบันทึก ipython ที่ใดก็ได้ในที่เก็บ


106

ส่วนใหญ่เป็นคำถามคอมไพล์ ฉันต้องการคอมมิตโน้ตบุ๊ก ipython ของฉัน แต่ gitignore จุดตรวจสอบ

repo มีหลายโฟลเดอร์ซึ่งแต่ละโฟลเดอร์มีสมุดบันทึก ipython ดังนั้นการละเว้นไดเรกทอรีเดียวจะไม่สามารถแก้ปัญหาได้ ฉันต้องการเพิ่มโฟลเดอร์ใหม่โดยมีสมุดบันทึกอยู่ข้างในโดยไม่ต้องกังวล

ลางสังหรณ์ของฉันคือต้องมีวิธีใช้สัญลักษณ์แทนเพื่อgitignore อะไรก็ได้ที่อยู่ในโฟลเดอร์ที่ชื่อว่า * /. ipynb_checkpoints /แต่ยังไม่สามารถคิดออกได้

ดังนั้นฉันจะละเว้นจุดตรวจสอบโน้ตบุ๊ก ipython ทั้งหมดในที่เก็บได้อย่างไรไม่ว่าจะอยู่ที่ไหน

คำตอบ:


140

หากคุณเพิ่มใน. gitignore:

.ipynb_checkpoints

(ไม่มีเครื่องหมายทับที่ใดก็ได้) ไฟล์หรือไดเร็กทอรีใด ๆ ใน repo ที่มีชื่อนั้นจะถูกละเว้น เส้นทางจะถูกตรวจสอบก็ต่อเมื่อคุณรวม/ไว้

จากคำตอบนี้คุณสามารถมี gitignore ส่วนกลางสำหรับคอมพิวเตอร์ของคุณ:

git config --global core.excludesfile '~/.gitignore'
echo '.ipynb_checkpoints' >> ~/.gitignore

4
ดูเหมือนว่ามันควรจะใช้ได้ แต่ด้วยเหตุผลบางอย่างมันไม่ได้ผลสำหรับฉัน จากโฟลเดอร์ที่เก็บรูทจุดตรวจของฉันอยู่ในnotebooks/.ipynb_checkpoints/และฉันไม่สามารถเพิกเฉยได้ตลอดชีวิต! ฉันลองเพิ่มเส้นทางนั้นโดยมีและไม่มีเครื่องหมายทับลงใน. gitignore ของฉัน ฉันลองคำแนะนำของคุณแล้ว ฉันลองเพิ่มดาวมากมาย ความคิดใด ๆ ?
Engineero

@Engineero คุณบอก git ว่า.gitignoreไฟล์ของคุณอยู่git configที่ไหน?
Ciprian Tomoiagă

6
@Engineero: คุณได้กระทำบางอย่างแล้วหรือยัง? .gitignoreไม่สามารถเพิกเฉยต่อสิ่งต่าง ๆ หลังจากความจริง (หากพวกเขามีความมุ่งมั่นแล้ว)
Mr_and_Mrs_D

@CiprianTomoiaga พบว่าฉัน.gitignoreดีและไฟล์และโฟลเดอร์อื่น ๆ จะถูกละเว้น ฉันไม่รู้ว่าทำไมถึงใช้ไม่ได้ แต่ฉันพบบางอย่างที่ใช้ได้ ผมจะเพิ่มเป็นคำตอบ
Engineero

@Mr_and_Mrs_D ฉันก็มีปัญหาเช่นกัน แต่ฉันเพิ่งยกเลิกการทำดัชนีไฟล์และลองทำอย่างอื่นใน.gitignore. ในที่สุดฉันก็สามารถทำให้มันใช้งานได้โดยมีสิ่งที่ฉันจะเพิ่มเป็นคำตอบ
Engineero



3

บางครั้งคุณอาจลืมไปว่าคุณกำลังติดตามไฟล์ในที่เก็บ git ของคุณอยู่แล้ว (เหมือนในกรณีของฉัน) ดังนั้นคุณอาจต้องยกเลิกการติดตามก่อน

git rm --cached Folder_with_ipynb/.ipynb_checkpoints/news-checkpoint.ipynb

จากนั้นเพิ่ม.gitignoreในบรรทัดของคุณ:

*/.ipynb_checkpoints/*.ipynb


2

หากคุณยังไม่ได้ส่งรหัสให้เพิ่ม

.ipynb_checkpoints

ไปยัง. gitignore ของคุณ

หากคุณเคยพุชโค้ดมาก่อนแล้วให้เพิ่ม .ipynb_checkpoints. gitignore ของคุณ เพื่อให้แน่ใจว่า. ipynb_checkpoints จะถูกละเว้นในอนาคต แต่จะไม่ลบ. ipynb_checkpoints เก่าของคุณ

คุณต้องลบแคชด้วยตนเองในทุกโฟลเดอร์ในสาขาที่เกี่ยวข้อง ไปที่โฟลเดอร์ที่มี. ipynb_checkpoints ในตอนแรกแล้วทำ

git rm -r --cached .ipynb_checkpoints

ฉันมีปัญหานี้และดูคำตอบต่างๆ แต่อันนี้แก้ไขให้ฉันได้ อันที่จริงฉันพบวิธีแก้ปัญหาโดยอิสระก่อนและเห็นสิ่งนี้เมื่อตรวจสอบเท่านั้น เพื่อความชัดเจนหากคุณมีไฟล์ถาวรgit statusแม้ว่าคุณจะรวมโฟลเดอร์ไว้.gitignoreแล้วก็ตามให้ตรวจสอบว่าไฟล์เหล่านี้ได้รับการยืนยันมาก่อน วิธีที่ง่ายที่สุดคือใช้git rmคำสั่งด้านบน การ--cachedตั้งค่าสถานะจะช่วยให้แน่ใจว่าคุณเก็บสำเนาในเครื่องไว้
pandamonium

0

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

.*  # ignore all hidden files and folders
!/.gitignore  # explicitly do not ignore .gitignore

ไปยัง.gitignoreไฟล์ของฉันในไดเร็กทอรีฐานของ repo นี่เป็นการกวาดล้างในวงกว้างและจะเป็นความเจ็บปวดในการดูแลรักษาหากคุณต้องการเก็บไฟล์ที่ซ่อนไว้ใน repo ของคุณ แต่ฉันไม่ต้องการสิ่งใดนอกจากของฉัน.gitignoreดังนั้นมันจึงเหมาะกับฉัน!


ใช่สำหรับฉันเหมือนกันไม่มีผลงานข้างต้น แม้แต่สิ่งที่คุณเสนอ เมื่อสร้างจุดตรวจสอบจะปรากฏในสถานะคอมไพล์
pebox11

-3

rm -rf .ipynb_checkpointsผมใช้คำสั่ง สิ่งนี้ได้ผลสำหรับฉัน


3
นั่นคือการลบโฟลเดอร์โดยไม่สนใจมัน นี่เป็นคำตอบที่ทำให้เข้าใจผิด
จันทรากั ณ ฑ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.