ไม่ได้กำหนดค่าสาขาปัจจุบันสำหรับการดึงไม่มีค่าสำหรับการค้นพบ key branch.master.merge ในการกำหนดค่า


163

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามดึงจากที่เก็บระยะไกลโดยใช้ทีม Egit> pull

ไม่ได้กำหนดค่าสาขาปัจจุบันสำหรับการดึงไม่มีค่าสำหรับการค้นพบ key branch.master.merge ในการกำหนดค่า


2
พบปัญหาเดียวกัน แต่ให้ความสำคัญกับค่า remote.origin.url พบวิธีแก้ไขปัญหานี้ในstackoverflow.com/a/10662106/759452
Adrien Be

คำตอบ:


155

สาขาหลักในพื้นที่ของคุณไม่ได้ตั้งค่าให้ติดตามสาขาต้นแบบระยะไกล

คุณสามารถgit pull origin masterบอก git สาขาที่ชัดเจนที่คุณต้องการดึงหรือเพิ่มใน. git / config ของคุณ:

[branch "master"]
  remote = origin
  merge = refs/heads/master

เมื่อคุณกดปุ่มเป็นหลักเป็นครั้งแรกให้เพิ่ม-uสวิตช์ ( git push -u origin master) สิ่งนี้จะตั้งค่าทุกอย่างโดยอัตโนมัติ


25
แต่คุณจะทำเช่นนี้ใน eclipse ได้อย่างไร ฉันเชื่อว่าคำถามถูกติดแท็กเป็น "eclipse" ขอบคุณ! :)
jmort253

2
+1 ขอบคุณ คำตอบของคุณไม่ช่วยเพราะมันจะเปิดออกเราไม่ได้ตั้งขึ้นมาเพื่อดึง :) เมื่อเราคิดวิธีการกำหนดค่าว่าใน Eclipse สิ่งมารวมกัน ตอนนี้เราพบว่า Git ไม่ใช่แค่ความเจ็บปวดที่จะทำงานด้วยเมื่อคุณพันศีรษะตามวิธีการทำงาน โดยทั่วไปเราตรวจสอบที่เก็บอีกครั้งและกำหนดค่าให้ดึง
jmort253

16
@ jmort253 จะดีมากถ้าคุณต้องอัปเดตคำถามด้วยรายละเอียดของสิ่งที่คุณต้องเปลี่ยนใน eclipse เพื่อกำหนดค่านี้
gview

@gview - ขออภัยฉันหยุดใช้ Egit และใช้บรรทัดคำสั่ง เมื่อฉันดึง Eclipse จะทำเครื่องหมายไฟล์ใด ๆ ที่เพื่อนร่วมงานของฉันยอมรับว่าแก้ไขโดยฉันและจะไม่รวมการเปลี่ยนแปลง ดังนั้นฉันใช้บรรทัดคำสั่ง ฉันไม่แนะนำ EGit; อย่างไรก็ตามเพื่อนร่วมงานของฉันที่ใช้ Mac สามารถใช้งานได้ ถ้าฉันพยายามให้โอกาส (สงสัย) อีกครั้งฉันจะอัปเดตคำตอบที่นี่ ค่อนข้างตรงไปตรงมาฉันไม่เห็นว่า hype ทั้งหมดเกี่ยวกับอะไร ฉันพร้อมที่จะย้ายกลับไปยังการโค่นล้ม
jmort253

9
@ jmort253 หลังจากที่ฉันฝากข้อความถึงคุณฉันแหย่ไปรอบ ๆ แล้วคิดว่าวิธีที่ดีที่สุดในการจัดการคือทำสิ่งที่แนะนำในการตอบกลับดั้งเดิม Egit อ่านค่าจาก. git / config ดังนั้นแก้ไขด้วยตัวแก้ไขข้อความตามที่อธิบายไว้เพื่อแก้ไขปัญหา
gview

64

เมื่อปรากฎว่าคำตอบของMichał Szajbe เป็นวิธีแก้ปัญหา คีย์คราสที่สงสัยถูกสร้างขึ้นจาก "ไดเรกทอรีทำงาน" เช่น หากคุณประสบปัญหานี้ให้ค้นหาไดเรกทอรี. git ในไดเรกทอรีการทำงานนั้นและแก้ไขไฟล์. git / config ด้วยโปรแกรมแก้ไขข้อความโดยเพิ่มหัวข้อ Michal นี่คือประสบการณ์ของฉันในการดำเนินงานที่ค่อนข้างเป็นมาตรฐานในทุกวันนี้สำหรับกรณีที่คุณเริ่มต้นคอมไพล์แล้วกดไปยังรีโมตที่ไม่มีการกำหนดค่าเริ่มต้นซึ่งจะสร้างสาขาหลัก ฉันไม่ได้พบวิธีในกรณีที่ไม่ทำการแก้ไขด้วยตนเองเพื่อดึง git แม้มีคอมไพล์บรรทัดคำสั่ง

หลังจากบันทึกการแก้ไขแล้วให้คลิกขวาที่ git repo ในมุมมอง "Git Repositories" ของคุณและเลือกคุณสมบัติตอนนี้คุณจะเห็นส่วนของคีย์นี้ถูกสร้างขึ้น (หรือน่าจะอ่านจากไฟล์ config) และรีโมต หลักสู่การดึง git หลักในท้องถิ่นจะทำงานตามที่คาดไว้ในอนาคต

ป้อนคำอธิบายรูปภาพที่นี่

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

ฉันยังให้การสนับสนุนบางคนในสำนักงานของฉันที่กำลังใช้ Flex และตัวแก้ไข Flexbuilder ซึ่งสร้างขึ้นบน eclipse และ egit คำแนะนำเหล่านี้มีความเกี่ยวข้องเท่ากัน


7
ฉันไม่ได้แก้ไขไฟล์กำหนดค่าโดยตรง แต่เพิ่มคีย์ "branch.master.merge" โดยใช้กล่องโต้ตอบคุณสมบัติที่แสดงด้านบน สิ่งนี้ยังทำงานได้เหมือนชาร์ม
Matthias Wuttke

57

เพื่อแก้ไขปัญหานี้ใน Eclipse เปิดใช้ Windowsเมนูและเลือกแสดงดู / อื่น ๆ / Git Repositories

จากแท็บที่เก็บ Git:

  • ขยายที่เก็บในเครื่องของคุณ
  • คลิกขวาที่รีโมท
  • คลิกที่สร้างระยะไกล ...
  • ชื่อระยะไกล = กำเนิด
  • ถัดจากIRIกดปุ่มChange
  • CTRL+ SPACEบน URI
  • เลือกตำแหน่งระยะไกล
  • กดเสร็จสิ้น
  • กดบันทึกและกด

อีกครั้งจากแท็บที่เก็บ Git:

  • คลิกขวาที่แหล่งกำเนิด
  • เลือกกำหนดค่าการดึงข้อมูล ...
  • บนการจับคู่อ้างอิงกดแก้ไข (ขั้นสูง) ...
  • กดเพิ่มรายละเอียดสาขาทั้งหมด
  • เลือกช่องทำเครื่องหมายForce Update
  • กดเสร็จสิ้น

อีกครั้งจากแท็บที่เก็บ Git:

  • คลิกขวาที่ที่เก็บในเครื่องของคุณ
  • เลือกคุณสมบัติ
  • กดรายการใหม่ ...
  • ป้อนสองคีย์ต่อไปนี้:

(1)

Key = branch.master.remote
Value = origin

(2)

Key = branch.master.merge
Value = refs/heads/master

4
สำหรับฉันนี่คือคำตอบที่ดีที่สุดสำหรับคำถาม
Kashif Nazar

1
คำตอบที่ยอมรับดูเหมือนจะหายไปบางขั้นตอนที่ครอบคลุมที่นี่
FableBlaze

47

สิ่งนี้ใช้ได้กับฉัน:

คลิกขวาที่สาขาในพื้นที่ที่เช็คเอาต์ซึ่งไม่สามารถดึง (ของฉันเรียกว่า "การพัฒนา") เลือก "กำหนดค่าสาขา ... " สำหรับ "สาขาอัปสตรีม:" ฉันเลือก "refs / heads / development" สำหรับ "Remote:" ฉันเลือก "ต้นกำเนิด" ซ้าย "Rebase" ไม่ได้ตรวจสอบ Hit OK

ตอนนี้หน้าต่างปรับแต่งค่าล่วงหน้าของฉันดูเหมือนกับคำตอบของ gview


14
ฉันพบ "กำหนดค่าสาขา ... " หายากมาก ฉันจัดการเพื่อหามันโดยไปที่ "มุมมอง" ที่เก็บ Git "ขยายสาขาท้องถิ่นและจากนั้นคลิกขวาที่สาขา
Edd

18

ฉันยังมีปัญหาในการกำหนดค่า ตอนนี้ใช้งานได้แล้วฉันจะแชร์ไฟล์การกำหนดค่าของฉัน ฉันคิดว่ามันจะช่วย:

[core]
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true

    [branch "master"] 
        remote = origin 
        merge = refs/heads/master 
    [remote "origin"] 
        url = https://github.com/chelder86/ArcadeTongame.git
        fetch = +refs/heads/*:refs/remotes/origin/*

หมายเหตุ: https://github.com/chelder86/ArcadeTongame.gitควรแทนที่ด้วย URL โคลน HTTPS ของคุณเอง


ไฟล์กำหนดค่าการทำงานเป็นสิ่งที่ฉันต้องการดู ขอบคุณ!
Martin Tuskevicius

10

ปัญหาเดียวกัน. นี่คือวิธีที่ฉันแก้ไขภายใน eclipse / egit :

เดิมทีฉันโคลน repo ระยะไกลกับคอมพิวเตอร์ในสำนักงานของฉัน (repo ของฉันเอง แต่อยู่บนเซิร์ฟเวอร์ระยะไกล) จากนั้นฉันสร้างสาขาโครงการ repo ใหม่ในพื้นที่ ("การทดสอบ") และผลักไปที่ที่เก็บระยะไกล โคลน repo ระยะไกลไปยังแล็ปท็อปของฉันสลับไปที่ "การทดสอบ" สาขาทำงานกับมัน ฯลฯ ผลักแล้วกลับมาที่สำนักงาน เมื่อฉันพยายามที่จะดึงการเปลี่ยนแปลง "การทดสอบ" จากเซิร์ฟเวอร์ได้รับ msg "สาขาท้องถิ่นไม่ได้กำหนดค่าสำหรับการดึง"

ปัญหาคือบนเดสก์ท็อป "การทดสอบ" เป็นแบบโลคัลเท่านั้นไม่มีข้อมูล URL ระยะไกลดังนั้นจึงไม่สามารถดึงการเปลี่ยนแปลงได้

ฉันแก้ไขสิ่งนี้ภายใน eclipse (egit)โดย:

  1. ลบสาขาท้องถิ่น
  2. ดึงสาขาจาก repo ระยะไกลเป็นสาขาใหม่

ขั้นตอนคือ:

  • ไปที่ Git Repository มุมมองการสำรวจ
  • เปลี่ยนชื่อสาขาท้องถิ่น "zzz" (หวาดระแวงไม่ชอบลบจนกว่าจะแน่ใจว่าฉันเข้าใจถูกต้อง!)
  • rt-click "Branches", "Switch to", "New Branch"
  • ดึงลงรายการ "แหล่งอ้างอิง" เลือกสาขา "การทดสอบ" (ดึงกลยุทธ์ "รวม", "เลือกสาขาใหม่" เลือก)
  • คลิก "เสร็จสิ้น"
  • เปลี่ยนเป็นมุมมองปกติให้แน่ใจว่าไฟล์ของฉันมีอยู่
  • เปลี่ยนกลับเป็น Git Repository การสำรวจและลบสาขา "zzz"

หมายเหตุ: กำลังเรียกใช้ Eclipse Indigo ขั้นตอนอาจแตกต่างจากรุ่นอื่น


9

ฉันเพิ่งได้รับปัญหาเดียวกัน แต่คำตอบที่ยอมรับไม่ได้สำหรับฉัน นี่คือสิ่งที่ฉันทำ (แม้ว่าฉันจะไม่สามารถยืนยันได้ว่าคำตอบที่ยอมรับมีผลกระทบเมื่อการกำหนดค่าที่ปรับปรุงแล้วยังคงอยู่)

ขยายแผนผังพื้นที่เก็บข้อมูล git ของคุณจากมุมมอง 'Git Repositories'

คลิกขวาที่ 'รีโมท' และเลือก 'สร้างรีโมท'

เลือกปุ่มตัวเลือก 'กำหนดค่าการดึงข้อมูล' -> 'ตกลง'

เลือกกล่องข้อความ 'เปลี่ยน' ตรงข้าม 'URI'

ป้อนรายละเอียดที่เก็บ git ของคุณและคลิก 'เสร็จสิ้น'

เลือก 'บันทึก'

ตอนนี้คุณควรจะสามารถดึงจากที่เก็บระยะไกล

หมายเหตุ - เมื่อฉันลอง 'Dry-Run' ซึ่งฉันคิดว่าเป็นเพียงการทดสอบการเชื่อมต่อมันล้มเหลว แต่แรงดึงยังคงใช้งานได้


ทำงานได้อย่างสมบูรณ์แบบ โซลูชันที่คล้ายกันสำหรับคำถามนี้stackoverflow.com/a/10662106/759452
Adrien Be

3

เกี่ยวกับโซลูชันของ gview:

then find the .git directory in that working directory and edit the .git/config file with a text editor

คุณไม่จำเป็นต้องค้นหาด้วยตนเองหรือเปิดด้วยโปรแกรมแก้ไขข้อความ

  • หน้าต่าง -> แสดงมุมมอง -> อื่น ๆ -> GIT -> ที่เก็บ Git
  • ขยายโฟลเดอร์ repo ที่คุณสร้างขึ้น
  • มันจะมีโฟลเดอร์ชื่อ "Working Directory" ขยาย
  • จะมีโฟลเดอร์อยู่ภายในโฟลเดอร์ "Working Directory" ชื่อ ".git" ขยาย
  • ภายใน ".git" จะมี "config" คลิกขวาที่ "config" -> เปิดในตัวแก้ไข ไฟล์กำหนดค่าจะเปิดทันทีใน Eclipse ซึ่งคุณสามารถแก้ไขได้ ฉันได้เพิ่มสิ่งต่อไปนี้และตอนนี้ฉันสามารถดึงโดยไม่มีข้อผิดพลาด:

[สาขา "ปรมาจารย์"]

remote = origin

ผสาน = refs / heads / master


2

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


2

ลองใช้ windows-> Show View-> Navigator ในหน้าต่างเนวิเกเตอร์ค้นหาโฟลเดอร์ bin ในโครงการของคุณจากนั้นส่งโฟลเดอร์ bin เพื่อ github และหวังว่ามันจะทำงานได้ดี ลองดึงหรือดึงข้อมูลหลังจากทำงานทั้งหมดข้างต้น


2
The current branch is not configured for pull.
No value for key branch.master.merge found in configuration

ทางเลือกสำหรับดึง (หลีกเลี่ยงข้อผิดพลาดด้านบน) คือ:

  1. FETCHเพื่ออัปเดตสาขาระยะไกลบนเครื่องของคุณ
  2. ผสานสาขาท้องถิ่นของคุณกับสาขาที่ห่างไกลของคุณ
    (ทีม -> ผสาน ... -> การติดตามระยะไกล -> กำเนิด / สาขา )

2

มุมมองพื้นที่เก็บข้อมูล git -> + branch -> local -> เลือกสาขาในพื้นที่ที่คุณต้องการกำหนดให้กับรีโมตหนึ่ง -> คลิกขวา -> เลือกรีโมต (อาจเป็นจุดกำเนิด) และสาขาอัปสตรีม


สิ่งนี้ทำใน eclipse โดยไม่มีการแก้ไข "configuration file" ใด ๆ ควรเป็นคำตอบที่ได้รับการยอมรับเนื่องจากเป็นคำถามเฉพาะสำหรับ eclipse
josephus

1

วิธีแก้ปัญหาที่ง่ายที่สุดที่ฉันพบขณะใช้ปลั๊กอิน Eclipse Git มีดังนี้:

  1. คลิกขวาที่โครงการและเลือกทีม> กดสาขา
  2. ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องถัดจาก "กำหนดค่าอัปสตรีมสำหรับการพุชและพูล"
  3. คลิกถัดไปและกดจนจบ

หลังจากเสร็จสิ้นสาขาจะถูกกำหนดค่าอย่างถูกต้องสำหรับการดึงเช่นกัน


1

แก้ไขไฟล์กำหนดค่าในโฟลเดอร์. git ที่เก็บของคุณเช่นนี้

เปลี่ยนhttps://github.com/your/uriเป็นที่เก็บ github ของคุณ

โชคดี.

[core]
    symlinks = false
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = https://github.com/your/uri
    fetch = +refs/heads/*:refs/remotes/origin/*

ps: ใช้ความคิดลืมคราส


0

คุณต้องแทนที่ไฟล์กำหนดค่าด้วยรหัสนี้ .. ไฟล์กำหนดค่าของคุณอยู่ในโฟลเดอร์ 'git' ในที่เก็บของคุณ โฟลเดอร์ 'git' ถูกซ่อนดังนั้นก่อนอื่นคุณต้องแสดงไฟล์ที่ซ่อน เปิดไฟล์ปรับแต่งและเขียนรหัสเหล่านี้: -

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true


hideDotFiles = dotGitOnly
[remote "origin"]
url = 'url to the git repository that you want to pull'
fetch = 

+refs/heads/*:refs/remotes/origin/*
puttykeyfile = 
[branch "master"]
remote = origin
merge = refs/heads/master
[gui]
wmstate = normal


geometry = 887x427+66+66 171 192

0

ฉันได้รับปัญหาเดียวกันใน Eclipse Neon แต่วิธีการแก้ปัญหาไม่ทำงานสำหรับฉัน ฉันได้รับปัญหาเมื่อฉันเปลี่ยนสาขาของโครงการและจากนั้นก็โยนข้อผิดพลาดนี้วิธีแก้ปัญหาที่ฉันลองคือ:

  1. ไปที่โครงการ / .git / configไฟล์
  2. หากrebase = falseให้ลบออก
  3. รีเฟรชโครงการของคุณ
  4. ทำ git pull หรือ pull จาก eclipse
  5. แก้ไขข้อผิดพลาด

PS:มันเป็นเธรดเก่าเพียงแค่อัปเดตเนื่องจากอาจมีคนอื่นเข้ามา


0

ในขณะที่กระทำถ้าคุณประสบปัญหานี้ ลองวิธีง่ายๆนี้:

  1. ทีม -> Push to upstream - ป๊อปอัพเปิดขึ้น
  2. คัดลอก URI ของคุณและวางในป๊อปอัพนั้น

คุณได้รับการกำหนดค่าให้ดึง / ดันสาขา การเปลี่ยนแปลงรหัสของคุณจะถูกผลักไปที่ repositary

ขอบคุณ

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