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

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

8
คุณทำให้ Git ละเว้นไฟล์โดยไม่ใช้. gitignore ได้อย่างไร
เนื่องจากข้อ จำกัด แปลก ๆ ภายนอกฉันไม่สามารถแก้ไขที่.gitignoreเก็บของฉันได้ มีวิธีละเว้นไฟล์และไดเร็กทอรีอื่นนอกเหนือจากการแก้ไข.gitignoreหรือไม่? แม้ว่าจะเป็นโซลูชันระดับโลกเช่นการกำหนดค่าส่วนกลางที่จะนำไปใช้กับที่เก็บทั้งหมดของฉัน

3
จะลบไฟล์ออกจากการควบคุมเวอร์ชันโดยไม่ลบได้อย่างไร
ถ้าฉันเรียกใช้svn rm fileไฟล์จะถูกลบออกจากสำเนาการทำงานในเครื่อง สิ่งที่ฉันทำตอนนี้คือ: $ cp file file2 $ svn rm file $ svn ci $ mv file2 file ฉันจะหลีกเลี่ยงไม่ให้ svn ลบไฟล์ในเครื่องเมื่อใช้งานได้svn rmอย่างไร

6
ชื่อสาขาเทียบกับที่เก็บหลายแห่ง
ขณะนี้เรากำลังใช้การโค่นล้มบน codebase ที่ค่อนข้างใหญ่ แต่ละรีลีสได้รับสาขาของตัวเองและการแก้ไขจะดำเนินการกับลำต้นและย้ายไปยังสาขาที่ปล่อยโดยใช้svnmerge.py ฉันเชื่อว่าถึงเวลาแล้วที่จะต้องไปสู่การควบคุมแหล่งที่มาที่ดีขึ้นและฉันเคยเล่นกับ Mercurial มาระยะหนึ่งแล้ว ดูเหมือนว่าจะมีโรงเรียนสองแห่งที่จัดการโครงสร้างการเปิดตัวดังกล่าวโดยใช้ Mercurial แต่ละรีลีสแต่ละรายการจะได้รับ repo ของตัวเองและทำการแก้ไขกับสาขารีลีสและพุชไปยังสาขาหลัก (และสาขารีลีสอื่น ๆ ที่ใหม่กว่า) หรือใช้สาขาที่มีชื่อภายในที่เก็บเดียว (หรือสำเนาที่ตรงกันหลายชุด) ไม่ว่าในกรณีใดดูเหมือนว่าฉันอาจใช้บางอย่างเช่นการปลูกถ่ายเพื่อเปลี่ยนเชอร์รี่พิคเพื่อรวมไว้ในสาขาที่วางจำหน่าย ฉันถามคุณ; ข้อดีของแต่ละวิธีคืออะไร?

5
git add * (ดอกจัน) เทียบกับ git add (ระยะเวลา)
ฉันเพิ่งเริ่มใช้คอมไพล์และมีคำถามเกี่ยวกับการเพิ่มไฟล์ในคอมไพล์ ฉันได้พบคำถาม StackOverflow หลายเกี่ยวกับความแตกต่างระหว่างgit add .และgit add -a, git add --all, git add -Aฯลฯ แต่ฉันไม่สามารถที่จะหาสถานที่อธิบายถึงสิ่งที่git add *ไม่ ฉันเคยดูหน้าgit add manด้วยซ้ำ แต่ก็ไม่ได้ช่วยอะไร ฉันใช้มันแทนgit add .และเพื่อนร่วมงานของฉันถามฉันว่าทำไม ฉันไม่มีคำตอบ git add *ผมเคยใช้เพียงแค่เสมอ มีgit add .และgit add *เดียวกันได้หรือไม่ หนึ่งเพิ่มไฟล์ที่เปลี่ยนแปลงจากไดเร็กทอรีปัจจุบันเท่านั้นในขณะที่อีกไฟล์เพิ่มไฟล์จากไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อย (เรียกซ้ำ) หรือไม่ มีแผนภูมิที่ดีที่ระบุไว้ในหนึ่งในคำถามที่สแต็คอื่น ๆ เป็นเรื่องที่แสดงให้เห็นถึงความแตกต่างระหว่างgit add -A git add .และแต่ก็ไม่ได้มีgit add -ugit add * หมายเหตุ: ฉันเข้าใจความหมายของการใช้เครื่องหมายดอกจันเป็นสัญลักษณ์แทน …

1
ล้างโฟลเดอร์โมดูลย่อย Git เมื่อโคลน repo
ฉันมีหนึ่ง repo เจ้าภาพที่https://github.com/aikiframework/json ในสำเนาโลคัลของฉันฉันเพิ่มโมดูลย่อยโดยใช้คำสั่ง git submodule add git@github.com:jcubic/json-rpc.git json-rpc จากนั้นฉันก็ทำการกระทำและผลักดันและการเปลี่ยนแปลงจะปรากฏบน GitHub (ฉันสามารถคลิกได้) แต่เมื่อฉันโคลน repo git clone https://github.com/aikiframework/json.git โฟลเดอร์โมดูลย่อย json-rpc ว่างเปล่า ฉันพลาดอะไรไปที่นี่? ฉันลืมอะไรไปหรือเปล่า? ทำไมโฟลเดอร์นั้นว่างเปล่า


5
คุณจะปิดการควบคุมเวอร์ชันใน Android Studio ได้อย่างไร
ฉันตั้งค่า Github ด้วย android studio ทุกอย่างทำงานได้ดีแม้ว่าตอนนี้ปัญหาคือดูเหมือนว่าฉันจะปิดไม่ได้หรือออกจากการควบคุมเวอร์ชันเพื่อใช้ IDE ตามปกติอีกครั้ง ซึ่งหมายความว่าจะไม่มีการแสดงข้อผิดพลาดและเป็นการยากที่จะแก้ไขข้อบกพร่องด้วยเหตุนี้ ฉันจะปิดการควบคุมเวอร์ชัน (VCS) ใน Android Studio ได้อย่างไร

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

2
รับคอมไพล์ทั้งหมดตั้งแต่แท็กสุดท้าย
เมื่อฉันจะแท็กคอมมิตฉันจำเป็นต้องรู้ว่ามีอะไรเปลี่ยนแปลงไปบ้างตั้งแต่คอมมิตที่แท็กล่าสุด เช่น: a87a6sdf87a6d4 Some new feature a87a6sdf87a6d3 Some bug fix a87a6sdf87a6d2 Some comments added a87a6sdf87a6d1 Some merge <- v1.4.0 ในตัวอย่างนี้ฉันต้องการทราบเกี่ยวกับการคอมมิตใหม่ล่าสุด 3 รายการหรือสามารถพิมพ์บันทึกได้เหมือนข้างบนซึ่งแสดงว่าทั้งสองคอมมิตแท็กของพวกเขาถ้ามี และเมื่อฉันเห็นว่ามีการเพิ่มคุณสมบัติใหม่ฉันจะติดแท็ก v1.5.0 คุณจัดการกับเรื่องนี้อย่างไร? ฉันควรจะใช้แท็กหรือไม่ ฉันควรเขียนอะไรในข้อความแท็ก ฉันมักจะเว้นว่างไว้เสมอ:git tag -a v1.2.3 -m ''

8
เปลี่ยนกลับการเปลี่ยนแปลงเป็นไฟล์ในคอมมิต
ฉันต้องการเปลี่ยนกลับการเปลี่ยนแปลงที่กระทำโดยการคอมมิตเฉพาะกับไฟล์ที่กำหนดเท่านั้น ฉันสามารถใช้คำสั่ง git revert ได้หรือไม่ วิธีง่ายๆอื่น ๆ ที่จะทำ?

5
ความแตกต่างระหว่าง GIT และ CVS
ความแตกต่างระหว่างระบบควบคุมเวอร์ชัน Git และ CVS คืออะไร? ฉันใช้ CVS อย่างมีความสุขมากว่า 10 ปีแล้วและตอนนี้ฉันก็ได้รับการบอกกล่าวว่า Git นั้นดีขึ้นมาก ใครช่วยอธิบายได้ไหมว่าความแตกต่างระหว่างทั้งสองคืออะไรและทำไมหนึ่งถึงดีกว่าอีกอัน
126 git  version-control  cvs 

4
เก็บ git repo ไว้ใน git repo อื่น
นี่คือสิ่งที่ฉันต้องการ: REPO-A /.git /otherFiles /REPO-B /.git /moreFiles ฉันต้องการที่จะสามารถผลักดันเนื้อหาทั้งหมดของ REPO-A ไปที่ REMOTE-A และมีเพียง REPO-B ถึง REMOTE-B ไปได้หรือไม่

4
รวมสาขาเข้ากับลำต้น
ฉันประสบปัญหาเฉพาะกับ mergeSVN ฉันต้องการผสานจากสาขา dev เป็น trunk เรามีสาขา dev หลายกิ่งที่ตัดลำต้นในเวลาเดียวกัน ฉันกำลังรวมหนึ่งในสาขาเหล่านั้นเข้ากับลำต้นด้วยคำสั่งนี้: svn merge trunk branch_1 ฉันเห็นการเปลี่ยนแปลงที่ไม่ได้เป็นส่วนหนึ่งของกิ่งก้านนี้รวมเข้ากับลำต้น ผมทำอะไรผิดหรือเปล่า ? เวอร์ชัน SVN: ไคลเอนต์บรรทัดคำสั่งการโค่นล้มเวอร์ชัน 1.6.16-SlikSvn-tag-1.6.16@1076804-WIN32

22
มีระบบควบคุมเวอร์ชันสำหรับการเปลี่ยนแปลงโครงสร้างฐานข้อมูลหรือไม่?
ฉันมักจะพบปัญหาต่อไปนี้ ฉันทำงานกับการเปลี่ยนแปลงบางอย่างในโครงการที่ต้องการตารางหรือคอลัมน์ใหม่ในฐานข้อมูล ฉันทำการแก้ไขฐานข้อมูลและทำงานต่อ โดยปกติฉันจำไว้ว่าต้องจดบันทึกการเปลี่ยนแปลงเพื่อให้สามารถจำลองซ้ำบนระบบถ่ายทอดสดได้ อย่างไรก็ตามฉันจำไม่ได้เสมอไปว่าฉันเปลี่ยนแปลงอะไรไปบ้างและฉันก็จำไม่ได้ว่าจะเขียนมันลงไปเสมอ ดังนั้นฉันจึงผลักดันระบบถ่ายทอดสดและได้รับข้อผิดพลาดใหญ่ที่ชัดเจนว่าไม่มีNewColumnXฮึ แม้ว่านี่อาจไม่ใช่แนวทางปฏิบัติที่ดีที่สุดสำหรับสถานการณ์นี้ แต่มีระบบควบคุมเวอร์ชันสำหรับฐานข้อมูลหรือไม่? ฉันไม่สนใจเกี่ยวกับเทคโนโลยีฐานข้อมูลเฉพาะ ฉันแค่อยากรู้ว่ามีอยู่หรือเปล่า ถ้าเกิดว่าทำงานกับ MS SQL Server ได้ล่ะก็เยี่ยมเลย

18
การย้ายจาก CVS ไปเป็น Git: $ Id $ equivalent?
ฉันอ่านคำถามมากมายเกี่ยวกับเครื่องมือควบคุมซอร์สโค้ดง่ายๆและ Git ดูเหมือนจะเป็นทางเลือกที่สมเหตุสมผล ฉันเปิดใช้งานและทำงานได้ดีจนถึงตอนนี้ สิ่งหนึ่งที่ฉันชอบเกี่ยวกับ CVS คือการเพิ่มหมายเลขเวอร์ชันโดยอัตโนมัติ ฉันเข้าใจว่าสิ่งนี้ไม่ค่อยสมเหตุสมผลในที่เก็บแบบกระจาย แต่ในฐานะนักพัฒนาฉันต้องการ / ต้องการอะไรแบบนี้ ให้ฉันอธิบายว่าทำไม: ฉันใช้ Emacs เป็นระยะ ๆ ฉันจะค้นหาไฟล์ต้นฉบับ Lisp เวอร์ชันใหม่สำหรับแพ็คเกจของบุคคลที่สาม สมมติว่าฉันมีไฟล์ foo.el ซึ่งตามส่วนหัวคือเวอร์ชัน 1.3 ถ้าฉันค้นหาเวอร์ชันล่าสุดและเห็นว่ามันคือ 1.143 หรือ 2.6 หรืออะไรก็ตามฉันรู้ว่าฉันค่อนข้างล้าหลัง ถ้าฉันเห็นแฮช 40 อักขระสองสามตัวแทนฉันจะไม่รู้ว่าอันไหนจะมาทีหลังหรือไม่รู้ว่ามันยาวเท่าไร ฉันจะเกลียดมันเป็นอย่างยิ่งถ้าฉันต้องตรวจสอบ ChangeLogs ด้วยตนเองเพื่อให้ทราบว่าฉันล้าสมัยแค่ไหน ในฐานะนักพัฒนาฉันต้องการขยายความเอื้อเฟื้อนี้ให้กับผู้คนที่ใช้ผลลัพธ์ของฉัน (และบางทีฉันอาจล้อเล่นว่าใครเป็นใคร แต่ขอทิ้งไว้สักครู่) ฉันไม่อยากจำที่จะต้องเพิ่มจำนวนแช่งตัวเองทุกครั้งหรือการประทับเวลาหรืออะไรทำนองนั้น นั่นเป็น PITA ที่แท้จริงและฉันรู้จากประสบการณ์ ฉันมีทางเลือกอะไรบ้าง? หากฉันไม่สามารถรับ $ Id: $ เทียบเท่าฉันจะให้สิ่งที่ฉันกำลังมองหาได้อย่างไร ฉันควรพูดถึงว่าความคาดหวังของฉันคือผู้ใช้ปลายทางจะไม่ได้ติดตั้ง Git และแม้ว่าพวกเขาจะทำ …

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