คำถามติดแท็ก version-control

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

11
เลิกทำ git update-index - สมมติว่าไม่เปลี่ยนแปลง <file>
วิธีที่คุณ Git เพิกเฉยต่อการดู / ติดตามไฟล์ / ไฟล์ที่ต้องการ คุณเรียกใช้สิ่งนี้: git update-index --assume-unchanged &lt;file&gt; ตอนนี้คุณจะยกเลิกได้อย่างไรเพื่อให้พวกเขาดูอีกครั้ง (เราเรียกมันว่ายกเลิกการสันนิษฐาน)

8
วิธี unstage ไฟล์จำนวนมากโดยไม่ลบเนื้อหา
ฉันบังเอิญเพิ่มไฟล์ชั่วคราวจำนวนมากโดยใช้ git add -A ฉันจัดการเพื่อ unstage ไฟล์โดยใช้คำสั่งต่อไปนี้และจัดการเพื่อลบดัชนีสกปรก git ls-files -z | xargs -0 rm -f git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached git help rmคำสั่งดังกล่าวข้างต้นมีการระบุไว้ใน แต่น่าเสียดายที่ไฟล์ของฉันถูกลบด้วยเช่นกันแม้ว่าฉันจะมีตัวเลือกแคชก็ตาม ฉันจะล้างดัชนีโดยไม่สูญเสียเนื้อหาได้อย่างไร นอกจากนี้ยังจะเป็นประโยชน์หากมีใครสามารถอธิบายวิธีการทำงานของท่อนี้ได้

22
บัญชี GitHub หลายอันในคอมพิวเตอร์เครื่องเดียวกัน?
พยายามทำงานทั้งของฉันจริง "งาน" repos และ repos ส่วนตัวของฉันในศูนย์กลาง git จากคอมพิวเตอร์ของฉัน บัญชีงานได้รับการตั้งค่าก่อนและทุกอย่างทำงานได้อย่างไร้ที่ติ บัญชีส่วนตัวของฉัน แต่ดูเหมือนไม่สามารถผลักดันไปยัง repo ส่วนตัวของฉันซึ่งตั้งค่าภายใต้บัญชี / อีเมลอื่น ฉันได้ลองคัดลอกรหัสงานไปยังบัญชีส่วนตัวของฉันแล้ว แต่นั่นเกิดข้อผิดพลาดเนื่องจากแน่นอนว่ากุญแจสามารถแนบกับบัญชีเดียวเท่านั้น ฉันจะกด / ดึงเข้าและออกจากทั้งสองบัญชีจากข้อมูลประจำตัว GitHub ที่เกี่ยวข้องได้อย่างไร

7
อย่างไรและ / หรือทำไมการรวมกันใน Git ดีกว่าใน SVN
ฉันเคยได้ยินในไม่กี่ที่ที่หนึ่งในเหตุผลหลักที่ว่าทำไมระบบควบคุมเวอร์ชันที่กระจายส่องแสงนั้นเป็นการผสานที่ดีกว่าเครื่องมือแบบดั้งเดิมอย่าง SVN อันนี้เป็นเพราะความแตกต่างโดยธรรมชาติในการทำงานของทั้งสองระบบหรือการใช้งาน DVCS เฉพาะเช่น Git / Mercurial เพียงแค่มีการรวมอัลกอริทึมที่ฉลาดกว่า SVN หรือไม่

25
ฉันสามารถเพิ่มเวอร์ชันการสร้างไฟล์โดยอัตโนมัติเมื่อใช้ Visual Studio ได้หรือไม่
ผมเพียงแค่สงสัยว่าฉันจะโดยอัตโนมัติเพิ่มการสร้าง (และรุ่น?) ของไฟล์ของฉันใช้ Visual Studio (2005) ถ้าฉันค้นหาคุณสมบัติการพูดC:\Windows\notepad.exeแท็บเวอร์ชันจะให้ "เวอร์ชันไฟล์: 5.1.2600.2180" ฉันต้องการรับหมายเลขเจ๋ง ๆ เหล่านี้ในรุ่น dll ของฉันด้วยเช่นกันไม่ใช่เวอร์ชัน 1.0.0.0 ซึ่งเราจะต้องเผชิญกับมันมันช่างน่าเบื่อเล็กน้อย ฉันลองบางสิ่งบางอย่าง แต่ดูเหมือนจะไม่ได้ใช้งานนอกกรอบหรือบางทีฉันก็แค่มองผิดที่ (ตามปกติ) ฉันทำงานกับโครงการเว็บเป็นหลัก .... ฉันมองไปที่ทั้งสอง: http://www.codeproject.com/KB/dotnet/Auto_Increment_Version.aspx http://www.codeproject.com/KB/dotnet/build_versioning.aspx และฉันไม่อยากจะเชื่อเลยว่ามันมีความพยายามอย่างมากที่จะทำสิ่งใดสิ่งหนึ่งซึ่งเป็นแนวปฏิบัติมาตรฐาน แก้ไข: มันไม่ทำงานใน VS2005 เท่าที่ฉันสามารถบอกได้ ( http://www.codeproject.com/KB/dotnet/AutoIncrementVersion.aspx )

2
เวิร์กโฟลว์ Github ที่ต้องการสำหรับการปรับปรุงคำขอดึงหลังจากการตรวจสอบรหัส
ฉันได้ส่งการเปลี่ยนแปลงไปยังโครงการโอเพ่นซอร์สบน Github และได้รับความคิดเห็นการตรวจสอบโค้ดจากหนึ่งในสมาชิกหลักของทีม ฉันต้องการอัปเดตรหัสโดยคำนึงถึงความคิดเห็นการตรวจสอบและส่งอีกครั้ง เวิร์กโฟลว์ที่ดีที่สุดสำหรับการทำเช่นนี้คืออะไร? จากความรู้ที่ จำกัด ของฉันเกี่ยวกับ git / github ฉันสามารถทำสิ่งใดสิ่งหนึ่งต่อไปนี้: อัปเดตรหัสเป็นการคอมมิชชันใหม่และเพิ่มการคอมมิทเริ่มต้นและอัปเดตลงในคำขอดึงของฉัน ยังไงก็ตาม (??) ย้อนกลับการคอมมิชชันเก่าจากที่เก็บของฉันและสร้างการคอมมิทใหม่ที่มีทุกอย่างจากนั้นเพิ่มคำขอดึงสำหรับสิ่งนั้น? git commitมีคุณสมบัติที่แก้ไข แต่ฉันได้ยินมาว่าคุณไม่ควรใช้งานหลังจากที่คุณส่งการคอมมิทนอกพื้นที่เก็บข้อมูลในเครื่องของคุณ? ในกรณีนี้ฉันได้ทำการเปลี่ยนแปลงบนพีซีในพื้นที่ของฉันและผลักดันไปยังสาขา github ของโครงการ นี่จะใช้การ 'แก้ไข' ไหม อื่น ๆ อีก? ดูเหมือนว่าตัวเลือก 2/3 จะดีเพราะโครงการโอเพนซอร์ซจะมีเพียงหนึ่งคอมมิชชันในประวัติศาสตร์ของพวกเขาซึ่งจะใช้งานทุกอย่าง แต่ฉันไม่แน่ใจว่าจะทำอย่างไร หมายเหตุ: ฉันไม่รู้ว่าสิ่งนี้มีผลกระทบต่อคำตอบหรือไม่ แต่ฉันไม่ได้ทำการเปลี่ยนแปลงในสาขาที่แยกจากกันฉันเพิ่งทำคอมมิชชันด้านบนของต้นแบบ

7
วิธีการส่งออกบันทึก git กับบรรทัดแรกเท่านั้น?
git logฉันพยายามที่จะปรับแต่งรูปแบบของ ฉันต้องการแสดงทั้งหมดมุ่งมั่นในบรรทัดเดียว แต่ละบรรทัดควรแสดงบรรทัดแรกของข้อความยืนยันเท่านั้น ฉันพบว่าgit log --pretty=shortควรทำเคล็ดลับ แต่ในคอมพิวเตอร์ของฉันมันแสดงบันทึกเต็มเช่นเดียวกับgit log(นอกเหนือจากการประทับเวลา) นอกจากนี้ผมพยายามที่จะใช้ตัวยึดตำแหน่งที่กำหนดไว้ในหน้าคน แม้ว่าฉันไม่สามารถหาคำสั่งเพื่อทำให้ข้อความบันทึกสั้นลง ฉันลองบรรทัดนี้git log --pretty=format:'%h : %s'ซึ่งแสดงแฮชแบบ shorted %hและข้อความเต็ม%sในหนึ่งบรรทัด ฉันกำลังใช้งานgit version 1.7.3.1.msysgit.0บน Vista บางทีมันอาจจะเกี่ยวข้องกับวิธีที่ฉันเขียนข้อความที่ส่งถึงฉัน นี่คือตัวอย่าง: Added some functionality. + Added print function in Foo class. + Added conversion from foo to baz. ดังนั้นด้วยตัวอย่างที่ให้มาฉันแค่อยากจะเอาท์พุทเสริมAdded some functionality.ด้วยแฮชของ Shortend

22
Git:“ วัตถุหลวมเสียหาย”
เมื่อใดก็ตามที่ฉันดึงจากระยะไกลฉันได้รับข้อผิดพลาดต่อไปนี้เกี่ยวกับการบีบอัด เมื่อฉันเรียกใช้การบีบอัดด้วยตนเองฉันจะได้รับเหมือนกัน: $ git gc error: Could not read 3813783126d41a3200b35b6681357c213352ab31 fatal: bad tree object 3813783126d41a3200b35b6681357c213352ab31 error: failed to run repack ไม่มีใครรู้ว่าจะทำอย่างไรเกี่ยวกับที่? จากไฟล์ cat ฉันได้รับสิ่งนี้: $ git cat-file -t 3813783126d41a3200b35b6681357c213352ab31 error: unable to find 3813783126d41a3200b35b6681357c213352ab31 fatal: git cat-file 3813783126d41a3200b35b6681357c213352ab31: bad file และจาก git fsck ฉันได้รับสิ่งนี้ (ไม่ทราบว่าเกี่ยวข้องกันจริงหรือไม่): $ git fsck error: inflate: …

24
ลบสาขา git ท้องถิ่นทั้งหมด
ฉันทำตามกระบวนการพัฒนาที่ฉันสร้างสาขาท้องถิ่นใหม่สำหรับคุณสมบัติใหม่หรือการ์ดเรื่องราว เมื่อเสร็จแล้วฉันจะรวมสาขาเป็นหลักแล้วกด สิ่งที่มีแนวโน้มที่จะเกิดขึ้นเมื่อเวลาผ่านไปเนื่องจากการผสมผสานของความเกียจคร้านหรือความหลงลืมคือฉันท้ายที่สุดมีรายการสาขาท้องถิ่นจำนวนมากซึ่งบางส่วน (เช่นแหลม) อาจไม่ถูกรวมเข้าด้วยกัน ฉันรู้วิธีการแสดงรายการสาขาในพื้นที่ทั้งหมดของฉันและฉันรู้วิธีลบสาขาเดียว แต่ฉันสงสัยว่ามีคำสั่ง git ที่ทำให้ฉันสามารถลบสาขาท้องถิ่นทั้งหมดของฉันได้หรือไม่ ด้านล่างเป็นผลลัพธ์ของgit branch --mergedคำสั่ง user@machine:~/projects/application[master]$ git branch --merged STORY-123-Short-Description STORY-456-Another-Description STORY-789-Blah-Blah * master ความพยายามในการลบสาขาที่มีรายชื่อgrep -v \*(ตามคำตอบด้านล่าง) ส่งผลให้เกิดข้อผิดพลาด: error: branch 'STORY-123-Short-Description' not found. error: branch 'STORY-456-Another-Description' not found. error: branch 'STORY-789-Blah-Blah' not found. ฉันใช้: git 1.7.4.1 ubuntu 10.04 ทุบตี GNU, รุ่น 4.1.5 (1) …

21
ฉันควรใช้ SVN หรือ Git หรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม &amp; คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันกำลังเริ่มโครงการกระจายใหม่ ฉันควรใช้ SVN หรือ Git และทำไม
321 git  svn  version-control 

3
ฉันควรเพิ่มโฟลเดอร์. vs Visual Studio 2015 ลงในตัวควบคุมแหล่งที่มาหรือไม่
Visual Studio 2015 สร้างโฟลเดอร์ใหม่ชื่อ ".vs" จุดประสงค์ของมันคืออะไรและฉันควรเพิ่มลงในการควบคุมแหล่งที่มา?

19
ชำระเงินหนึ่งไฟล์จากการโค่นล้ม
"เป็นไปไม่ได้ที่จะเช็คเอาต์ไฟล์เดียวระดับการชำระเงินที่ดีที่สุดที่คุณสามารถทำได้คือที่ระดับไดเรกทอรี" ฉันจะแก้ไขปัญหานี้ได้อย่างไรเมื่อใช้การโค่นล้ม เรามีโฟลเดอร์นี้ในการโค่นล้มที่เราเก็บภาพทั้งหมดของเรา ฉันแค่ต้องการตรวจสอบไฟล์เดียว (ภาพ) จากที่ โฟลเดอร์นี้ใหญ่มากและมีสิ่งอื่นอีกมากมายที่ฉันไม่ต้องการในตอนนี้

3
ฉันจะ 'สถานะ git' ได้อย่างไรจึงไม่แสดงไฟล์ที่ไม่ได้ติดตามโดยไม่ใช้. gitignore
ฉันจะทำอย่างไรgit statusจึงไม่สามารถแสดงไฟล์ที่ไม่ได้ติดตามโดยไม่ต้องใช้.gitignore? ฉันต้องการรับข้อมูลสถานะการดัดแปลงสำหรับไฟล์ที่ถูกติดตามเท่านั้น

29
การกำหนดเวอร์ชันฐานข้อมูล SQL Server
ฉันต้องการรับฐานข้อมูลภายใต้การควบคุมเวอร์ชัน ใครบ้างมีคำแนะนำหรือบทความแนะนำให้ฉันเริ่มต้น ฉันมักจะต้องการที่จะมีอย่างน้อยบางข้อมูลที่อยู่ในนั้น (เป็นalumbกล่าวถึง: ประเภทของผู้ใช้และผู้ดูแลระบบ) ฉันมักจะต้องการชุดข้อมูลทดสอบที่สร้างขึ้นจำนวนมากสำหรับการวัดประสิทธิภาพ

11
Git: วิธีการสควอชทั้งหมดมุ่งมั่นที่สาขา
ฉันสร้างสาขาใหม่จากmasterด้วย: git checkout -b testbranch ฉันลงมือทำ 20 ข้อ ตอนนี้ฉันต้องการสควอชทั้ง 20 คอมมิชชัน ฉันทำอย่างนั้นกับ: git rebase -i HEAD~20 จะเป็นอย่างไรถ้าฉันไม่รู้ว่ามีคนผูกพันไปกี่คน? มีวิธีที่จะทำสิ่งที่ชอบ: git rebase -i all on this branch

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