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

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

5
ค้นหาสาขา Git ที่ยังไม่ได้ขุด?
ฉันมีพื้นที่เก็บข้อมูล Git ที่มีสาขาจำนวนมากบางแห่งรวมอยู่แล้วและบางสาขาไม่ได้ เนื่องจากจำนวนสาขามีขนาดค่อนข้างใหญ่ฉันจะทราบได้อย่างไรว่าสาขาใดที่ยังไม่ได้รวมเข้าด้วยกัน ฉันต้องการหลีกเลี่ยงไม่ให้ทำการรวม "octopus" และการรวมสาขาใหม่ที่รวมเข้าด้วยกันแล้ว

5
ข้อผิดพลาดการรวมคอมไพล์
ฉันมีสาขาคอมไพล์ที่เรียกว่า9-sign-in-outมีรหัสการทำงานที่สมบูรณ์แบบและฉันต้องการที่จะกลายเป็นเจ้านาย ขณะนี้ฉันอยู่ในสาขาหลัก $ git branch 9-sign-in-out * master ฉันกำลังพยายามเปลี่ยนเป็น9-sign-in-outสาขา แต่ไม่อนุญาตให้: $ git checkout 9-sign-in-out app/helpers/application_helper.rb: needs merge config/routes.rb: needs merge error: you need to resolve your current index first ความคิดใดที่ฉันจะเพิกเฉยต่อข้อผิดพลาดของสาขาหลักทั้งหมดและเปลี่ยนเป็น9-sign-in-outสาขาหลักได้ บางทีคอมไพล์rebase ? แต่ฉันไม่ต้องการที่จะสูญเสียรหัสใน9-sign-in-outสาขา

8
ทำการผสานการคืนค่าใน Git อีกครั้ง
ฉันพบปัญหาเล็กน้อยที่นี่: ฉันมีสาขาเฉพาะปัญหา28sใน Git ที่ฉันรวมอยู่ในdevelopสาขาทั่วไป ปรากฎว่าฉันทำมันเร็วเกินไปดังนั้นฉันจึงใช้ git-revert เพื่อเลิกทำการผสาน อย่างไรก็ตามถึงเวลาแล้วที่จะรวม28sเข้าdevelopด้วยกัน แต่คำสั่ง git-merge จะเห็นการผสานดั้งเดิมและประกาศอย่างมีความสุขว่าทุกอย่างเป็นไปด้วยดีและมีการรวมสาขาเข้าด้วยกันแล้ว ฉันทำอะไรตอนนี้? สร้าง 'เปลี่ยนกลับ "เปลี่ยนกลับ" 28s -> พัฒนา ""' กระทำหรือไม่ ดูเหมือนจะไม่ใช่วิธีที่ดีที่จะทำ แต่ฉันไม่สามารถจินตนาการได้ในขณะนี้ โครงสร้างต้นไม้มีลักษณะอย่างไร:

7
Git: กำหนดค่า KDiff3 เป็นเครื่องมือผสานและเครื่องมือ diff อย่างไร
เมื่อเร็ว ๆ นี้ฉันใช้ GitExtension 2.46 แต่รุ่น Git ที่มีเหมือนกันคือ 1.9.4.msysgit.2 ยินดีที่จะใช้คำสั่งเพียง Git ผมถอนการติดตั้ง GitExtension และติดตั้งรุ่นล่าสุดที่มีอยู่ของGitและKDiff3 เมื่อฉันทำการผสานและมีข้อขัดแย้งฉันเรียกใช้คำสั่งต่อไปนี้: $ git mergetool จากนั้นฉันได้รับข้อความ: เครื่องมือการผสาน kdiff3 ไม่สามารถใช้งานเป็น 'kdiff3' ฉันคิดว่ามันจะต้องเป็นไปตามเส้นทาง KDiff3 สิ่งแวดล้อม ระบบปฏิบัติการ: Windows 10 Git 2.6.1.windows.1 KDiff3 0.9.98 (64 บิต) คำถาม: ฉันจะต้องกำหนดค่าอะไรในไฟล์. gitconfig เพื่อให้คำสั่ง$ git mergetoolเปิด KDiff3 GUI ด้วยเวอร์ชันLOCAL , REMOTE , BASEและMERGEDของไฟล์ที่ขัดแย้งกัน วิธีกำหนดค่าให้ใช้งานมี diff-tool …

3
ฉันจะแก้ไขข้อขัดแย้งในการรวมเนื่องจากการลบไฟล์ในสาขาได้อย่างไร
ฉันได้สร้างdialogสาขาและเมื่อฉันพยายามที่จะรวมmasterสาขา มี 2 ​​ข้อขัดแย้ง CONFLICT (delete/modify)ผมไม่ทราบว่าจะแก้ปัญหาอย่างไร คุณช่วยบอกฉันทีว่าจะทำอย่างไร $ git checkout master $ git merge dialog CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree. Auto-merging src/com/DialogAdapter.java CONFLICT (content): Merge conflict in src/DialogAdapter.java Automatic merge failed; fix conflicts and then commit the result. …

2
คอมไพล์ผสานหลังจากเชอร์รี่เลือกทำงานอย่างไร
ลองจินตนาการว่าเรามีmasterสาขา จากนั้นเราสร้าง newbranch git checkout -b newbranch และสร้างใหม่สองคอมมิตถึงnewbranch: commit1และcommit2 จากนั้นเราเปลี่ยนเป็นต้นแบบและทำ cherry-pick git checkout master git cherry-pick hash_of_commit1 เมื่อมองgitkดูเราจะเห็นว่าcommit1และเวอร์ชั่นที่เลือกโดยเชอร์รี่นั้นมีแฮชที่แตกต่างกันดังนั้นในทางเทคนิคแล้วพวกมันต่างกันสองคอมมิชชัน ในที่สุดเราก็รวมnewbranchเป็นmaster: git merge newbranch และดูว่าทั้งสองการกระทำที่มีแฮชต่างกันถูกรวมเข้าด้วยกันโดยไม่มีปัญหาถึงแม้ว่าพวกเขาบอกเป็นนัยว่าควรใช้การเปลี่ยนแปลงเดียวกันสองครั้งดังนั้นหนึ่งในนั้นจึงควรล้มเหลว Git ทำการวิเคราะห์เนื้อหาของคอมมิชชันอย่างชาญฉลาดในขณะที่ผสานและตัดสินใจว่าไม่ควรใช้การเปลี่ยนแปลงสองครั้งหรือคอมมิชชันเหล่านี้มีการทำเครื่องหมายภายในเป็นการเชื่อมโยงเข้าด้วยกัน?

2
รีสตาร์ท / เลิกทำการแก้ไขข้อขัดแย้งในไฟล์เดียว
ในการคอมไพล์ขนาดใหญ่ที่มีไฟล์ที่ขัดแย้งกันหลายไฟล์ฉันทำเครื่องหมายไฟล์ว่าแก้ไขไม่ถูกต้อง (ใช้git add FILEหลังจากแก้ไขบางส่วน) ตอนนี้ฉันต้องการยกเลิกการพยายามแก้ไขข้อขัดแย้งและเริ่มแก้ไขไฟล์นั้นใหม่ ฉันจะทำสิ่งนั้นได้อย่างไร
189 git  git-merge 

8
git stash -> ผสานการเปลี่ยนแปลงที่เก็บไว้กับการเปลี่ยนแปลงปัจจุบัน
ฉันทำการเปลี่ยนแปลงสาขาของฉันและรู้ว่าฉันลืมฉันได้ทำการเปลี่ยนแปลงที่จำเป็นอื่น ๆ กับสาขาดังกล่าว สิ่งที่ฉันต้องการคือวิธีผสานการเปลี่ยนแปลงที่ถูกจัดเก็บกับการเปลี่ยนแปลงปัจจุบัน มีวิธีทำเช่นนี้หรือไม่? ในที่สุดมันก็เพื่อความสะดวกในที่สุดฉันก็ยอมแพ้และมุ่งมั่นที่จะทำการเปลี่ยนแปลงในครั้งแรกของฉันจากนั้นการเปลี่ยนแปลงที่ทำไปแล้ว
187 git  git-merge  git-stash 

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

8
วิธีผสานไฟล์ที่ต้องการจากกิ่ง Git
ฉันมี 2 git branch branch1 และ branch2 และฉันต้องการรวม file.py ใน branch2 เข้ากับ file.py ใน branch1 และเฉพาะไฟล์นั้น ในสาระสำคัญฉันต้องการทำงานกับ file.py ใน branch1 แต่ต้องการใช้ประโยชน์จากคำสั่ง merge วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?
179 git  git-merge 

5
เป็นไปได้หรือไม่ที่จะดึงไฟล์หนึ่งไฟล์ใน Git?
ฉันกำลังทำงานในสาขา Git ที่มีการทดสอบที่ไม่สมบูรณ์และฉันต้องการดึง (รวมการเปลี่ยนแปลงไม่ใช่แค่เขียนทับ) การทดสอบเหล่านี้จากสาขาอื่นที่พวกเขาได้รับการแก้ไขแล้ว ฉันรู้ว่าฉันสามารถทำ git pull origin that_other_branch แต่สิ่งนี้จะพยายามรวมไฟล์อื่น ๆ จำนวนมากเนื่องจากฉันยังไม่พร้อม เป็นไปได้ที่จะดึงและรวมเฉพาะไฟล์ที่ระบุ (ไม่ใช่ทุกอย่าง) จากสาขาอื่นหรือไม่? นี่ไม่ใช่การดึงคำขอ Git ที่ซ้ำกันเพียงไฟล์เดียวเนื่องจากคำตอบทั้งหมดสำหรับคำถามนั้นเป็นวิธีการแปลงไฟล์ที่ถูกเปลี่ยนภายในเครื่องกลับไปเป็นเวอร์ชันที่เก็บข้อมูลโดยไม่ต้องเปลี่ยนสาขาใด ๆ

8
ไฟล์ git เวอร์ชันใดที่จะใช้ในที่สุด: LOCAL, BASE หรือ REMOTE
เมื่อมีการโคในช่วงgit mergeที่ผมเปิด mergetool ที่เรียกว่าMeld มันเปิดสามไฟล์ LOCAL, BASE และ REMOTE ขณะที่ฉันอ่าน LOCAL เป็นสาขาในพื้นที่ของฉัน BASE เป็นบรรพบุรุษร่วมกันและ REMOTE เป็นสาขาที่จะรวมเข้าด้วยกัน ทีนี้คำถามของฉัน: ในที่สุดไฟล์เวอร์ชันไหนจะถูกใช้ในที่สุด? มันคือระยะไกล? ถ้าเป็นเช่นนั้นฉันสามารถแก้ไขได้ตามที่ต้องการไม่ว่าจะเป็นสาขาใดใน BASE
174 git  git-merge  meld 

7
ข้อผิดพลาดในการรวมของ GIT“ ไม่สามารถกระทำได้เพราะคุณมีไฟล์ที่ไม่ได้รวมอยู่”
ดังนั้นฉันลืมที่จะดึงรหัสของฉันก่อนที่จะแก้ไขมันและเมื่อฉันมุ่งมั่นที่รหัสใหม่และพยายามที่จะผลักดันฉันได้รับข้อผิดพลาดในการผลักดันเป็นไปไม่ได้ ณ จุดนั้นฉันได้ "ดึง git" ซึ่งทำให้บางไฟล์ ฉันนำข้อขัดแย้งออก แต่ฉันไม่รู้จะทำอย่างไรจากที่นี่ .. ฉันพยายามgit commitอีกครั้ง แต่มันบอกว่า "ไม่สามารถกระทำได้เพราะคุณมีไฟล์ที่ไม่ได้ถูกแยก"
172 git  git-merge 

3
ฉันจะใช้ vimdiff เพื่อแก้ไขข้อขัดแย้ง git merge ได้อย่างไร
ฉันเพิ่งรวมสาขากับเจ้านายของฉันและฉันได้Automatic merge failed; fix conflicts and then commit the result.ตอนนี้ฉันวิ่งgit mergetoolและ vimdiff เปิดด้วยภาพด้านล่าง ฉันไม่รู้วิธีใช้ vimdiff แต่ละแผงที่นี่หมายถึงอะไรและฉันควรดำเนินการอย่างไรเพื่อแก้ไขข้อขัดแย้งในการผสาน

5
ฉันจะรวมแท็ก git เข้ากับสาขาได้อย่างไร
ฉันพยายามค้นหาไวยากรณ์สำหรับการรวมการคอมมิตที่ติดแท็กเข้ากับสาขาอื่น ฉันเดาว่ามันตรงไปตรงมา แต่ความพยายามในการค้นหาที่อ่อนแอของฉันไม่พบ
155 git-merge  git-tag 

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