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

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

6
เหตุใด git-rebase จึงทำให้ฉันมีข้อขัดแย้งในการรวมเมื่อสิ่งที่ฉันทำคือการแบน
เรามีพื้นที่เก็บข้อมูล Git ที่มีการกระทำมากกว่า 400 ครั้งสองสามคู่แรกนั้นมีการทดลองและข้อผิดพลาดมากมาย เราต้องการที่จะทำความสะอาดการกระทำเหล่านี้โดยการบีบลงไปในการกระทำเดียว ตามธรรมชาติแล้วการรีต git-reb ดูเหมือนจะเป็นไป ปัญหาของฉันคือมันจบลงด้วยการรวมความขัดแย้งและความขัดแย้งเหล่านี้ไม่ใช่เรื่องง่ายที่จะแก้ไข ฉันไม่เข้าใจว่าทำไมจึงควรมีข้อขัดแย้งใด ๆ เนื่องจากฉันเพิ่งจะคอมมิชชัน (ไม่ลบหรือจัดเรียงใหม่) เป็นไปได้อย่างมากที่สิ่งนี้แสดงให้เห็นว่าฉันไม่ได้เข้าใจอย่างสมบูรณ์ว่าการทำ git-rebase นั้นทำได้อย่างไร นี่คือสคริปต์ที่ฉันใช้อยู่เวอร์ชันที่แก้ไข: repo_squash.sh (นี่คือสคริปต์ที่ทำงานจริง): rm -rf repo_squash git clone repo repo_squash cd repo_squash/ GIT_EDITOR=../repo_squash_helper.sh git rebase --strategy theirs -i bd6a09a484b8230d0810e6689cf08a24f26f287a repo_squash_helper.sh (สคริปต์นี้ใช้โดย repo_squash.sh เท่านั้น): if grep -q "pick " $1 then # cp $1 …

6
ไม่สามารถผลักดันไปยังสาขาหลังจากรีบูต
เราใช้คอมไพล์และมีสาขาหลักและสาขานักพัฒนาซอฟต์แวร์ ฉันต้องเพิ่มฟีเจอร์ใหม่แล้วจึงทำการ rebit to master จากนั้นพุช master ไปที่เซิร์ฟเวอร์ CI ปัญหาคือว่าถ้าฉันมีข้อขัดแย้งระหว่างการรีบูตฉันไม่สามารถผลักดันไปยังสาขานักพัฒนาซอฟต์แวร์ระยะไกลของฉัน (บน Github) หลังจากการรีบูตเสร็จสมบูรณ์จนกว่าฉันจะดึงสาขาระยะไกลของฉัน ทำให้การกระทำที่ซ้ำกัน เมื่อไม่มีความขัดแย้งทำงานตามที่คาดไว้ คำถาม: หลังจากการรีบูตและการแก้ไขข้อขัดแย้งฉันจะซิงค์สาขานักพัฒนาซอฟต์แวร์ในพื้นที่และระยะไกลได้อย่างไรโดยไม่ต้องสร้างการคอมมิทซ้ำ ติดตั้ง: // master branch is the main branch git checkout master git checkout -b myNewFeature // I will work on this at work and at home git push origin myNewFeature // work work …

2
เหตุใดฉันจึงรวม“ สาขาการติดตามระยะไกล 'ต้นทาง / พัฒนา' เข้ากับการพัฒนา”
ฉันเป็นคนเดียวในองค์กรของฉันที่ทำตามข้อความต่อไปนี้: รวมสาขาการติดตามระยะไกล 'ต้นทาง / พัฒนา' เข้ากับการพัฒนา ไม่แน่ใจว่าฉันทำอะไรเพื่อทำให้พวกเขา แต่ฉันอยากจะหยุด ฉันกำลังออกคำสั่งใดเพื่อสร้างคอมมิตนี้และคำสั่งที่เหมาะสมที่ฉันควรใช้เพื่อไม่ให้เกิดคำสั่งคืออะไร?

5
วิธีใช้ Visual Studio Code เป็นตัวแก้ไขเริ่มต้นสำหรับ Git MergeTool
วันนี้ผมได้พยายามที่จะใช้git mergetoolในคำสั่งของ Windows รวดเร็วและรู้ว่ามันได้รับการผิดนัดที่จะใช้เป็นกลุ่มซึ่งเป็นเย็น แต่ฉันต้องการรหัส VS ฉันจะมีฟังก์ชันVisual Studio Codeเป็น GUI สำหรับจัดการความขัดแย้งในการผสาน (หรือแม้กระทั่งเป็นเครื่องมือที่แตกต่างกัน) สำหรับ Git ได้อย่างไร

3
ยกเลิกการผสาน Git
ฉันกำลังทำโปรเจ็กต์โดยใช้ Git เป็น VCS ฉันได้รับกิ่งไม้xyzจากสาขาหลักของต้นแบบ หลังจากทำงานไประยะหนึ่งฉันก็ยอมรับรหัสของฉันและดึงสายหลักสาขา ดึงได้ดี จากนั้นฉันก็รวมรหัสเข้ากับมาสเตอร์ หลังจากการผสานมีปัญหาในบางไฟล์ ฉันไม่ได้ยืนยันรหัสหลังจากรวมเข้าด้วยกัน มีใครช่วยแนะนำหน่อยได้ไหมว่าฉันจะยกเลิกการรวมนี้และนำสาขาของฉันที่ฉันทำงานอยู่ในปัจจุบันไปอยู่ในสถานะเดิมก่อนที่จะรวมได้อย่างไร
122 git  git-merge 

3
วิธีโต้ตอบ (ทางสายตา) แก้ไขความขัดแย้งใน SourceTree / git
ฉันใช้ (Windows) SourceTree สำหรับโครงการคอมไพล์ของฉัน ฉันสามารถทำได้ใน command prompt หรือ Linux terminal แต่ฉันสงสัยว่ามีวิธีที่ดีในการแก้ปัญหาความขัดแย้งในเชิงโต้ตอบและทางสายตาหรือไม่ ตัวอย่างเช่นหากการดึงตรวจพบความขัดแย้งให้เปิดเครื่องมือความขัดแย้งที่ใช้ GUI ขึ้นมา (เช่น P4Merge) เป็นไปได้ไหม? ฉันมักจะแก้ปัญหาความขัดแย้งด้วยตนเองซึ่งเป็นเรื่องที่เจ็บปวด ตัวอย่างเช่นpullข้อความคอมไพล์จาก SourceTree git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master From W:\repo\ * branch master -> FETCH_HEAD Updating 33c07bf..41e0249 error: Your local changes to the following files would be overwritten by …

8
จะดึงไฟล์เดียวจากที่เก็บเซิร์ฟเวอร์ใน Git ได้อย่างไร
ฉันกำลังทำงานบนไซต์ที่มีเซิร์ฟเวอร์ที่ใช้ Git ฉันใช้ Git สำหรับการปรับใช้ (ไม่ใช่ GitHub) สิ่งนี้ถูกตั้งค่าก่อนที่ฉันจะมีส่วนร่วมโดยใช้เมธอด hookและฉันอ้างถึงคำถามนี้และป้อนคำสั่งด้านล่าง แต่มันไม่ได้ผล ฉันจะดึงไฟล์เดียวจากเซิร์ฟเวอร์ได้อย่างไร ตัวอย่างเช่นหากฉันต้องการอัปเดตไฟล์ในเครื่องของฉัน index.php? git pull index.phpเหรอ?

5
ฉันจะ 'git fetch' และ 'git merge' จาก Remote Tracking Branch ได้อย่างไร (เช่น 'git pull')
ฉันได้ตั้งค่าสาขาการติดตามระยะไกลในคอมไพล์แล้ว แต่ดูเหมือนว่าฉันจะไม่สามารถรวมสาขาเหล่านี้เข้ากับสาขาท้องถิ่นได้เลยเมื่อฉันอัปเดตด้วย 'git fetch' ตัวอย่างเช่นสมมติว่าฉันมีสาขาระยะไกลชื่อ 'an-other-branch' ฉันตั้งค่าในเครื่องเป็นสาขาติดตามโดยใช้ git branch --track an-other-branch origin/an-other-branch จนถึงตอนนี้ดีมาก แต่ถ้าสาขานั้นได้รับการอัปเดต (โดยปกติฉันจะย้ายเครื่องและรับจากเครื่องนั้น) และฉันต้องการอัปเดตบนเครื่องเดิมฉันกำลังประสบปัญหาในการดึง / ผสาน: git fetch origin an-other-branch git merge origin/an-other-branch เมื่อใดก็ตามที่ฉันทำเช่นนี้ฉันจะได้รับข้อความ "เป็นข้อมูลล่าสุดแล้ว" และไม่มีการผสาน อย่างไรก็ตามก git pull origin an-other-branch อัปเดตเสมออย่างที่คุณคาดหวัง นอกจากนี้การเรียกใช้ git diff git diff origin/an-other-branch แสดงให้เห็นว่ามีความแตกต่างดังนั้นฉันคิดว่าฉันมีไวยากรณ์ผิด ผมทำอะไรผิดหรือเปล่า? แก้ไข [2010-04-09]:ฉันตรวจสอบสองสามครั้งแล้วและฉันไม่ได้อยู่สาขาอื่นแน่นอน 'git fetch' ของฉันควรตามด้วย 'git merge' (ตามที่แสดงด้านบน) …

5
Git ผสานเครื่องหมาย HEAD ด้านซ้ายในไฟล์ของฉัน
ฉันพยายามรวมไฟล์ในบรรทัดคำสั่งโดยใช้ Git เมื่อข้อความแสดงข้อผิดพลาดปรากฏขึ้นแจ้งว่าการผสานถูกยกเลิก ฉันคิดว่านั่นคือจุดจบของมัน แต่แล้วฉันก็รู้ว่ามี gitmarks ในไฟล์ของฉัน ชอบมาก: start = expression validchar = [0-9a-zA-Z_?!+\-=@#$%^&*/.] integer = <<<<<<< HEAD digits:[0-9]+ { return digits.join(""); } ======= sign:"-"* digits:[0-9]+ { return sign + digits.join(""); } >>>>>>> gh-pages ไฟล์ไม่ได้ถูกแก้ไขโดยฉันและแสดงบรรทัดที่แทรกด้วย: HEAD หลังเครื่องหมายน้อยกว่า ( <<<<<<< HEAD) บรรทัดของรหัสที่เปลี่ยนแปลง สตริงของเครื่องหมายเท่ากับ ( =======) เวอร์ชันใหม่ของรหัส อีกบรรทัดที่ขึ้นต้นด้วยมากกว่าเครื่องหมายและชื่อของสาขา ( >>>>>>> gh-pages) สิ่งที่แย่กว่านั้นคือเนื้อหาของไฟล์ไม่อยู่ในลำดับอีกต่อไป …

3
ฉันจะบอก git ให้เลือกเวอร์ชันภายในเครื่องของฉันเสมอสำหรับการผสานที่ขัดแย้งในไฟล์ใดไฟล์หนึ่งได้อย่างไร
สมมติว่าฉันกำลังทำงานร่วมกับใครบางคนผ่านที่เก็บ git และมีไฟล์เฉพาะที่ฉันไม่ต้องการยอมรับการเปลี่ยนแปลงใด ๆ จากภายนอก มีวิธีใดบ้างที่ฉันจะตั้งค่า repo ในพื้นที่เพื่อไม่บ่นเกี่ยวกับการรวมที่ขัดแย้งกันทุกครั้งที่ฉันคอมไพล์ดึง ฉันต้องการเลือกเวอร์ชันท้องถิ่นของฉันเสมอเมื่อรวมไฟล์นี้
101 git  git-merge 

4
git ลบการผสานรวมออกจากประวัติ
ประวัติ Git ของฉันมีลักษณะดังนี้: ฉันต้องการที่จะสควอชสีม่วงเป็นหนึ่งเดียว ฉันไม่ต้องการเห็นพวกเขาอีกแล้วในบันทึกการกระทำของฉัน ฉันพยายามทำ a git rebase -i 1แล้ว แต่ถึงแม้ว่าจะ1อยู่บนกิ่งไม้สีน้ำเงิน (ภาพเปรียบเทียบ) ฉันก็ยังเห็นทุกข้อตกลงในสาขาสีม่วงของฉัน ฉันจะลบสาขาสีม่วงทั้งหมด (จากบันทึกการคอมมิต) ได้อย่างไร

8
วิธีตั้งค่า Meld เป็น git mergetool
ฉันได้ตั้งค่า: git config --global merge.tool meld git config --global mergetool.meld.path c:/Progra~2/meld/bin/ บน "git mergetool" มันเขียนว่า: Hit return to start merge resolution tool (meld): The merge tool meld is not available as 'c:/Progra~2/meld/bin/' ฉันได้ลองแล้ว: / c / Progra ~ 2 / meld / bin / "/ c / ไฟล์โปรแกรม (x86) / …
98 git-merge  meld 

3
Git เลิกทำการรวมความพยายาม
ฉันมีไดเร็กทอรีการทำงาน (# 1) ซึ่งมีไดเร็กทอรีผู้ขาย (# 2) อยู่ในนั้น มีการพึ่งพาอย่างหนึ่งที่ฉันต้องการดึงด้วยตนเองโดยไม่ใช้ผู้แต่ง (เวอร์ชัน php ของ npm / gem) ฉันทำงานใน # 1 ยังไม่ได้บันทึก / ยอมรับการเปลี่ยนแปลงเมื่อฉันตัดสินใจว่าต้องการอัปเดตห้องสมุดใน # 2 ฉันไปที่ vendor / myname และทำ git pull repository น่าเสียดายที่มันเริ่มดึงและรวมเป็น # 1 แทนที่จะสร้างไดเรกทอรีใหม่ในโฟลเดอร์ผู้ขาย ตอนนี้ฉันมี: # 1 โฟลเดอร์ที่มีการเปลี่ยนแปลงของฉัน # 1 โฟลเดอร์ที่มีไฟล์ที่ฉันไม่ต้องการจากที่เก็บที่ไม่ถูกต้อง # 1 ผสานความขัดแย้งเช่น composer.json, Readme.md ... (ไฟล์ทั่วไป) ฉันต้องการ "เลิกทำ" …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.