ยังเชอร์รี่-อเลือกและผนวกรวมเพียง subpath จากความสามารถของคุณสมบัติแบรนซ์กับอาจารย์

0

คำถาม

ฉันมีที่น่าสนใจปัญหาได้(อย่างน้อยก็กับฉัน.)

ฉันมี master แบรนซ์และเป็น feature แบรนซ์ซึ่งถูกแยกทางกันก็ไม่อาจกลับของมันทางจาก master สักพักก่อน อีกทีมเก็บที่กำลังปรับปรุง master แบรนซ์และทีมของฉันเป็นเพียงทำงานอยู่ feature แบรนซ์.

คน master แบรนซ์รวมถึงการมีการเปลี่ยนแปลงที่ทีมของฉันไม่สนใจมันเลย เราเพียงสนใจเรื่องพวกเขา app โฟลเดอร์นั่นล่ะ ถึงแม้ว่า app โฟลเดอร์พวกเราไม่สนใจทุกสิ่งทุกอย่างเดียวที่การเปลี่ยนแปลงที่พวกเราคิดว่าเราต้องการ พวกเราไม่ได้ merging ของเรา feature แบรนซ์ไปพวกเขา master เพราะนั่นคือฝ่ายเทคนิค-สแต็กการเปลี่ยนแปลงที่เรา implementing และสิ่งเดียวที่เราต้องการจากพวกเขาคือของจาวาสคริปต์เป็นรหัสมอส

ในขณะที่เรายังทำให้การเปลี่ยนแปลง feature แบรนซ์เป็น app โฟลเดอร์ ดังนั้นใน app โฟลเดอร์พวกเขาต้องมีการเปลี่ยนแปลงที่พวกเราไม่ต้อง,เราต้องมีการเปลี่ยนแปลงที่พวกเขาไม่มี เราต้องการเพื่อให้เราทุกคนเปลี่ยนแปลงแต่อย่างเดียวเท่านั้นเลือกบางอย่างของการเปลี่ยนแปลง

ยังไงเธอจะจะปลอดภัยและมีความเรื่อง merging พวกเขา master แบรนซ์เป็น app โฟลเดอร์ของเรา feature แบรนซ์เป็น app โฟลเดอร์? ฉันต้องตามหาสำหรับชั่วโมงพยายามบางกับรหัสส่วนเสริมเพื่อแสดงตัวอย่างความแตกต่างระหว่างสองคนโฟลเดอร์ได้ สิ่งที่ฉันกำลังมองหาคือการเชื่อมต่ออยู่ไหนฉันสามารถ ยอมรับ หรือ ปฏิเสธ ทุกอย่างที่มาจาก master แบรนซ์เป็น`โปรแกรมเกี่ยวโฟลเดอร์ ถึงแม้ว่านี่คือของฉันชอบผมเปิดให้มีข้อเสนอแนะอะไรมั้ยที่จะแก้ปัญหานี้

นี่อาจฟังดูเหมือนสถานการณ์ยุ่งเหยิงแต่ทีมของผมสูญเสียบางคนที่ผ่านมาสองสามเดือนและความแตกต่างระหว่างหน่วยเติบโตขึ้นยิ่งใหญ่และยิ่งใหญ่ทุกๆอาทิตย์ก่อน ตอนนี้เราต้องการจะแก้ไขเรื่องนี้ครั้งหนึ่งและเพื่อทั้งหมด.

ขอบคุณสำหรับความช่วยเหลือ

cherry-pick git merge
2021-11-24 00:41:33
2
1

สิ่งที่ฉันกำลังมองหาคือการเชื่อมต่ออยู่ไหนฉันสามารถยอมรับหรือปฏิเสธทุกอย่างที่มาจากอาจารย์แบรนซ์เป็น app โฟลเดอร์

git checkout -p master app คือไม่ดีเท่าไหร่แต่ยืนโอกาสที่เหมาะสมขอเสิร์ฟอยู่ที่นี่

ถ้านั่นไม่ใช่การแสดงว่าคุณพอจะตัดสินใจว่าเธอต้องการอะไรต่อไปก้าวขึ้นเป็นเลือกผนวกรวมกัน

git diff --merge-base @ master -- app | git apply -3

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

2021-11-24 06:42:34
1

มีสองวิธีที่จะทำอย่างนี้ ที่ง่ายกว่าหนึ่งจะทำให้การเปลี่ยนแปลงแต่เป็นการยกเลิกการ commits พวกเขาทำ ที่ซับซ้อนมากขึ้นหนึ่งจะรักษา commits.

หมายรับรอง

ทั้งสองคนที่สองวิธีการขอคุยกันเรื่องด้านล่างนี้มีศักยภาพเพียงพอที่จะสาเหตุผนวกรวมขัดแย้งและอีกปวดหัวหลบไปตามแนโดยเฉพาะอย่างยิ่งเป็นคนต่อไปจะทำให้เกิดการเปลี่ยนแปลงบนอาจารย์แบรนซ์. ยิ่งไปกว่านั้นถ้าคุณต้องการเปลี่ยนแปลงแอ๊ป/โฟลเดอร์ในความสามารถของคุณสมบัติจากหน่วยสันติบาลโดยตรงโดยใช้ git ปรับใช้อาจจะส่งผลให้การเปลี่ยนแปลงของคุณถูกเขียนทับ

ฉันจะทนไม่ไหขอแนะนำ merging ห้องนอนใหญ่แบรนซ์เข้าไปในความสามารถของคุณสมบัติแบรนซ์ผ่านทาง git merge กับ ไม่มี squashing. จาก divergence คุณพูดถึง,มันอาจจะผนวกรวมขัดแย้ง, แต่นี่คือโอเค ผนวกรวมขัดแย้งทำในสิ่งที่คุณต้องการพวกเขาปล่อยให้คุณเลือกเปลี่ยนแปลงจะยอมรับแล้วซึ่งต้องปฏิเสธ.

อย่างที่บอกนี่คือสองคนเข้ามาใกล้แล้วนั่นเป็นที่คล้ายคลึงกันต้องเชอร์รี่-เลือกเฉพาะโฟลเดอร์

ตัวเลือก 1:ละทิ้ง commits ให้เปลี่ยนแปลง

นี่เข้าไปค่อนข้างตรงเข้าไปข้างหน้าแล้วมันใช้ผสม git diff แล้ว git apply:

git switch feature
git diff feature..master -- app | git apply --index

นี่จะเป็น:

  • สลับไปยังความสามารถของคุณสมบัติแบรนซ์(นี่คือที่ที่คุณจะปรับใช้การเปลี่ยนแปลง)
  • เข้าใจการเปลี่ยนแปลงทั้งหมทำให้อาจารย์จากหน่วยสันติบาลนั่นไม่ใช่ความสามารถของคุณสมบัติแบรนซ์.
  • ตัวกรองเพียงการเปลี่ยนแปลงใน app ไดเรกทอรี
  • ปรับใช้การเปลี่ยนแปลงทาง git apply
  • บนเวทีการเปลี่ยนแปลงโดยการเพิ่มพวกเขาดัชนี(นี่คืออะไร --index ตัวเลือกมัน)

ข้อเสียงของวิธีนั่นมันไม่รักษาประวัติศาสตร์หรือทำข้อความ

จากนั้นคุณสามารถทำการเปลี่ยนแปลงตัวเอง:

git commit -m "Apply changes made to master branch"

ตัวเลือก 2:ได้ทั้งสองอย่า commits และเปลี่ยนแปลง

อันนี้ค่อนข้างซับซ้อนกว่านั้นและมัน relies บ git format-patch.

git switch feature
git format-patch --stdout feature..master -- app | git am

นี่จะเป็น:

  • สลับไปยังความสามารถของคุณสมบัติแบรนซ์นอยู่(คุณจะปรับใช้การเปลี่ยนแปลง)
  • เข้าใจการเปลี่ยนแปลงทั้งหมทำให้อาจารย์จากหน่วยสันติบาลนั่นไม่ใช่ความสามารถของคุณสมบัติแบรนซ์
  • ตัวกรองโดยเท่านั้นที่เปลี่ยนแปลงที่ได้ทำไว้ใน app ไดเรกทอรี
  • รูปแบบเหล่านี้เป็นชุดของแผ่น(ที่บรรจุทำข้อความนักเขียน,etc)
  • ปรับใช้ของพวกนี้แพตช์แก้ไขโดยใช้ git น

โปรดสังเกตว่ามันขึ้นอยู่กับเนื้อหาของเปลี่ยนแปลงมันอาจส่งผลให้เป็นความล้มเหลวนั่นคุณจะต้องแก้ไขด้วยตนเอง (มันจะเตือนเธอไปนี้)

2021-11-24 21:55:27

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่