มีวิธีการตัดคอมไพล์กลางกระทำใด ๆ ?


0

หวังว่านี่เป็นฟอรัมที่เหมาะสมสำหรับคำถามนี้ ... บอกฉันถ้าไม่ได้

ฉันเป็นผู้ใช้พื้นฐานของคอมไพล์ แต่ฉันได้พัฒนาแอพนี้ในช่วงไม่กี่เดือนที่ผ่านมาโดยใช้หลักการ "ส่งบ่อย" ดังนั้นตอนนี้ฉันเพิ่งวิ่งgit rev-list --all --countและฉันพบว่าฉันมีความมุ่งมั่น 425

นี่อาจจะบ้า ... หรือมันอาจเป็นเรื่องปกติอย่างสมบูรณ์ ฉันไม่รู้.

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

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

ในเวลาเดียวกันเห็นได้ชัดว่าฉันกำลังสร้าง repo ใหม่ซึ่งใช้เฉพาะ "ทุก ๆ 3 ครั้ง" ฉันยังไม่ได้ลองเลยส่วนหนึ่งเพราะมันทำให้ฉันรู้สึกเบื่อซึ่งจะใช้เวลามาก: มีอะไรในคอมไพล์หรือเครื่องมือใด ๆ ที่คิดค้นขึ้นมาซึ่งสามารถช่วยงานประเภทนี้ได้บ้าง


อะไรที่ทำให้ผู้รับมอบอำนาจประมาณ 400 คนรู้สึก“ เทอะทะเล็กน้อย”?
grawity

ขอบคุณ อย่างน้อยมันก็ไม่ได้ทำให้คุณหัวเราะ ฉันสำรองข้อมูล repo นี้เป็นครั้งคราวใน Google ไดรฟ์: ในขณะนี้มีขนาด 11 MB ไม่ลำบากจนเกินไป แต่ความคิดพื้นฐานในใจของฉันคือการล้างขั้นตอนเหล่านั้นทีละหนึ่งครั้งที่ผ่านมาฉันไม่จำเป็นต้องเก็บขั้นตอนเล็ก ๆ ทั้ง 425 ขั้นจากเดือนที่ผ่านมา ... มันเป็นคำถามเกี่ยวกับหลักการของสิ่งที่ค่อนข้าง กว่าเรื่องจริง
mike rodent

คำตอบ:


1

ทำไม

ประวัติ Git ทำงานได้ดีที่สุดเมื่อมันบอกเล่าเรื่องราวของกระบวนการพัฒนา เมื่อคุณต้องการขุดประวัติ (เช่นเพื่อค้นหาเมื่อมีการแนะนำข้อผิดพลาดเมื่อได้รับการแก้ไข ฯลฯ ) มันไม่ได้ช่วยให้เห็นความมุ่งมั่นในหัวข้อ"เพิ่มการเปลี่ยนแปลงวันนี้" ; พวกเขาบอกคุณว่ารหัสมีการเปลี่ยนแปลง แต่ไม่ใช่เหตุผล

การเขียนประวัติการกระทำซ้ำนั้นเป็นเรื่องปกติ (เพื่อรวมคอมมิชชันสับเปลี่ยนพวกมันไปเรื่อย ๆ ) - แต่ถ้าคุณเพียงแค่ลบ 2 ออกจากทุก ๆ 3 การกระทำมันอาจจะไร้ประโยชน์เหมือนเมื่อก่อน ให้เขียนประวัติเพื่อล้างสิ่งต่างๆเช่น "อ๊ะแก้ไขคำผิด" หรือเพิ่มรายละเอียดเพื่อส่งข้อความ

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

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

สำหรับการสำรองข้อมูลผ่านเครือข่ายgit pushจะมีประสิทธิภาพมากกว่าการอัปโหลดที่เก็บข้อมูลทั้งหมดด้วยตนเองเนื่องจากมันรู้ว่าต้องอัพโหลดอะไรและมีอะไรอยู่บ้าง

กลับไปที่จุด

Git มีเครื่องมือมากมายสำหรับการเขียนประวัติใหม่ - ที่พบมากที่สุดคือgit rebase --interactiveสามารถแก้ไขประเภทที่คุณต้องการได้

; on a feature branch, to rewrite everything that's not yet in master
git rebase -i master

; on master, to go through the *entire history*
git rebase -i --root

การเรียกใช้ในโหมดโต้ตอบจะเปิด "รายการสิ่งที่ต้องทำ" ในเท็กซ์เอดิเตอร์โดยมีหนึ่งบรรทัดต่อคอมมิตและ "แอ็คชัน" ที่อยู่ข้างหน้า

  • การย้ายเส้นรอบ ๆ จะเป็นการจัดลำดับความมุ่งมั่นใหม่ (อย่างไรก็ตามการเปลี่ยนข้อความจะไม่อัปเดตข้อความยืนยัน - เป็นเพียงตัวอย่างเท่านั้นใช้rewordเพื่อแก้ไขข้อความจริง)

  • การเปลี่ยนการกระทำจากpickเป็นsquashจะรวมการคอมมิชชันกับการดำเนินการด้านบนส่งผลให้การคอมมิชชันเดียวที่มีทั้งข้อความเช่นกัน

  • การfixupดำเนินการคล้ายกัน แต่เก็บข้อความที่ 1 เท่านั้น

นั่นเป็นพื้นฐานเพราะมีบทเรียนมากมายที่เขียนขึ้นโดยละเอียดแล้ว ยกตัวอย่างเช่นGit หนังสือมีบทที่เกี่ยวกับการเขียนประวัติศาสตร์


ขอบคุณ ... นี่เป็นข้อมูลสำหรับระดับต่ำของฉันและฉันจะตรวจสอบอย่างใกล้ชิดในสิ่งที่คุณพูด คุณสามารถ "ดัน" ไปที่ repo ที่อาศัยอยู่ใน Google ไดรฟ์ฉันสงสัยหรือคุณต้องตั้งค่าบางอย่างใน GitHub หรือไม่ จริงๆแล้วฉันยังมี ebook ที่ยังไม่ได้อ่านบน GitHub เนื่องจากสำหรับคนอย่างฉัน (ไม่ใช่มืออาชีพด้านไอที) มันค่อนข้างยุ่งยากที่จะเข้าใจวิธีการทำงาน
mike rodent

Google Drive - ไม่ใช่ค่าเริ่มต้นไม่ใช่ (แม้ว่าจะมีปลั๊กอินสำหรับการส่งไปยัง Dropbox) โดยทั่วไปคุณสามารถกดไปที่เซิร์ฟเวอร์ส่วนบุคคลที่คุณมีการเข้าถึง SSH หรือสมัครใช้บัญชีโฮสติ้ง Git ที่ไหนสักแห่ง (GitHub ได้รับความนิยมสำหรับโครงการสาธารณะในขณะที่ BitBucket และ GitLab เป็นทางเลือกสองทางที่ให้บริการพื้นที่เก็บข้อมูลส่วนตัวฟรี)
grawity

ขอบคุณอีกครั้ง. ฉันจะค้นหา BitBucket และ / หรือ GitLab โดยเร็ว!
mike rodent

โปรดทราบว่าเว็บไซต์ทั้งสองมีบัญชีโฮสติ้งฟรีและเสนอผลิตภัณฑ์ "องค์กร" ที่ติดตั้งได้ดังนั้นอย่าสับสนกับโฆษณาหน้าแรก เพียงตรงไปที่ลิงก์ "ลงทะเบียน" นอกจากนี้แม้ว่าคุณจะไม่ได้ใช้ GitHub พื้นที่ช่วยเหลือของมันก็มีแบบฝึกหัดมากมายgit pushและ SSH ที่ใช้กับเว็บไซต์ทั้งหมดอย่างเท่าเทียมกัน
grawity
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.