git pull ล้มเหลว“ ไม่สามารถแก้ไขการอ้างอิง”“ ไม่สามารถอัปเดตการอ้างอิงในพื้นที่”


606

ใช้ git 1.6.4.2 เมื่อฉันพยายามgit pullฉันได้รับข้อผิดพลาดนี้:

error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
 ! [new branch]      LT558-optimize-sql -> origin/LT558-optimize-sql  (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
 ! [new branch]      split-css  -> origin/split-css  (unable to update local ref)

ฉันพยายามgit remote prune originแล้ว แต่ก็ไม่ได้ช่วยอะไร


คำตอบ:


929

ลองทำความสะอาดพื้นที่เก็บข้อมูลในเครื่องของคุณด้วย:

$ git gc --prune=now
$ git remote prune origin

ผู้ชาย git-gc (1):

git-gc - Cleanup unnecessary files and optimize the local repository

git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]

       Runs a number of housekeeping tasks within the current repository, such as compressing file revisions
       (to reduce disk space and increase performance) and removing unreachable objects which may have been
       created from prior invocations of git add.

       Users are encouraged to run this task on a regular basis within each repository to maintain good disk
       space utilization and good operating performance.

ผู้ชาย git-remote (1):

git-remote - manage set of tracked repositories

git remote prune [-n | --dry-run] <name>

           Deletes all stale remote-tracking branches under <name>. These stale branches have already been
           removed from the remote repository referenced by <name>, but are still locally available in
           "remotes/<name>".            

96
ทำไมจึงใช้งานได้ ปัญหาที่แก้ไขนั้นคืออะไร
Ikke

5
คำสั่งที่สองทำงานให้ฉัน เห็นได้ชัดว่าฉันมีการอ้างอิงที่ขาดไปยังสาขาระยะไกลที่เพิ่งสร้างขึ้น ไม่แน่ใจว่ามันเกิดขึ้นได้อย่างไร แต่ก็ดีใจที่มันเป็นวิธีแก้ไขง่ายๆ ขอบคุณ Vitek!
JGTaylor

1
มันทำงานได้อย่างสมบูรณ์แบบ! ฉันชอบที่จะอธิบายว่าสิ่งนี้ทำอะไรและเหตุใดจึงใช้งานได้ ขอบคุณ!
ArielSD

4
จะgit remote prune originสั่งทำงานบนสำเนาการทำงานของท้องถิ่นหรือพื้นที่เก็บข้อมูลระยะไกล?
user1438038

3
@ user1438038 ไม่ควรลบสาขาใด ๆ และอัปเดตการอ้างอิงระยะไกลในสำเนาการทำงานในท้องถิ่นของคุณเท่านั้น ข้อมูลเพิ่มเติมที่นี่: stackoverflow.com/questions/20106712/…
Zengineer

606

เกิดขึ้นกับฉันเช่นกัน ในกรณีของฉันอ้างอิงไม่ดีเป็นหลักและฉันทำสิ่งต่อไปนี้:

rm .git/refs/remotes/origin/master
git fetch

สิ่งนี้ทำให้คอมไพล์กู้คืนไฟล์อ้างอิง หลังจากนั้นทุกอย่างก็ทำงานได้ตามปกติอีกครั้ง


1
ฉันทำสิ่งเดียวกันและแก้ไขปัญหาของฉัน เมื่อฉันเปิดไฟล์ใน Notepad ++ มันเสียหายอย่างชัดเจน
theMayer

83
ตรวจสอบให้แน่ใจว่าคุณเลือกไฟล์ที่ให้ปัญหากับคุณแทนที่จะเป็นเจ้านาย
bia.migueis

6
@ bia.migueis: มันจะไม่สร้างความเสียหาย แต่อย่างใดหากคุณลบต้นแบบออกไปด้วยเช่นกัน - มันจะได้รับการอัพเดทครั้งต่อไปด้วย
naught101

2
หากเป็น submodule อาจเป็นเรื่องยากเล็กน้อยในการค้นหาการอ้างอิง ขั้นแรกให้ตรวจสอบว่า.gitเป็นโฟลเดอร์ls -laหรือไม่หากไม่เห็นให้ดูเนื้อหาของ.gitไฟล์เพื่อค้นหาโฟลเดอร์. git ที่แท้จริงที่อ้างอิงอยู่ .gitเนื้อหาไฟล์ในกรณีของฉัน: gitdir: ../.git/modules/my-submodule-name
CCoder

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

131

นี่เป็นงานสำหรับฉัน:

git gc --prune=now

5
สิ่งนี้ใช้ได้ผล ขอบคุณสำหรับการบันทึกวันของฉัน! @Bernd คำอธิบายใด ๆ ที่เป็นไปได้ของคำสั่งหรือไม่
nashcheez

git gc docs อยู่ที่นี่
BigRon

1
ทำงานให้ฉันด้วย ไม่จำเป็นต้องวิ่งgit remote prune origin
Airwavezx

87

.git/refs/remotes/origin/สำหรับผมมันทำงานเพื่อลบไฟล์ที่มีการขว้างปาข้อผิดพลาดจากโฟลเดอร์


นั่นมัน! แต่คุณรู้หรือไม่ว่าทำไมความผิดพลาดนี้จึงเกิดขึ้น? (ทุกอย่างทำงานได้ดีแล้ววันหนึ่งข้อผิดพลาดนี้ก็เกิดขึ้น) และคุณรู้หรือไม่ว่าการลบไฟล์นั้นแก้ไขได้อย่างไร?
Shreyans

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

ใช้งานได้ดีมาก! โปรดสังเกตว่าคุณต้องลบไฟล์ทั้งหมดที่ก่อให้เกิดปัญหา (ตามรายงานข้อผิดพลาดที่คุณได้รับ) ราวกับว่าคุณลบเพียงไฟล์เดียวและลองดึงไฟล์นั้นจะกลับมา
Rayee Roded

1
หนึ่งในสาเหตุที่เป็นไปได้อาจจะเป็นความผิดพลาดของระบบตามที่ผมอธิบายไว้ในคำตอบของฉัน แอปพลิเคชั่น Git GUI จำนวนมากรัน Git เป็นระยะบน repo ของคุณ (เพื่อรีเฟรชสถานะ) และหากระบบของคุณล่มระหว่าง Git กำลังจัดการกับการอ้างอิงพวกเขาอาจจะเขียนทับด้วยNULLs
David Ferenczy Rogožan

53

ลองมัน:

git gc --prune=now

git remote prune origin

git pull

26
แม้ว่าสิ่งนี้อาจตอบคำถามของผู้เขียน แต่ก็ไม่มีคำอธิบายและ / หรือลิงก์ไปยังเอกสารประกอบ ข้อมูลโค้ดดิบนั้นไม่ค่อยมีประโยชน์หากไม่มีวลีอยู่รอบตัว คุณอาจพบว่าวิธีเขียนคำตอบที่ดีมีประโยชน์มาก โปรดแก้ไขคำตอบของคุณ
Roy Scheffers

ตรงประเด็น มันไม่เพียงพอที่จะทำให้ถูกต้องและนั่นคือรหัส ฉันหวังว่าจะมีคำอธิบาย
Musikero31

1
git gc --prune = ตอนนี้อัปเดตที่เก็บในเครื่องในขณะที่ลบไฟล์ที่ไม่จำเป็น มันทำงานได้ดีสำหรับฉัน
Vasyl Gutnyk

44

ดำเนินการคำสั่งต่อไปนี้:

rm .git/refs/remotes/origin/master

git fetch

git branch --set-upstream-to=origin/master

ในกรณีที่ถ้าคุณต้องการที่จะรู้ว่าสิ่งที่ .git/refs/remotes/origin/masterคุณจะอ่านรีโมทส่วนในGit อ้างอิง


1
คุณช่วยอธิบายว่า. git / refs / remotes / origin / branchName คืออะไรได้ไหม วิธีนี้ใช้ได้ผลสำหรับฉัน
caitcoo0odes

44

ฉันแค่อยากจะเพิ่มว่ามันอาจเกิดขึ้นได้อย่างไรว่าการอ้างอิงแบ่ง

สาเหตุที่เป็นไปได้

ในระบบของฉัน (Windows 7 64- บิต) เมื่อมีBSODเกิดขึ้นไฟล์อ้างอิงบางส่วนที่เก็บไว้ (น่าจะเป็นที่เปิด / เขียนในปัจจุบันเมื่อ BSOD เกิดขึ้น) ถูกเขียนทับด้วยNULLอักขระ (ASCII 0)

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

ตัวอย่าง

ข้อผิดพลาด: cannot lock ref 'refs/remotes/origin/some/branch': unable to resolve reference 'refs/remotes/origin/some/branch': reference broken

วิธีแก้ไข:ลบไฟล์%repo_root%/.git/refs/remotes/origin/some/branch


1
สถานการณ์เดียวกันใน Windows 10 64 บิต - ทำงานใน repo คอมไพล์เมื่อ BSOD เกิดขึ้น error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken. พยายามที่จะหลังจากลบไฟล์แรกกลับgit pull fatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/master': reference brokenหลังจากลบไฟล์ที่สองgit pull origin masterได้สำเร็จ
cjmcdonn

39

ฉันมีปัญหาเดียวกันนี้และแก้ไขได้โดยไปที่ไฟล์ที่เกิดข้อผิดพลาด:

\repo\.git\refs\remotes\origin\master

ไฟล์นี้เต็มไปด้วยค่า Null ฉันแทนที่มันด้วยอ้างอิงล่าสุดจาก Github


2
มีปัญหาเดียวกัน แต่ไฟล์.git/refs/remotes/origin/masterนั้นว่างเปล่า แก้ไขปัญหาโดยลบมัน
zinovyev

38

.gitในกรณีของปัญหาถูกแก้ไขหลังจากที่ผมได้ลบไฟล์ทั้งหมดที่อ้างอิงลบภายใต้ไดเรกทอรี

ถ้าคุณดูข้อความมันจะบอกคุณว่าไฟล์ใดที่คุณต้องลบ (โดยเฉพาะ)

.git/refs/remotesไฟล์ที่จะนั่งลบภายใต้

ฉันเพิ่งลบไฟล์ทั้งหมดที่นั่นและวิ่งตัด gc

git gc --prune=now

หลังจากนั้นทุกอย่างทำงานได้ดี


ในกรณีของฉันฉันเพิ่งลบ. git / refs / remotes แล้วอัปเดตและผลักเซิร์ฟเวอร์และมันทำงาน
Faraz Ahmed

ขอบคุณ Uri ในกรณีของฉันฉันเพิ่งลบไฟล์ภายใต้ refs / remotes / origin / feature และฉันก็ทำ - git pull
Deepboy

26

คำอธิบาย : ดูเหมือนว่าสาขา repo ระยะไกลของคุณ (ใน Github / bitbucket) ถูกลบออกแม้ว่าการอ้างอิงในท้องถิ่นของคุณจะไม่ได้รับการปรับปรุงและชี้ไปยังการอ้างอิงที่ไม่มีอยู่

เพื่อแก้ไขปัญหานี้:

git fetch --prune
git fetch --all
git pull

สำหรับการอ่านเพิ่มเติม - อ้างอิงจากเอกสาร Github :

git-fetch - ดาวน์โหลดวัตถุและอ้างอิงจากพื้นที่เก็บข้อมูลอื่น

- เรียกการรีโมททั้งหมด

--prune หลังจากดึงเอาสาขาการติดตามระยะไกลใด ๆ ที่ไม่มีอยู่ในระยะไกล


1
สิ่งนี้ใช้ได้กับฉัน
Onengiye Richard

1
ขอบคุณมันใช้งานได้สำหรับฉัน
แซม

17

git fetch --prune แก้ไขข้อผิดพลาดนี้ให้ฉัน:

[marc.zych@marc-desktop] - [~/code/driving] - [Wed May 10, 02:58:25]
[I]> git fetch
error: cannot lock ref 'refs/remotes/origin/user/janek/integration/20170505': 'refs/remotes/origin/user/janek/integration' exists; cannot create 'refs/remotes/origin/user/janek/integration/20170505'
From github.com:zooxco/driving
 ! [new branch]            user/janek/integration/20170505 -> origin/user/janek/integration/20170505  (unable to update local ref)
From github.com:zooxco/driving
[marc.zych@marc-desktop] - [~/code/driving] - [Wed May 10, 02:58:30]
[I]> git fetch --prune
 - [deleted]               (none)     -> origin/user/janek/integration

สิ่งนี้จะถือว่าสาขาที่กระทำผิดนั้นถูกลบบนรีโมต


ตัวอย่างของคุณดูเหมือนไม่สมบูรณ์: ไม่แสดง--pruneว่าฉันเห็น proTip ด้วย: ลบรหัสผ่านที่ไม่มีประโยชน์ออกหลังจากวางตัวอย่าง
MarkHu

คุณพูดถูกจริง - ฉันปล่อยออกจากคำสั่งดึงข้อมูล แต่ฉันเพิ่งใส่ลงไปในตัวอย่าง ขอบคุณสำหรับเคล็ดลับในการลบรหัสผ่านให้ด้วย!
marczych

11

หากข้อผิดพลาดนี้“ ไม่สามารถอัปเดตการอ้างอิงในท้องถิ่น” เกิดขึ้นได้อีกแม้หลังจากใช้คำตอบโดยVojtech VitekหรือMichel Krämerคุณอาจเป็นไปได้ว่าคุณอาจมีการอ้างอิงที่ไม่ดีในพื้นที่เก็บข้อมูลหลักและท้องถิ่นของคุณ

ในกรณีนี้คุณควรใช้โปรแกรมแก้ไขทั้งสองโดยไม่ต้องดึงหรือดันระหว่าง ...

rm .git/refs/remotes/origin/master
git fetch
git gc --prune=now
git remote prune origin

การแก้ไขปัญหาแบบถาวรสำหรับฉันทำได้ก็ต่อเมื่อใช้การแก้ไขทั้งสองก่อนกด / ดึง


1
ขอบคุณสำหรับสิ่งนี้. โปรดทราบว่าฉันแทนที่ 'ต้นแบบ' ด้วยสาขาที่ล้มเหลวเช่น - rm .git / refs / รีโมท / แหล่งกำเนิด / พัฒนา
Damien Sawyer

1
ขอบคุณสำหรับคำตอบช่วยจริงๆ!
naffiq

1
สิ่งนี้ใช้ได้ผลสำหรับฉัน
Jeevan

10

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

ฉันได้รับปัญหานี้เนื่องจากมีคนลบสาขาระยะไกลและสร้างขึ้นใหม่ด้วยชื่อเดียวกัน

สำหรับการจัดการกับปัญหาดังกล่าวให้ทำการดึงหรือดึงข้อมูลจากระยะไกล

git remote prune origin

หรือถ้าคุณใช้ GUI ใด ๆ ให้ดึงข้อมูลจากระยะไกล

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



3

ลองสิ่งนี้:

git pull origin Branch_Name

Branch_Nameสาขาที่คุณเปิดอยู่

หากคุณทำเพียงกgit pullก็จะดึงชื่อสาขาอื่นที่สร้างขึ้นทั้งหมดเช่นกัน

นี่คือเหตุผลที่คุณได้รับสิ่งนี้:

! [new branch]      split-css  -> origin/split-css  (unable to update local ref)

2

สำหรับฉันฉันมีสาขาในประเทศชื่อและสาขาที่ห่างไกลได้รับการตั้งชื่อfeature/phase2 feature/phase2/data-modelความขัดแย้งในการตั้งชื่อเป็นสาเหตุของปัญหาดังนั้นฉันจึงลบสาขาในพื้นที่ของฉัน (คุณสามารถเปลี่ยนชื่อได้หากมีสิ่งใดที่คุณต้องการเก็บไว้)


ปัญหาเดียวกันที่นี่ - ของเรายังเป็นปัญหาการตั้งชื่อกรณีของ Mac / PC ซึ่งทำให้มันยากที่จะสังเกตเห็น (ชื่อหนึ่งเป็นตัวพิมพ์ใหญ่ไม่ใช่ชื่ออื่น - และทำงานบนพีซี แต่ไม่ใช่ Mac)
rocksteady

2

ถ้าgit gc --prune=nowdosen ไม่ช่วยคุณ (โชคร้ายอย่างฉัน)

สิ่งที่ฉันทำคือลบโครงการในเครื่องและลอกแบบโครงการทั้งหมดอีกครั้ง


นี่คือ "ฉันได้รับข้อความแสดงข้อผิดพลาดดังนั้นฉันจึงซื้อคอมพิวเตอร์เครื่องใหม่" - การตรวจสอบซึ่งฉันไม่ได้คาดหวังว่าจะได้รับ upvotes ใด ๆ ในเว็บไซต์นี้
Stephan Vierkant

2

ฉันใช้ Tower .git/refs/remotes/origin/Githubและด้วยเหตุผลบางอย่างชื่อโฟลเดอร์ของฉันคือ การเปลี่ยนเป็นตัวพิมพ์เล็ก.git/refs/remotes/origin/githubแก้ไขปัญหาได้


1

ฉันมีปัญหาเดียวกัน ฉันทำตามขั้นตอนต่อไปนี้

1) สลับสาขาของคุณที่มีปัญหาไปยังสาขาอื่น

2) ลบสาขานั้น

3) ชำระเงินอีกครั้ง

หมายเหตุ: - คุณสามารถซ่อนการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดไว้และนำกลับมาใช้ใหม่ได้



0

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

rm -rf vendor/*
git gc --prune=now
git pull
composer clear-cache
composer update my/package

0

พบปัญหานี้เมื่อพยายามโคลนจากgit bundleไฟล์ที่สร้างขึ้นไม่มีคำตอบอื่นใดที่ทำงานได้เพราะฉันไม่สามารถคัดลอก repo ได้ (ดังนั้นgit gcการลบ / แก้ไขไฟล์จึงไม่เป็นปัญหา)

อย่างไรก็ตามมีวิธีอื่นในการแก้ไขปัญหานี้ - ไฟล์ต้นฉบับของ.bundleไฟล์เริ่มต้นด้วย:

# v2 git bundle
9a3184e2f983ba13cc7f40a820df8dd8cf20b54d HEAD
9a3184e2f983ba13cc7f40a820df8dd8cf20b54d refs/heads/master
9a3184e2f983ba13cc7f40a820df8dd8cf20b54d refs/heads/master

PACK.......p..x...Kj.0...: (and so on...)

เพียงแค่ลบบรรทัดที่สี่ด้วยเสียงเรียกเข้าแก้ไขปัญหา


0

ฉันมีปัญหานี้ขณะใช้ SourceTree ฉันพยายามดึงอีกครั้งและใช้งานได้ ฉันคิดว่าฉันกำลังแม่มดสาขา (เช็คเอาต์) เร็วเกินไป :)

สถานการณ์ของฉันแตกต่างจากโปสเตอร์เล็กน้อยเนื่องจากที่เก็บของฉันค่อนข้างร่วมมือกันโดยไม่มีความเสียหายใด ๆ


0
 # remove the reference file of the branch "lost"
 rm -fv ./.git/refs/remotes/origin/feature/v1.6.9-api-token-bot-reader

 # get all the branches from the master
 git fetch --all

 # git will "know" how-to handle the issue from now on
 #     From github.com:futurice/senzoit-www-server
 # * [new branch]      feature/v1.6.9-api-token-bot-reader ->
 # origin/feature/v1.6.9-api-token-bot-reader

 # and push your local changes
 git push

0

ประสบปัญหาเดียวกันเมื่อพื้นที่เก็บข้อมูลถูกลบและสร้างด้วยชื่อเดียวกัน ใช้งานได้ก็ต่อเมื่อฉันตั้งค่า URL ระยะไกลอีกครั้งตามด้านล่าง;

git ต้นกำเนิดชุด URL ระยะไกล [GIT_REPO_URL]

ตรวจสอบ URL ระยะไกล:

git remote -v

ตอนนี้คำสั่งทั้งหมดควรทำงานตามปกติ


0

เพิ่งพบปัญหาในวันนี้

วิธีการแก้ไขปัญหา: ด้วย SourceTree บน Windows Servers คุณอาจลองเรียกใช้ในฐานะผู้ดูแลระบบ นั่นช่วยแก้ไขปัญหา "ไม่สามารถอัปเดตการอ้างอิงในเครื่องของฉัน" บนโครงสร้างแหล่งที่มาของ Atlassian 2.1.2.5 ใน Windows Server 2012 R2 ในโดเมน

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


ฉันจะไม่แนะนำสิ่งนี้ คุณจะจบลงด้วยไฟล์ที่มากขึ้นด้วยสิทธิ์ที่ไม่ถูกต้อง และคุณจะต้องเรียกใช้ทุกอย่างที่จัดการกับไฟล์ที่เก็บในฐานะผู้ดูแลระบบ ไม่ดีกว่าหรือที่จะแก้ไขการอนุญาตในตอนแรก?
David Ferenczy Rogožan

คุณถูก. แต่หลังจากที่ทำให้มันทำงานได้ในฐานะผู้ดูแลฉันคิดว่ามันเป็นปัญหาการอนุญาต นี่เป็นขั้นตอนหนึ่งในขั้นตอนการวินิจฉัยของฉันไม่ใช่ทางออกที่สมบูรณ์แบบสำหรับทุกคน
Lionet Chen

แน่ใจ แต่ผู้ใช้หลายคนอาจใช้คำตอบของคุณเป็นวิธีแก้ปัญหาโดยไม่ทราบผลที่แท้จริง อาจจะดีกว่าถ้าคุณเพิ่มการแก้ไขการอนุญาตเป็นโซลูชันที่แนะนำ
David Ferenczy Rogožan

0

จดบันทึกกรณีเฉพาะที่อาจทำให้เกิดปัญหานี้

วันหนึ่งฉันผลักสาขาชื่อ "คุณสมบัติ / คุณสมบัติย่อย" ในขณะที่มีสาขา "คุณสมบัติ" ในระยะไกล

การดำเนินงานที่ทำงานได้ดีไม่มีข้อผิดพลาดใด ๆ ในด้านของฉัน แต่เมื่อเพื่อนร่วมงานของฉันเรียกและ / หรือดึงสาขาใด ๆ พวกเขาทั้งหมดมีข้อผิดพลาดเดียวกันที่แน่นอน,unable to update local refcannot lock ref 'refs/remotes/origin/feature/subfeature

นี้ได้รับการแก้ไขโดยการลบfeatureสาขาในระยะไกล ( git push --delete origin feature) แล้วทำงานgit remote prune originใน repo * [pruned] origin/featureร่วมงานของฉันซึ่งสร้างข้อความรวมทั้ง

ดังนั้นฉันเดาว่าgit fetchพยายามสร้างโฟลเดอร์subfeatureอ้างอิงในfeatureคอมไพล์ภายใน (.git / ... ) แต่การสร้างโฟลเดอร์ล้มเหลวเนื่องจากมีการfeatureอ้างอิงอยู่แล้ว


0

เราได้รับปัญหานี้เมื่อนักพัฒนาซอฟต์แวร์บน Mac สร้างสาขาที่มีสัญลักษณ์มากกว่า ">" ในชื่อสาขา

ที่ทำให้เกิดปัญหาใน TeamCity และในเครื่องคอมพิวเตอร์ที่ใช้ Windows ที่ใช้ SourceTree BitBucket ปล่อยให้มันผ่านไปโดยไม่มีปัญหาใด ๆ

เพื่อแก้ไขปัญหาผู้ใช้ลบสาขาและสร้างใหม่ ซึ่งดีและง่าย


-1

มีผงชูรสเหมือนกัน แต่มีไดเรกทอรีให้ดึงผงชูรสที่ล้มเหลว

git --prone ไม่ได้ช่วยฉันเหมือนกัน ปรากฎว่ามีไฟล์ชื่อเดียวกันกับไดเรกทอรีที่สร้างจากระยะไกล

ต้องไปที่. git \ logs \ refs \ remotes \ origin และลบไฟล์โลแคล - จากนั้นดึงอีกครั้งดีทั้งหมด

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