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

git-merge เป็นคำสั่ง git ซึ่งรวมการเปลี่ยนแปลงจากสาขาอื่นโดยการรวมคอมมิตเข้ากับสาขาที่เช็กเอาต์ในปัจจุบัน

15
ผสานสาขาพัฒนากับเจ้านาย
ฉันมีสองสาขาคือmasterและdevelopmentในที่เก็บ GitHub ฉันทำทุกอย่างเพื่อการพัฒนาในสาขาการพัฒนาตามที่แสดง git branch development git add * git commit -m "My initial commit message" git push -u origin development ตอนนี้ผมต้องการที่จะผสานการเปลี่ยนแปลงทั้งหมดในสาขาเข้าไปในdevelopment masterแนวทางปัจจุบันของฉันคือ: git checkout master git merge development git push -u origin master โปรดแจ้งให้เราทราบหากขั้นตอนที่ฉันกำลังติดตามนั้นถูกต้อง
763 git  git-merge 

14
มีตัวเลือก git-merge --dry-run หรือไม่
ฉันกำลังรวมในสาขาระยะไกลที่อาจมีความขัดแย้งมากมาย ฉันจะบอกได้อย่างไรว่ามันจะมีความขัดแย้งหรือไม่? ฉันไม่เห็นอะไรเหมือนใน --dry-rungit-merge
725 git  git-merge 

17
วิธีที่ง่ายที่สุดในการแสดงรายการไฟล์ที่ขัดแย้งใน Git คืออะไร
ฉันต้องการรายการไฟล์ที่ขัดแย้งกันแบบธรรมดา มีอะไรที่ง่ายกว่า: git ls-files -u | cut -f 2 | sort -u หรือ: git ls-files -u | awk '{print $4}' | sort | uniq ฉันเดาว่าฉันสามารถตั้งค่าให้สะดวกaliasสำหรับสิ่งนั้นได้ แต่ก็สงสัยว่ามือโปรทำได้อย่างไร ฉันต้องการใช้มันในการเขียนเปลือกลูปเช่นความขัดแย้งอัตโนมัติแก้ไข ฯลฯ อาจจะเปลี่ยนห่วงว่าด้วยการเสียบเข้าmergetool.cmd?

13
รับการเปลี่ยนแปลงจากต้นแบบเป็นสาขาใน Git
ในที่เก็บของฉันฉันมีสาขาaqที่ฉันกำลังทำงานอยู่ masterจากนั้นผมก็มุ่งมั่นในการทำงานใหม่และข้อบกพร่องใน อะไรคือวิธีที่ดีที่สุดในการทำให้คนเหล่านั้นผูกพันกับaqสาขา? สร้างสาขาใหม่จากmasterและรวมเข้าด้วยกันaqหรือไม่

2
เหตุใด git จึงทำการผสานการกรอไปข้างหน้าอย่างรวดเร็ว
มาจาก Mercurial ฉันใช้กิ่งไม้เพื่อจัดระเบียบคุณสมบัติ โดยธรรมชาติฉันต้องการเห็นกระบวนการทำงานนี้ในประวัติศาสตร์ของฉันด้วย ฉันเริ่มโครงการใหม่โดยใช้คอมไพล์และทำฟีเจอร์แรกเสร็จ เมื่อทำการรวมคุณสมบัติฉันรู้ว่า git ใช้การกรอไปข้างหน้านั่นคือใช้การเปลี่ยนแปลงของฉันโดยตรงกับสาขาหลักถ้าเป็นไปได้และลืมเกี่ยวกับสาขาของฉัน ดังนั้นการคิดในอนาคต: ฉันเป็นคนเดียวที่ทำงานในโครงการนี้ ถ้าฉันใช้วิธีการเริ่มต้นของ git (การรวมกันอย่างรวดเร็ว) ประวัติของฉันจะส่งผลให้เกิดสาขายักษ์ใหญ่แห่งหนึ่ง ไม่มีใครรู้ว่าฉันใช้สาขาแยกสำหรับทุกฟีเจอร์เพราะในที่สุดฉันก็จะมีเพียงปรมาจารย์ยักษ์นั้น จะไม่ดูไม่เป็นมืออาชีพ? ด้วยเหตุผลนี้ฉันไม่ต้องการรวมการกรอไปข้างหน้าอย่างรวดเร็วและมองไม่เห็นสาเหตุที่เป็นค่าเริ่มต้น มีอะไรดีเกี่ยวกับมัน

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

15
ผสานอัปเดตและดึงกิ่ง Git โดยไม่ต้องใช้การชำระเงิน
ฉันทำงานในโครงการที่มี 2 สาขาคือ A และ B โดยปกติฉันทำงานในสาขา A และรวมสิ่งต่าง ๆ จากสาขา B สำหรับการรวมฉันมักจะทำ: git merge origin/branchB อย่างไรก็ตามฉันต้องการเก็บสำเนา B สาขาในท้องที่ด้วยเนื่องจากฉันอาจตรวจสอบสาขาเป็นครั้งคราวโดยไม่รวมกับสาขา A ของฉันก่อนสำหรับสิ่งนี้ฉันจะทำ: git checkout branchB git pull git checkout branchA มีวิธีการข้างต้นในคำสั่งเดียวและโดยไม่ต้องสลับสาขาไปมา? ฉันควรจะใช้git update-refเพื่อสิ่งนั้นหรือไม่? อย่างไร?

11
โปรดป้อนข้อความการยอมรับเพื่ออธิบายว่าทำไมการผสานนี้จึงเป็นสิ่งจำเป็นโดยเฉพาะอย่างยิ่งหากรวมการอัปสตรีมที่อัปเดตแล้วลงในสาขาหัวข้อ
ฉันกำลังใช้ Git ฉันดึงจาก repo ระยะไกลและได้รับข้อความแสดงข้อผิดพลาด: โปรดป้อนข้อความการยอมรับเพื่ออธิบายว่าทำไมการผสานนี้จึงเป็นสิ่งจำเป็น โดยเฉพาะอย่างยิ่งหากรวมการอัปสตรีมที่อัปเดตแล้วลงในสาขาหัวข้อ ฉันพยายามพิมพ์ข้อความและกดEnterแต่ไม่มีอะไรเกิดขึ้น ฉันจะบอก Git / Terminal ได้อย่างไรฉันพิมพ์ข้อความเสร็จแล้ว? ฉันใช้ Terminal ใน OS X


15
วิธีนำเข้าที่เก็บ Git ที่มีอยู่ไปยังที่อื่น
ฉันมีพื้นที่เก็บข้อมูล Git ในโฟลเดอร์ที่เรียกว่าXXXและฉันมีสอง Git พื้นที่เก็บข้อมูลที่เรียกว่าYYY ฉันต้องการที่จะนำเข้าXXXพื้นที่เก็บข้อมูลลงในYYYพื้นที่เก็บข้อมูลเป็นไดเรกทอรีย่อยชื่อZZZและเพิ่มทุกXXXประวัติการเปลี่ยนแปลง 'เพื่อYYY โครงสร้างโฟลเดอร์ก่อน: ├── XXX │ ├── .git │ └── (project files) └── YYY ├── .git └── (project files) โครงสร้างโฟลเดอร์หลัง: YYY ├── .git <-- This now contains the change history from XXX ├── ZZZ <-- This was originally XXX │ └── (project files) └── (project …
476 git  merge  git-merge 

4
คุณจะใช้กลยุทธ์การรวมคอมไพล์ต่าง ๆ เมื่อใด
จากหน้า man บน git-merge มีหลายวิธีในการผสานที่คุณสามารถใช้ได้ แก้ไข - วิธีนี้สามารถแก้ไขได้เพียงสองหัวเท่านั้น (เช่นสาขาปัจจุบันและสาขาอื่นที่คุณดึงมา) โดยใช้อัลกอริทึมผสาน 3 ทาง มันพยายามตรวจสอบความคลุมเครือของการผสานไขว้อย่างรอบคอบและถือว่าโดยทั่วไปปลอดภัยและรวดเร็ว recursive - วิธีนี้สามารถแก้ปัญหาสองหัวโดยใช้อัลกอริทึมการผสาน 3 ทาง เมื่อมีบรรพบุรุษร่วมกันมากกว่าหนึ่งคนที่สามารถใช้สำหรับการรวมแบบ 3 ทางมันจะสร้างต้นไม้ที่ผสานของบรรพบุรุษร่วมกันและใช้เป็นต้นไม้อ้างอิงสำหรับการผสานแบบ 3 ทาง สิ่งนี้ได้รับการรายงานว่าส่งผลให้เกิดข้อขัดแย้งในการผสานที่น้อยลงโดยไม่ทำให้เกิดการรวมที่ไม่ถูกต้องโดยการทดสอบในการรวมที่เกิดขึ้นจริงจากประวัติการพัฒนาเคอร์เนล Linux 2.6 นอกจากนี้ยังสามารถตรวจจับและจัดการการรวมที่เกี่ยวข้องกับการเปลี่ยนชื่อ นี่คือกลยุทธ์การผสานเริ่มต้นเมื่อดึงหรือรวมสาขาหนึ่ง octopus - วิธีนี้จะช่วยแก้ไขปัญหามากกว่าสองกรณี แต่ปฏิเสธที่จะรวมที่ซับซ้อนที่ต้องการความละเอียดด้วยตนเอง มันมีความหมายหลักที่จะใช้สำหรับการรวมกลุ่มหัวข้อหัวกัน นี่คือกลยุทธ์การผสานเริ่มต้นเมื่อดึงหรือรวมสาขามากกว่าหนึ่งสาขา ของเรา - สิ่งนี้จะช่วยแก้ไขจำนวนหัวใด ๆ แต่ผลของการผสานจะเป็นหัวสาขาปัจจุบันเสมอ มันมีไว้เพื่อใช้ในการแทนที่ประวัติศาสตร์การพัฒนาแบบเก่า ๆ ของกิ่งก้านสาขา subtree - นี่คือกลยุทธ์แบบเรียกซ้ำที่ปรับเปลี่ยน เมื่อผสานต้นไม้ A และ B ถ้า …
429 git  merge  git-merge 

11
ฉันจะดูตัวอย่างการผสานด้วยคอมไพล์ได้อย่างไร
ฉันมีสาขาคอมไพล์ (ตัวอย่างการฉีด) และฉันต้องการรวมในสาขาการพัฒนาอื่น หรือฉัน เพื่อที่จะตัดสินใจว่าฉันต้องการรวมสาขานี้หรือไม่ฉันต้องการดูตัวอย่างของการผสานที่จะทำ ควรมีความสามารถในการดูรายการของการคอมมิทที่ถูกนำไปใช้ เพื่อให้ห่างไกลดีที่สุดที่ฉันสามารถขึ้นมามีแล้วmerge --no-ff --no-commitdiff HEAD
397 git  git-merge 

3
ผสานกับความมุ่งมั่นเฉพาะ
ฉันสร้างสาขาใหม่ชื่อnewbranchจากmasterสาขาในคอมไพล์ ตอนนี้ผมได้ทำการทำงานบางอย่างและต้องการที่จะผสานnewbranchไปmaster; แต่ผมได้ทำการเปลี่ยนแปลงบางอย่างเพื่อเสริมnewbranchและฉันต้องการที่จะรวมถึงที่สี่จากที่ผ่านมามอบให้newbranchmaster ฉันใช้cherry-pickแต่มันแสดงข้อความให้ใช้ตัวเลือกที่เหมาะสม: git checkout master git cherry-pick ^^^^HEAD newbranch ฉันสามารถใช้คอมไพล์mergeเพื่อทำแทนได้หรือไม่? git merge newbranch <commitid>

16
ไฟล์แผนผังการทำงานที่ไม่ได้ติดตามจะถูกเขียนทับโดยการรวม แต่ฉันไม่สนใจ
ที่สาขาของฉันฉันมีไฟล์บางไฟล์ใน. gitignore ในสาขาอื่นไฟล์เหล่านั้นไม่ใช่ ฉันต้องการที่จะรวมสาขาที่แตกต่างกันเข้ากับของฉันและฉันไม่สนใจว่าไฟล์เหล่านั้นจะถูกละเว้นหรือไม่ น่าเสียดายที่ฉันได้รับสิ่งนี้: ไฟล์แผนผังการทำงานที่ไม่ได้ติดตามจะถูกเขียนทับโดยการรวม ฉันจะแก้ไขคำสั่ง pull เพื่อเขียนทับไฟล์เหล่านั้นได้อย่างไรโดยไม่ต้องค้นหาย้ายหรือลบไฟล์เหล่านั้นด้วยตนเอง

10
ฉันจะเสร็จสิ้นการผสานหลังจากแก้ไขข้อขัดแย้งการผสานของฉันได้อย่างไร
ฉันได้อ่านBasic Branching and Mergingของ Git Community Book แล้ว experimentalดังนั้นผมจึงทำตามมันและสร้างสาขาที่หนึ่ง: แล้วฉัน: เปลี่ยนเป็นสาขาทดลอง (ทดลองชำระเงิน git) ทำการเปลี่ยนแปลงมากมาย กระทำมัน (git กระทำ -a) เปลี่ยนเป็นสาขาหลัก (git checkout master) ทำการเปลี่ยนแปลงและกระทำที่นั่น สลับกลับไปยังการทดลอง (ทดลองใช้การชำระเงิน git) การผสานข้อมูลหลักเปลี่ยนเป็นการทดลอง (git merge master) มีความขัดแย้งบางอย่าง แต่หลังจากที่ฉันแก้ไขพวกเขาฉันได้ 'git เพิ่ม myfile' และตอนนี้ฉันติดอยู่ฉันไม่สามารถย้ายกลับไปเป็นอาจารย์ได้ เมื่อฉันทำ $ git checkout master error: Entry 'res/layout/my_item.xml' would be overwritten by merge. Cannot …
282 git  git-merge 

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