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

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

14
ฉันจะลบ TFS Bindings ได้อย่างไร
ฉันมีทางออกที่มีโครงการเป็นจำนวนมาก ฉันต้องการลบการผูกการควบคุมแหล่งข้อมูลอย่างสมบูรณ์ฉันจะทำสิ่งนี้ได้อย่างไร อัปเดต: สิ่งที่ฉันต้องการทำจริงๆคือย้ายโซลูชันเดียวและโครงการจาก TFS 2005 -> 2008 นั่นคือเหตุผลที่ฉันลบการเชื่อมโยงมีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่

22
Mercurial สำหรับผู้เริ่มต้น: คู่มือปฏิบัติขั้นสุดท้าย
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ แรงบันดาลใจจากGit สำหรับผู้เริ่มต้น: คู่มือปฏิบัติที่ชัดเจน นี่คือการรวบรวมข้อมูลเกี่ยวกับการใช้ Mercurial สำหรับผู้เริ่มต้นเพื่อการใช้งานจริง ระดับเริ่มต้น - โปรแกรมเมอร์ที่มีการควบคุมแหล่งสัมผัสโดยไม่เข้าใจเป็นอย่างดี ในทางปฏิบัติ - ครอบคลุมสถานการณ์ที่ผู้ใช้ส่วนใหญ่มักพบเจอ - การสร้างที่เก็บการแยกการผสานการดึง / การผลักจาก / สู่ที่เก็บระยะไกลเป็นต้น หมายเหตุ : อธิบายวิธีทำบางสิ่งให้สำเร็จแทนที่จะทำบางสิ่ง จัดการกับหนึ่งคำถามต่อคำตอบ ตอบอย่างชัดเจนและรัดกุมที่สุด แก้ไข / ขยายคำตอบที่มีอยู่แทนที่จะสร้างคำตอบใหม่ในหัวข้อเดียวกัน โปรดระบุลิงก์ไปยังMercurial wikiหรือHG Bookสำหรับผู้ที่ต้องการเรียนรู้เพิ่มเติม คำถาม: การติดตั้ง / การตั้งค่า จะติดตั้ง Mercurial อย่างไร วิธีการตั้งค่า Mercurial คุณจะสร้างโครงการ / พื้นที่เก็บข้อมูลใหม่ได้อย่างไร คุณจะกำหนดค่าให้ละเว้นไฟล์ได้อย่างไร? ทำงานกับรหัส คุณจะได้รับรหัสล่าสุดได้อย่างไร คุณจะตรวจสอบรหัสได้อย่างไร คุณยอมรับการเปลี่ยนแปลงอย่างไร …

15
ฉันจะค้นหาความมุ่งมั่นต่อไปในคอมไพล์ได้อย่างไร (เด็ก / เด็กอ้างอิง)
ref^หมายถึงการคอมมิชชันก่อนหน้าrefนี้สิ่งที่เกี่ยวกับการรับคอมมิชชันหลังจาก ref ? ตัวอย่างเช่นหากฉันgit checkout 12345จะตรวจสอบการส่งมอบครั้งต่อไปได้อย่างไร ขอบคุณ PS ใช่ git นั้นเป็น DAG ตัวชี้โหนดโครงสร้างต้นไม้ ฉันจะค้นหาความมุ่งมั่นหลังจากนี้ได้อย่างไร

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

30
จะทำอย่างไรกับไฟล์ต้นฉบับ C ++ 11,000 บรรทัด
ดังนั้นเราจึงมีไฟล์ต้นฉบับขนาดใหญ่ (มีขนาด 11,000 บรรทัดหรือไม่) ไฟล์ mainmodule.cpp ในโครงการของเราและทุกครั้งที่ฉันต้องแตะมันฉันประจบประแจง เนื่องจากไฟล์นี้มีขนาดกลางและใหญ่มากจึงมีการสะสมรหัสมากขึ้นเรื่อย ๆ และฉันไม่สามารถนึกถึงวิธีที่ดีที่จะทำให้มันเริ่มหดตัวลง ไฟล์ถูกใช้และเปลี่ยนแปลงอย่างแข็งขันในหลายเวอร์ชันการบำรุงรักษา (> 10) ของผลิตภัณฑ์ของเราดังนั้นจึงเป็นการยากที่จะปรับโครงสร้างใหม่ ถ้าฉันจะแยก "ง่ายๆ" ให้พูดเพื่อเริ่มต้นเป็น 3 ไฟล์จากนั้นการรวมการเปลี่ยนแปลงกลับจากเวอร์ชันการบำรุงรักษาจะกลายเป็นฝันร้าย และถ้าคุณแบ่งไฟล์ด้วยประวัติที่ยาวนานและเต็มไปด้วยเช่นนั้นการติดตามและตรวจสอบการเปลี่ยนแปลงเก่า ๆ ในSCCประวัติศาสตร์นั้นจะยากขึ้นมาก ไฟล์นั้นมี "คลาสหลัก" (การมอบหมายงานภายในและการประสานงานหลัก) ของโปรแกรมของเราดังนั้นทุกครั้งที่มีการเพิ่มฟีเจอร์มันจะมีผลกับไฟล์นี้และทุกครั้งที่มันเติบโต :-( คุณจะทำอะไรในสถานการณ์นี้ มีแนวคิดใดบ้างเกี่ยวกับวิธีย้ายฟีเจอร์ใหม่ไปยังไฟล์ต้นฉบับที่แยกต่างหากโดยไม่ทำให้SCCเวิร์กโฟลว์ยุ่งเหยิง? (หมายเหตุเกี่ยวกับเครื่องมือ: เราใช้ C ++ ด้วยVisual Studio; เราใช้AccuRevเป็นSCCแต่ฉันคิดว่าประเภทของSCCไม่สำคัญที่นี่; เราใช้Araxis Mergeเพื่อทำการเปรียบเทียบจริงและการรวมไฟล์)

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

1
ความหมายของการรีเซ็ต git คืออะไร --hard origin / master?
ฉันทำgit pullและได้รับข้อผิดพลาด: ไฟล์แผนผังการทำงานต่อไปนี้จะถูกเขียนทับโดยการรวม ... โปรดย้ายหรือลบออกก่อนที่จะทำการผสาน เพื่อแก้ไขปัญหานี้ฉันทำสิ่งต่อไปนี้: git fetch git reset --hard origin/master ตอนนี้เมื่อฉันทำgit pullมันบอกทุกอย่างที่ทันสมัย ฉันต้องการรู้ว่าจะเกิดอะไรขึ้นเมื่อฉันเรียกใช้คำสั่งเหล่านี้ ฉันรู้ว่าgit fetchดึงการเปลี่ยนแปลงจาก repo ระยะไกลโดยไม่รวมเข้ากับ repo ในพื้นที่ของฉัน ความหมายของgit reset --hard origin/masterอะไร มันทำงานยังไง?

9
ฉันจะสร้าง Git ได้อย่างไรในอดีต?
ฉันกำลังแปลงทุกอย่างเป็น Git เพื่อการใช้งานส่วนตัวของฉันเองและฉันพบไฟล์รุ่นเก่าในที่เก็บอยู่แล้ว ฉันจะยอมรับประวัติโดยเรียงตามลำดับที่ถูกต้องตาม "วันที่แก้ไขไฟล์" ดังนั้นฉันจึงมีประวัติที่ถูกต้องของไฟล์? ฉันบอกว่าบางอย่างเช่นนี้จะทำงาน: git filter-branch --env-filter="GIT_AUTHOR_DATE=... --index-filter "git commit path/to/file --date " --tag-name-filter cat -- --all

9
ฉันจะสลับไปยังสาขาอื่นในคอมไพล์ได้อย่างไร?
บรรทัดใดในบรรทัดเหล่านี้ที่ถูกต้อง git checkout 'another_branch' หรือ git checkout origin 'another_branch' หรือ git checkout origin/'another_branch' และความแตกต่างระหว่างเส้นเหล่านี้คืออะไร?

11
Git - ปิดการคอมมิทได้อย่างไร?
ฉันใหม่กับคอมไพล์และเรียนรู้จาก PDF ฉันเพิ่งดำเนินการคำสั่ง$ git commitและจะเปิดตัวแก้ไขใหม่ แต่ฉันพยายามปิดตัวแก้ไขคอมมิทใหม่ ทำอย่างไร ฉันใช้คอมไพล์บน windows

8
วิธีดูตัวอย่าง git-pull โดยไม่ดึงข้อมูลออกมา?
เป็นไปได้ไหม โดยทั่วไปมีพื้นที่เก็บข้อมูลระยะไกลที่ฉันดึงใช้เพียง: git pull ตอนนี้ฉันต้องการดูตัวอย่างว่าการเปลี่ยนแปลงนี้จะเปลี่ยน (ส่วนต่าง) โดยไม่แตะอะไรข้างฉัน เหตุผลคือสิ่งที่ฉันกำลังดึงอาจจะไม่ "ดี" และฉันต้องการให้คนอื่นแก้ไขก่อนที่จะทำให้ที่เก็บของฉัน "สกปรก"

26
ความถี่ในการส่งมอบการเปลี่ยนแปลงการควบคุมแหล่งที่มา? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันควรเปลี่ยนแปลงการควบคุมแหล่งข้อมูลบ่อยแค่ไหน? หลังจากทุกคุณสมบัติขนาดเล็กหรือเฉพาะสำหรับคุณสมบัติขนาดใหญ่? ฉันกำลังทำงานในโครงการและมีคุณสมบัติระยะยาวที่จะใช้ ขณะนี้ฉันยอมรับหลังจากทำงานทุกชิ้นนั่นคือคุณสมบัติย่อยทั้งหมดที่ใช้งานและแก้ไขข้อผิดพลาด ฉันยังทำหลังจากฉันเพิ่มการทดสอบใหม่สำหรับคุณสมบัติบางอย่างหลังจากค้นพบข้อบกพร่อง อย่างไรก็ตามฉันกังวลเกี่ยวกับรูปแบบนี้ ในวันทำงานที่มีประสิทธิผลฉันอาจทำ 10 ข้อ เมื่อฉันใช้การโค่นล้มการกระทำเหล่านี้ส่งผลกระทบต่อพื้นที่เก็บข้อมูลทั้งหมดดังนั้นฉันจึงสงสัยว่ามันเป็นวิธีปฏิบัติที่ดีในการสร้างจำนวนมากหรือไม่?

7
git - ข้ามความมุ่งมั่นเฉพาะเมื่อรวม
ฉันใช้ Git มาประมาณหนึ่งปีแล้วและคิดว่ามันยอดเยี่ยม แต่ฉันเพิ่งเริ่มโครงการรุ่นที่สองและเริ่มสาขาใหม่สำหรับมัน ฉันกำลังดิ้นรนเล็กน้อยกับวิธีที่ดีที่สุดในการจัดการสิ่งต่าง ๆ ที่กำลังจะเกิดขึ้น ฉันมีสองสาขาเรียกว่า master10 (สำหรับ v1) และ master20 (สำหรับ v2) ฉันทำการแก้ไขข้อบกพร่องใน v1 บน branch master10 และพัฒนาสิ่งใหม่ ๆ ของ master20 เมื่อใดก็ตามที่ฉันจะทำให้การแก้ไขข้อผิดพลาดผมผสานเข้า v2 git merge master10โดยการตรวจสอบและการทำ จนถึงตอนนี้ดีมาก อย่างไรก็ตามตอนนี้ฉันได้ทำการเปลี่ยนแปลงใน v1 ที่ฉันไม่ต้องการใน v2 แต่ฉันต้องการรวมการแก้ไขข้อบกพร่องอื่น ๆ ต่อไป ฉันจะบอก Git ให้ข้ามการกระทำนั้น ๆ (หรือช่วงของการกระทำ) ได้อย่างไร แต่การก้าวไปข้างหน้าฉันยังต้องการรวมการแก้ไขข้อบกพร่องอื่น ๆ ฉันคิดว่าgit rebaseอาจเป็นสิ่งที่ฉันต้องการ แต่อ่านหมอและหัวของฉันเกือบจะระเบิด ฉันคิดว่าสิ่งที่ฉันต้องการคือสิ่งที่คล้ายกับคำสั่ง "git …

10
การทำงานร่วมกันของคอมไพล์ด้วย Mercurial Repository
ฉันใช้ GIT บน Mac พูดพอแล้ว. ฉันมีเครื่องมือฉันมีประสบการณ์ และฉันต้องการใช้มันต่อไป ไม่มีสงครามที่นี่ ... ปัญหามักเกิดจากการทำงานร่วมกัน คนส่วนใหญ่ใช้ SVN ซึ่งยอดเยี่ยมสำหรับฉัน Git SVN ทำงานนอกกรอบและเป็นทางออกที่ไม่จีบ ผู้คนสามารถใช้ SVN ต่อไปได้อย่างมีความสุขและฉันจะไม่เสียขั้นตอนการทำงานและไม่มีเครื่องมือ ตอนนี้ ... พวกบางคนมาพร้อมกับ Mercurial ดีสำหรับพวกเขาพวกเขามีเหตุผล แต่ฉันไม่สามารถหา GIT HG นอกสถานที่ได้เลย ฉันไม่ต้องการเปลี่ยนมาใช้ HG แต่ฉันยังต้องทำงานร่วมกับที่เก็บของพวกเขา พวกคุณคนใดรู้วิธีแก้ปัญหาง่ายๆสำหรับเรื่องนี้?

3
git-svn: ฉันจะสร้างสาขา svn ใหม่ผ่าน git ได้อย่างไร
ฉันมีที่เก็บ git ซึ่งติดตามที่เก็บ svn --stdlayoutผมโคลนโดยใช้ ฉันสร้างสาขาท้องถิ่นใหม่ผ่าน git checkout -b foobar ตอนนี้ฉันต้องการให้สาขานี้สิ้นสุด…/branches/foobarในที่เก็บ svn ฉันจะทำอย่างไรเกี่ยวกับเรื่องนั้น? (snipped ข้อความสืบสวนจำนวนมากดูประวัติคำถามหากคุณสนใจ)

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