คำถามติดแท็ก git-patch

25
จะเลือกผสานหรือรับการเปลี่ยนแปลงจากสาขาอื่นใน Git ได้อย่างไร?
ฉันใช้คอมไพล์ในโครงการใหม่ที่มีสองขนานกัน แต่ปัจจุบันกำลังทำการทดลอง - สาขาการพัฒนา: master: นำเข้า codebase ที่มีอยู่บวกกับ mods เล็กน้อยที่โดยทั่วไปฉันแน่ใจ exp1: สาขาทดลอง # 1 exp2: สาขาทดลอง # 2 exp1และexp2เป็นตัวแทนของสองแนวทางสถาปัตยกรรมที่แตกต่างกันมาก จนกว่าฉันจะไปได้ไกลกว่านั้นฉันก็ไม่รู้ว่าจะใช้อันไหน (ถ้ามี) เมื่อฉันก้าวหน้าในสาขาหนึ่งบางครั้งฉันก็มีการแก้ไขที่จะเป็นประโยชน์ในสาขาอื่นและต้องการที่จะรวมเฉพาะที่ วิธีที่ดีที่สุดในการรวมการเปลี่ยนแปลงแบบเลือกจากสาขาการพัฒนาหนึ่งไปยังอีกสาขาหนึ่งคืออะไรในขณะที่ทิ้งทุกอย่างอื่นไว้ แนวทางที่ฉันได้พิจารณา: git merge --no-commit ตามด้วย unstaging ด้วยตนเองของการแก้ไขจำนวนมากที่ฉันไม่ต้องการทำร่วมกันระหว่างสาขา การคัดลอกไฟล์ทั่วไปด้วยตนเองไปยังไดเรกทอรีชั่วคราวแล้วgit checkoutย้ายไปที่สาขาอื่นจากนั้นคัดลอกออกจากไดเรกทอรีชั่วคราวด้วยตนเองไปยังแผนผังการทำงาน ความแปรปรวนด้านบน ยกเลิกexpสาขาในตอนนี้และใช้ที่เก็บข้อมูลเพิ่มเติมในพื้นที่สองแห่งสำหรับการทดลอง ทำให้การคัดลอกไฟล์ด้วยตนเองทำได้ง่ายขึ้น ทั้งสามวิธีการเหล่านี้ดูเหมือนน่าเบื่อและผิดพลาดได้ง่าย ฉันหวังว่าจะมีวิธีการที่ดีกว่า สิ่งที่คล้ายกับพารามิเตอร์พา ธ ตัวกรองที่จะทำให้git-mergeเลือกได้มากกว่า

7
สร้างโปรแกรมแก้ไข git จากการเปลี่ยนแปลงในไดเรกทอรีการทำงานปัจจุบัน
กล่าวว่าฉันมีการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดในไดเรกทอรีทำงานของฉัน ฉันจะสร้างโปรแกรมปะแก้จากผู้ที่ไม่ต้องสร้างการผูกมัดได้อย่างไร?
879 git  git-patch 

5
ฉันจะฟอร์แมตปะกับสิ่งที่ฉันซ่อนอยู่ได้อย่างไร
ในคอมไพล์ฉันซ่อนการเปลี่ยนแปลงของฉัน เป็นไปได้หรือไม่ที่ฉันจะสร้างแพตช์ด้วยสิ่งที่ฉันซ่อนเร้น? แล้วใช้ชุดข้อมูลแก้ไขนั้นในที่เก็บอื่น (เพื่อนร่วมงานของฉัน) บ้างไหม? ฉันรู้git format-patch -1แต่ฉันคิดว่ามันเป็นสิ่งที่ฉันมุ่งมั่น แต่ฉันกำลังมองหาสิ่งเดียวกันสำหรับการเปลี่ยนแปลงที่ฉันเก็บไว้ และฉันจะใช้โปรแกรมแก้ไขในที่เก็บอื่นได้อย่างไร
140 git  git-stash  git-patch 

6
จะใช้ Git patch กับไฟล์ที่มีชื่อและเส้นทางอื่นได้อย่างไร?
ฉันมีที่เก็บสองแห่ง ./hello.testในหนึ่งฉันจะทำให้การเปลี่ยนแปลงไปยังแฟ้ม git format-patch -1 HEADฉันกระทำการเปลี่ยนแปลงและสร้างแพทช์จากที่กระทำกับ ตอนนี้ฉันมีที่เก็บที่สองที่มีไฟล์ที่มีเนื้อหาเหมือนกับ hello.test แต่ถูกวางไว้ในไดเร็กทอรีอื่นภายใต้ชื่ออื่น: ./blue/red/hi.test. ฉันจะนำโปรแกรมแก้ไขดังกล่าวไปใช้กับhi.testไฟล์ได้อย่างไร ฉันพยายามgit am --directory='blue/red' < patch_fileแต่แน่นอนว่าบ่นว่าไฟล์ไม่ได้ตั้งชื่อเหมือนกัน (ซึ่งฉันคิดว่า Git ไม่สนใจ?) ฉันรู้ว่าฉันสามารถแก้ไขความแตกต่างเพื่อใช้กับไฟล์เฉพาะนั้นได้ แต่ฉันกำลังมองหาวิธีแก้ปัญหาคำสั่ง

4
“ 1 บรรทัดเพิ่มข้อผิดพลาดช่องว่าง” หมายความว่าอย่างไรเมื่อใช้โปรแกรมแก้ไข
ฉันกำลังแก้ไขไฟล์ markdown ของที่เก็บรีโมตที่ถูกโคลนและต้องการทดสอบการสร้างและใช้แพตช์จากสาขาหนึ่งไปยังอีกสาขาหนึ่ง อย่างไรก็ตามทุกครั้งที่ฉันทำการเปลี่ยนแปลงใด ๆ ฉันจะได้รับข้อความต่อไปนี้ระหว่างgit apply: 0001-b.patch:16: trailing whitespace. warning: 1 line adds whitespace errors. (สิ่งนี้เกิดขึ้นบน Mac ของฉันและฉันไม่รู้ว่ารหัสดั้งเดิมถูกสร้างขึ้นที่ไหน) ข้อความเตือนหมายความว่าอย่างไรและฉันต้องดูแลหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.