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

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

9
ฉันจะแปลงที่เก็บ git เป็น Mercurial ได้อย่างไร
ฉันได้พัฒนาแอปพลิเคชัน java โดยใช้ git เป็นที่เก็บซอร์สโค้ด ฉันต้องการแชร์โครงการกับนักพัฒนา java คนอื่น ๆ และดูเหมือนว่า hg จะถูกใช้มากที่สุด คำถามของฉันคือฉันจะแปลง git repository เป็น hg ได้อย่างไร ถ้าฉันลองใช้ googling "แปลง git เป็น hg" และทุก ๆ การค้นหาจะเกี่ยวกับการแปลงจาก hg เป็น git ฉันยังใช้TortoiseHg


11
คุณควรสร้างฐานข้อมูลจากการควบคุมแหล่งที่มาอย่างไร
มีการอภิปรายเกี่ยวกับวิกิชุมชน SO ว่าควรจะควบคุมเวอร์ชันของวัตถุฐานข้อมูลหรือไม่ อย่างไรก็ตามฉันยังไม่เห็นการอภิปรายเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดในการสร้างกระบวนการสร้างอัตโนมัติสำหรับวัตถุฐานข้อมูล นี่เป็นประเด็นถกเถียงสำหรับทีมของฉันโดยเฉพาะอย่างยิ่งเนื่องจากนักพัฒนาและ DBA มักมีเป้าหมายแนวทางและข้อกังวลที่แตกต่างกันเมื่อประเมินประโยชน์และความเสี่ยงของแนวทางอัตโนมัติในการปรับใช้ฐานข้อมูล ฉันต้องการรับฟังความคิดเห็นจากชุมชน SO เกี่ยวกับแนวทางปฏิบัติที่ได้ผลในโลกแห่งความเป็นจริง ฉันตระหนักดีว่าการปฏิบัตินั้นค่อนข้างเป็นอัตวิสัยที่ดีที่สุด แต่ฉันคิดว่าบทสนทนาที่ดีเกี่ยวกับงานที่อาจเป็นประโยชน์กับคนจำนวนมาก นี่คือคำถามทีเซอร์บางส่วนของฉันเกี่ยวกับประเด็นที่น่ากังวลในหัวข้อนี้ สิ่งเหล่านี้ไม่ได้หมายถึงรายการที่ชัดเจน แต่เป็นจุดเริ่มต้นสำหรับผู้คนที่จะช่วยให้เข้าใจสิ่งที่ฉันกำลังมองหา ควรสร้างทั้งสภาพแวดล้อมการทดสอบและการผลิตจากการควบคุมแหล่งที่มาหรือไม่ ทั้งสองควรสร้างขึ้นโดยใช้ระบบอัตโนมัติ - หรือควรผลิตโดยสร้างโดยการคัดลอกวัตถุจากสภาพแวดล้อมการทดสอบที่เสถียรและสรุปแล้ว? คุณจัดการกับความแตกต่างที่อาจเกิดขึ้นระหว่างสภาพแวดล้อมการทดสอบและการใช้งานจริงในสคริปต์การปรับใช้อย่างไร คุณจะทดสอบได้อย่างไรว่าสคริปต์การปรับใช้จะทำงานได้อย่างมีประสิทธิภาพเมื่อเทียบกับการใช้งานจริงเช่นเดียวกับที่ทำในการทดสอบ ชนิดของวัตถุที่ควรควบคุมเวอร์ชัน? เพียงแค่รหัส (โพรซีเดอร์แพ็คเกจทริกเกอร์ java ฯลฯ )? ดัชนี? ข้อ จำกัด ? นิยามตาราง? สคริปต์เปลี่ยนตาราง? (เช่นแก้ไขสคริปต์) ทุกอย่าง? ออบเจ็กต์ประเภทใดที่ไม่ควรควบคุมเวอร์ชัน ลำดับ? เงินช่วยเหลือ? บัญชีผู้ใช้? ควรจัดระเบียบวัตถุฐานข้อมูลในที่เก็บ SCM ของคุณอย่างไร คุณจัดการกับสิ่งที่เกิดขึ้นเพียงครั้งเดียวเช่นสคริปต์การแปลงหรือแก้ไขสคริปต์อย่างไร คุณจัดการกับการเลิกใช้วัตถุจากฐานข้อมูลอย่างไร? ใครควรรับผิดชอบส่งเสริมวัตถุตั้งแต่ระดับการพัฒนาจนถึงระดับทดสอบ? คุณประสานการเปลี่ยนแปลงจากนักพัฒนาหลายคนได้อย่างไร? คุณจัดการกับการแยกย่อยสำหรับอ็อบเจ็กต์ฐานข้อมูลที่ระบบหลายระบบใช้อย่างไร มีข้อยกเว้นใดบ้างที่สมเหตุสมผลกับกระบวนการนี้ ปัญหาด้านความปลอดภัย? ข้อมูลที่มีข้อกังวลเกี่ยวกับการยกเลิกการระบุตัวตน? …

12
ควรเขียนข้อความในปัจจุบันหรือในอดีต? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ คุณคิดว่าแบบไหนดีกว่าและใช้งานง่ายกว่ากัน? Fixed the XXX bug in YYY Fix the XXX bug in YYY Fixes the XXX bug in YYY Fixing the XXX bug in YYY โปรดระบุเหตุผลของคุณ หมายเหตุฉันขอจากมุมมองทั่วไปของคุณหมายความว่าคุณไม่ควรพยายามเชื่อมโยงสิ่งนี้กับเครื่องมือ svn / cvs หรือภาษาโปรแกรมที่คุณต้องการ แต่คิดว่ามันเป็นสิ่งที่ควร / สามารถนำไปใช้กับเครื่องมือและภาษาโปรแกรมใด ๆ

4
git: สลับสาขาโดยไม่ต้องถอดหัว
ฉันมีที่เก็บบน github ที่มีสาขาหลัก (หลัก) และสาขาสำหรับงานทดลองบางอย่าง ฉันมุ่งมั่นและผลักดันไปยังสาขาทดลองและทุกอย่างก็เรียบร้อยดี ตอนนี้ในเครื่องอื่นฉันพยายามโคลนที่เก็บของฉัน (git clone repository ) จากนั้นเปลี่ยนไปใช้สาขาทดลอง (git checkout branchchname ) แต่ทุกครั้งที่ทำสิ่งนี้หัวของฉันจะหลุดออกและฉันไม่สามารถผลักดันการเปลี่ยนแปลงของฉันได้ ผมทำอะไรผิดหรือเปล่า? ฉันรู้สึกว่าฉันคิดถึงแนวคิดพื้นฐานของคอมไพล์ แต่การอ่านเพจคนคอมไพล์แบบสุ่มไม่ได้ให้เบาะแสอะไรเลย ฉันเพิ่งเริ่มคอมไพล์ดังนั้นฉันขอโทษถ้าฉันเป็นคนงี่เง่า แต่ฉันไม่พบสิ่งใดในเอกสารที่จะช่วยให้ฉันใส่หัวกลับเข้าไปใหม่ได้ แก้ไข แนวคิดของสาขาการติดตามคือสิ่งที่ฉันขาดหายไป ตอนนี้ฉันคิดว่าแนวคิดทุกอย่างชัดเจน โดยส่วนตัวแล้วฉันพบว่าgit branch --trackไวยากรณ์นั้นใช้งานง่ายกว่าgit checkout -b branch-name origin/branch-nameไฟล์. ขอบคุณสำหรับความช่วยเหลือ!

15
.sln ควรมุ่งมั่นที่จะควบคุมแหล่งที่มาหรือไม่?
เป็นแนวทางปฏิบัติที่ดีที่สุดในการส่งไฟล์. sln ไปยังตัวควบคุมแหล่งที่มา เมื่อใดที่เหมาะสมหรือไม่เหมาะสมที่จะทำ อัปเดต คำตอบมีจุดดีหลายประการ ขอบคุณสำหรับคำตอบ!

10
คุณสามารถ "ละเว้น" ไฟล์ใน Perforce ได้หรือไม่?
บางครั้งฉันใช้คุณสมบัติ 'Reconcile Offline Work ... ' ที่พบใน P4V IDE ของ Perforce เพื่อซิงค์ไฟล์ใด ๆ ที่ฉันใช้งานอยู่ในขณะที่ตัดการเชื่อมต่อจากคลัง P4 เปิดหน้าต่างอื่นที่ทำหน้าที่เป็น 'Folder Diff' ฉันมีไฟล์ที่ไม่ต้องการเช็คอินในการควบคุมแหล่งที่มา (เช่นไฟล์ที่พบในโฟลเดอร์ bin เช่น DLLs โค้ดที่สร้างเอาต์พุตเป็นต้น) มีวิธีการกรองไฟล์ / โฟลเดอร์เหล่านั้นไม่ให้ปรากฏเป็น "ใหม่" หรือไม่ซึ่งอาจเป็นได้ เพิ่มแล้ว พวกเขามักจะเกะกะรายการไฟล์ที่ฉันสนใจจริงๆ P4 มีคุณสมบัติเทียบเท่า 'ไฟล์ละเว้น' ของ Subversion หรือไม่?

9
วิธีดำเนินการควบคุมเวอร์ชันเอกสารที่ดีขึ้นบนไฟล์ Excel และไฟล์สคีมา SQL
ฉันรับผิดชอบไฟล์ Excel และไฟล์สคีมา SQL หลายไฟล์ ฉันจะควบคุมเวอร์ชันเอกสารให้ดีขึ้นกับไฟล์เหล่านี้ได้อย่างไร ฉันต้องการทราบส่วนที่แก้ไข (ส่วนที่แตกต่างกัน) ในไฟล์เหล่านี้และเก็บเวอร์ชันทั้งหมดไว้อ้างอิง ขณะนี้ฉันกำลังต่อท้ายการประทับเวลาบนชื่อไฟล์ แต่ฉันพบว่าดูเหมือนจะไม่มีประสิทธิภาพ มีวิธีหรือแนวทางปฏิบัติที่ดีในการควบคุมเวอร์ชันเอกสารให้ดีขึ้นหรือไม่? ทางบรรณาธิการส่งไฟล์ให้ฉันทางอีเมล

2
ฉันควรเพิ่ม google-services.json (จาก Firebase) ลงในที่เก็บของฉันหรือไม่
ฉันเพิ่งลงทะเบียนกับ Firebase และฉันได้สร้างโครงการใหม่ Firebase ถามฉันเกี่ยวกับโดเมนแอปของฉันและคีย์การแก้ไขข้อบกพร่อง SHA1 ฉันป้อนรายละเอียดเหล่านี้และสร้างไฟล์ google-services.json ให้ฉันเพิ่มในรูทของโมดูลแอปของฉัน คำถามของฉันคือควรเพิ่มไฟล์. json นี้ใน repo สาธารณะ (โอเพ่นซอร์ส) เป็นสิ่งที่ควรเป็นความลับเช่นคีย์ API หรือไม่?

12
กลยุทธ์การแตกแขนงที่ดีที่สุดเมื่อทำการบูรณาการอย่างต่อเนื่อง?
กลยุทธ์การแตกแขนงที่ดีที่สุดที่จะใช้เมื่อคุณต้องการผสานรวมอย่างต่อเนื่องคืออะไร? การแตกกิ่งก้าน:พัฒนาบนลำต้นเก็บกิ่งไว้สำหรับแต่ละรุ่น การแยกคุณสมบัติ:พัฒนาคุณลักษณะแต่ละอย่างในสาขาที่แยกจากกันผสานเพียงครั้งเดียวที่เสถียร มันสมเหตุสมผลหรือไม่ที่จะใช้ทั้งสองกลยุทธ์นี้ร่วมกัน เช่นเดียวกับคุณแยกสาขาสำหรับแต่ละรุ่น แต่คุณยังแตกสาขาสำหรับคุณสมบัติขนาดใหญ่ด้วย? หนึ่งในกลยุทธ์เหล่านี้เข้ากันได้ดีขึ้นด้วยการผสานรวมอย่างต่อเนื่องหรือไม่? การใช้การรวมแบบต่อเนื่องจะสมเหตุสมผลหรือไม่เมื่อใช้ลำต้นที่ไม่เสถียร

2
ผลของการใช้กราฟต์ใน Mercurial
เมื่อเร็ว ๆ นี้มีคำถามมากมายเกี่ยวกับการข้ามการเปลี่ยนแปลงเมื่อรักษาสาขาเผยแพร่ใน Mercurial ตัวอย่างเช่น: Mercurial: การเปลี่ยนแปลงเฉพาะสาขาจะกลับมาอีกหลังจากการรวมหุ่น เหตุใด Mercurial backouts ในสาขาเดียวจึงส่งผลกระทบต่อสาขาอื่น ๆ ตั้งแต่เปิดตัวใน 2.0 ฉันเคยสงสัยเกี่ยวกับการใช้graftเพื่อหลีกเลี่ยงปัญหานี้ ให้ต้นไม้แก้ไขดังนี้: A---B---C---D---E---F---G---H---I---J Eสมมติว่าเราจำเป็นต้องสร้างสาขาที่ปล่อยข้ามการเปลี่ยนแปลงชั่วร้าย hg update -r D hg graft "F::J" ให้เรา: A---B---C---D---E---F---G---H---I---J \ --F'--G'--H'--I'--J' Q1: เกิดอะไรขึ้นที่นี่? ฉันเข้าใจว่าtransplantจะมีการสร้างแพตช์จากF::Jนั้นจึงนำไปใช้Dแต่graftมีการกล่าวว่าจะใช้การผสาน 3 ทางแทนที่จะเป็นแพตช์ แล้ว ....... ทำงานอย่างไร? ทำไมถึงดีขึ้น? ให้บอกว่าตอนนี้ฉันแก้ไขEและรวมเข้ากับสาขาการเผยแพร่ของฉัน --E2----------------- / \ A---B---C---D---E---F---G---H---I---J---M1 \ \ --F'--G'--H'--I'--J'---------M2-- M1 เป็นการผสานแบบตรง ไม่มีอะไรพิเศษที่นั่น M2 …

5
ใช้ gitignore เพื่อละเว้น (แต่ไม่ลบ) ไฟล์
ฉันมีไดเร็กทอรี tmp ใน git repo ของฉันฉันต้องการยังคงมีอยู่ แต่ถูกเพิกเฉย ฉันเพิ่มมันเข้าไป.gitignoreแต่git statusยังคงบอกฉันเกี่ยวกับการเปลี่ยนแปลงไฟล์ในไดเร็กทอรีนั้น ฉันลองgit rm -r --cachedแล้ว แต่จะลบมันออกจาก repo ระยะไกล ฉันจะหยุดติดตามการเปลี่ยนแปลงในไดเรกทอรีนี้ได้อย่างไร แต่ยังคงอนุญาตให้มีอยู่ ฉันต้องทำสิ่งนี้สำหรับไฟล์ 1 ไฟล์ แต่การเปลี่ยนแปลงจะปรากฏขึ้นgit statusหลังจากเข้า.gitignoreมาแล้ว ฉันควรทำอย่างไรดี?

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

6
git ไม่คำนึงถึงขนาดตัวพิมพ์หรือไม่?
ในความมุ่งมั่นแรกของบางส่วนของฉันเรียกว่ามันถูกเขียนขึ้นต้นด้วยตัวอักษรทุนแล้วฉันเปลี่ยนไป_Electronics_electronics Git ภายใต้ cygwin เพิกเฉยต่อกรณีหลังจากที่ยอมรับชื่อใหม่ดังนั้นฉันจึงเปลี่ยนชื่อด้วยมือใน repo เป้าหมาย ตอนนี้บางครั้งมันก็เปลี่ยน_electronicsบางส่วนที่_Electronicsยืนยัน ฉันทำอะไรผิด?

19
คุณจัดการกับไฟล์คอนฟิกูเรชันในซอร์สคอนโทรลอย่างไร?
สมมติว่าคุณมีเว็บแอปทั่วไปและมีการกำหนดค่าไฟล์อย่างไรก็ตาม นักพัฒนาทุกคนที่ทำงานในโครงการจะมีเวอร์ชันเดียวสำหรับกล่องสำหรับผู้พัฒนาของพวกเขาจะมีเวอร์ชัน dev, prod และ stage คุณจัดการกับสิ่งนี้อย่างไรในการควบคุมแหล่งที่มา? ไม่เช็คอินไฟล์นี้เลยตรวจสอบด้วยชื่ออื่นหรือทำอะไรแปลก ๆ ไปพร้อมกัน?
97 svn  git  version-control  cvs 

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