การรวมการเปลี่ยนแปลงจากที่เก็บสาธารณะเข้ากับโครงสร้างส่วนตัว

Aug 19 2020

สมมติผมโคลนพื้นที่เก็บข้อมูลOSSที่รุ่น 1.0 Aมีชั้นเรียน subclassing Aไม่พอสำหรับฉันดังนั้นฉันจะคัดลอกAไปA'และทำการแก้ไขบางส่วนไป ในเวลาต่อมาฉันโคลนOSSที่เวอร์ชัน1.1ซึ่งมีเวอร์ชันที่อัปเดตของA. ฉันจะรวมการเปลี่ยนแปลง / อัปเดตจากAเป็นสำเนาที่แก้ไขได้A'อย่างไร มีรูปแบบมาตรฐานสำหรับกรณีดังกล่าวหรือไม่?

คำตอบ

6 VonC Aug 21 2020 at 22:21

แนวคิดคือ:

  • สร้างโปรแกรมแก้ไขโดยใช้git diff: ระหว่าง A # 1.0 และ 1 # 1.0

    git diff 1.0 1.1 -- A > a.patch
    
  • จากนั้นใช้โปรแกรมแก้ไขนั้นโดยใช้patchยูทิลิตี้: คุณสามารถระบุไฟล์ที่คุณต้องการใช้ความแตกต่างpatchได้

    patch -p1 A' a.patch
    

ใน Windows ให้ใช้PATH แบบง่ายดังที่นี่และคุณจะเห็นโปรแกรมแก้ไขที่พร้อมใช้งาน

C:\git\>where patch
C:\prgs\gits\current\usr\bin\patch.exe