VS 2017 Git Local Commit DB.lock เกิดข้อผิดพลาดในทุกการกระทำ


202

เราได้รับข้อผิดพลาดนี้กับการกระทำในท้องถิ่น:

Git ล้มเหลวด้วยข้อผิดพลาดร้ายแรงerror: open (". vs / XXXXXX.Dev.Library / v15 / Server / sqlite3 / db.lock"): สิทธิ์ที่ถูกปฏิเสธ: ไม่สามารถประมวลผลพา ธ . vs / XXXXXX.Dev.Library / v15 /Server/sqlite3/db.lock

นี่เป็นการติดตั้งใหม่ล่าสุดของ VS 2017 โดยใช้ที่เก็บ git ในเครื่องก่อนที่จะสามารถซิงค์กับ Azure DevOps GIT

เราสามารถลบไฟล์ล็อคแล้วซิงค์ดี แต่มันอย่างจริงจังช้าลงกระบวนการพัฒนา (ต้องใกล้ , ลบ , เปิด , กระทำทุกครั้ง)

ไม่มีใครรู้วิธีแก้ไขปัญหาระยะยาวที่ดีกว่าสำหรับปัญหานี้หรือไม่


หากบุคคลอื่นวิ่งข้ามสิ่งนี้และเพิ่ม ".vs /" ไปยัง. gitignore ดูเหมือนจะไม่ทำงานทำให้ไฟล์ใน PowerShell แล้วแก้ไขด้วย Notepad ++ จะปล่อยให้ไฟล์มีการเข้ารหัสอักขระผิดประเภท ฉันต้องเปิดมันใน VS Code และเข้ารหัสเป็น UTF8 ธรรมดาแล้วมันก็ใช้ได้ดี
Brian Leishman

คำตอบ:


422

เพียงแค่เพิ่ม .vs โฟลเดอร์ไป.gitignoreไฟล์

นี่คือเทมเพลตสำหรับ Visual Studio จากคอลเลกชันของ GitHub ของเทมเพลต. gitignore ตัวอย่างเช่น:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


หากคุณมีปัญหาในการเพิ่มไฟล์. gitignore เพียงทำตามขั้นตอนเหล่านี้:

  1. ในหน้าต่างของ Team Explorer ให้ไปที่การตั้งค่า

Team Explorer - การตั้งค่า

  1. จากนั้นเข้าถึงการตั้งค่าที่เก็บ

การตั้งค่าพื้นที่เก็บข้อมูล

  1. สุดท้ายให้คลิกเพิ่มในส่วนละเว้นไฟล์

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

เสร็จสิ้น ;)
ไฟล์เริ่มต้นนี้มีโฟลเดอร์. vs อยู่แล้ว

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


3
ใช่นั่นคือแอนแวร์ที่ดีที่สุดฉันใส่ "2017" ลงใน: # Visual Studio 2015/2017 ไดเรกทอรีแคช / ตัวเลือก. vs /
harveyt

1
ปัญหาคือgit clean -fxdได้รับมันในการบิดแล้ว .. ฉันต้องออกจาก VS ก่อนที่ฉันจะสามารถทำความสะอาด สิ่งนี้เริ่มต้นตั้งแต่ VS2017 และไม่ได้เกิดขึ้นในปี 2558
Peter McEvoy

4
มันก็ใช้ได้กับฉันเช่นกัน คำตอบที่สมบูรณ์แบบสำหรับข้อความแสดงข้อผิดพลาดที่ทำให้เข้าใจผิด
สแตนลีย์ Okpala Nwosa

@Matheus หลังจากทำขั้นตอนการคอมมิชชันแล้ว แต่ Commit All และ Push ยังคงแสดงข้อผิดพลาดเดียวกัน สิ่งที่สามารถทำได้เพื่อให้ได้รับมอบหมายและผลักดัน?
สแตนลีย์ Okpala Nwosa

ทำงานให้ฉันได้ แต่การทำคอมไพล์ใน VS ดูเหมือนจะใช้เวทย์มนตร์เป็นส่วนใหญ่ ฉันพยายามดึงกระต่ายออกมาจากหมวก แต่ได้ชิมแปนซีแทน
Roberto

63
  1. ไม่ควรกำหนดโฟลเดอร์. vs
  2. สร้างไฟล์ที่มีชื่อ ".gitignore" ในไดเรกทอรีราก git โครงการ
  3. เพิ่มบรรทัด ".vs /" ต่อไปนี้ในไฟล์ ".gitignore"
  4. ตอนนี้ยอมรับโครงการของคุณ

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


สวัสดีแม้ว่าไฟล์ประเภทนี้จะอยู่ในไฟล์ gitignore แต่ฉันก็ยังพบข้อผิดพลาดอยู่ กรุณาช่วยด้วย
user3820266

33

ขั้นตอนที่ 1:
เพิ่ม. vs / ไฟล์. gitignore ของคุณ (ดังที่ได้กล่าวไว้ในคำตอบอื่น ๆ )

ขั้นตอนที่ 2:
มันเป็นสิ่งสำคัญที่จะเข้าใจว่าขั้นตอนที่ 1 จะไม่ลบไฟล์ภายใน. vs / จากดัชนีสาขาปัจจุบันของคุณหากพวกเขาได้รับการเพิ่มไปแล้ว ดังนั้นล้างสาขาที่ใช้งานของคุณโดยการออก:

git rm --cached -r .vs/*

ขั้นตอนที่ 3: ที่
ดีที่สุดที่จะทำซ้ำขั้นตอนที่ 1 และ 2 ทันทีสำหรับสาขาที่ใช้งานอื่นทั้งหมดของโครงการของคุณเช่นกัน
มิฉะนั้นคุณจะประสบปัญหาเดียวกันอีกครั้งอย่างง่ายดายเมื่อเปลี่ยนเป็นสาขาที่ไม่สะอาด

เคล็ดลับสำหรับมืออาชีพ:
แทนที่จะใช้ขั้นตอนที่ 1 คุณอาจต้องการใช้เทมเพลต. gitingore อย่างเป็นทางการสำหรับ VisualStudio ที่ครอบคลุมมากกว่าแค่เส้นทาง. vs:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
(แต่ก็อย่าลืมขั้นตอนที่ 2 และ 3)


.vs ถูกแยกออกในไฟล์. gitignore (.vs /) ของฉันและยังคงมีปัญหาอยู่ มีปัญหาอะไรอีกหรือ
สแตนลีย์ Okpala Nwosa

1
สามารถแก้ไขได้โดยการเรียกใช้ git rm --cached -r .vs / * ขอบคุณ
สแตนลีย์ Okpala Nwosa

5

VS 2017 Git Local Commit DB.lock เกิดข้อผิดพลาดในทุกการกระทำ

ปัญหานี้ต้องเกิดจากไฟล์. signore ที่เสียหาย

ถ้า IDE ของคุณเป็น Visual Studio โปรดทำตามขั้นตอนเหล่านี้เพื่อแก้ไขปัญหานี้:

  1. ลบไฟล์. gitignore ออกจากโฟลเดอร์โครงการของคุณ
  2. ไปที่ Team Explorer
  3. ไปที่หน้าแรกใน Team Explorer
  4. ไปที่การตั้งค่า
  5. ภายใต้ GIT ให้คลิกการตั้งค่าที่เก็บ
  6. ภายใต้ - ละเว้น & คุณสมบัติไฟล์ - ใต้ไฟล์ละเว้น - คลิกเพิ่ม คุณควรเห็นการแจ้งเตือนว่าสร้างไฟล์ละเว้นได้สำเร็จ
  7. สร้างโซลูชันของคุณ ใช้เวลาสักครู่และสร้างไฟล์. signore ใหม่เมื่อบิลด์สำเร็จ
  8. ตอนนี้คุณควรจะสามารถยอมรับและกดได้โดยไม่มีปัญหาใด ๆ เพิ่มเติม

หมายเหตุ: โปรดจำไว้ว่า Visual Studio เวอร์ชันของคุณอาจวางตัวเลือกเหล่านี้แตกต่างออกไป ฉันใช้ Visual Studio 2019 Community Edition


ทำงานให้ฉัน ขอบคุณ!
Chase Ernst

2

ฉันมีปัญหาเดียวกัน แต่ฉันแก้ไขด้วยการสร้างไฟล์. gitignore

ฉันได้พบวิธีแก้ปัญหาที่เพียงแค่ประกอบด้วยการลบไฟล์ db.lock จากโฟลเดอร์. vs แต่คุณต้องทำทุกครั้งและทำสิ่งนี้เป็นเวลานานทำให้การดำเนินการที่น่ารำคาญ

วิธีที่ดีที่สุดในการแก้ปัญหานี้คือการสร้างไฟล์. gitignore ตามที่แนะนำมาก่อน แต่ฉันคิดว่ามันดีที่จะพูดถึงวิธีแก้ปัญหานี้เพียงเพื่อความรู้ทั่วไป!

ขอแสดงความนับถือ Tony Grinton


0

ฉันไม่ได้ใช้ Git โดยตรงผ่าน Visual Studio แต่ใช้ไคลเอ็นต์ Git Desktop

แต่ฉันได้รับข้อผิดพลาดที่คล้ายกัน แต่แก้ไขได้โดยการปิด Visual Studio ก่อนที่จะยอมรับการเปลี่ยนแปลงเป็นหลัก


0

หากคุณใช้ IDE เช่น visual studio และเปิดในขณะที่คุณส่งคำสั่งให้ปิด IDE แล้วลองอีกครั้ง

git add .

และคำสั่งอื่น ๆ ก็จะออกกำลังกาย


0

สำหรับฉันขั้นตอนด้านล่างช่วย:

  • ปิด Visual Studio 2019
  • ลบ. vs โฟลเดอร์ในโครงการ
  • เปิด Project อีกครั้งโฟลเดอร์. vs จะถูกสร้างขึ้นโดยอัตโนมัติ
  • เสร็จสิ้น


0

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

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


0

หากมีสิ่งนี้และ. gitignore ของฉันอยู่ในโฟลเดอร์โครงการของฉัน แต่โฟลเดอร์ git หลักอยู่ในระดับโซลูชัน ย้าย. gignignore ออกไปยังโฟลเดอร์ระดับโซลูชัน / git ยังไม่แน่ใจว่ามันไปถึงที่นั่นได้อย่างไร ...


-1

ลองคัดลอกไฟล์ไปยังไดเรกทอรีของคุณด้วยตนเอง (C: \ Users \ Admin \ AppData \ Local \ Temp \ WebSitePublish \ digisol - 1147805695 \ obj \ Debug \ Package \ PackageTmp.vs \ digisol \ v15 \ Server \ sqlite3)


-1

ฉันได้ทำวิธีการแก้ปัญหาข้างต้นในที่สุดงานนี้แก้ไขปัญหาของฉัน:

  • ปิดสตูดิโอภาพ

  • เรียกใช้ git bash ในโฟลเดอร์โครงการ

  • เขียน:

    คอมไพล์เพิ่ม

    git กระทำ -m "[ความคิดเห็นของคุณ]"

    git push


-2

เพื่อแก้ไขปัญหานี้เป็นเรื่องง่าย ก่อนปิด Visual Studio และเปิด Windows Explorer ไปที่โฟลเดอร์สถานที่. vs และเปิดคุณสมบัติโฟลเดอร์และตรวจสอบตัวเลือกที่ซ่อนอยู่

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