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

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


7
ลบชุดการเปลี่ยนแปลงในเครื่องทั้งหมดและเปลี่ยนกลับเป็นโครงสร้าง
ฉันใช้ Mercurial และฉันมีปัญหาในท้องถิ่นอย่างมากโดยมีสามหัว ฉันไม่สามารถผลักดันได้และฉันแค่ต้องการลบการเปลี่ยนแปลงในเครื่องทั้งหมดของฉันและยอมรับและเริ่มต้นใหม่อีกครั้งด้วยรหัสที่สะอาดหมดจดและประวัติที่สะอาด กล่าวอีกนัยหนึ่งฉันต้องการลงท้ายด้วย (a) รหัสในเครื่องเดียวกันกับที่มีอยู่ในส่วนปลายของสาขาระยะไกลและ (b) ไม่มีประวัติของการกระทำใด ๆ ในท้องถิ่น ฉันรู้ว่าhg update -Cเขียนทับการเปลี่ยนแปลงในเครื่อง แต่ฉันจะลบคอมมิตในเครื่องได้อย่างไร? เพื่อความชัดเจนฉันไม่มีความสนใจที่จะรักษางานใด ๆ ที่ฉันทำในท้องถิ่น ฉันต้องการวิธีที่ง่ายที่สุดในการเปลี่ยนกลับไปใช้การชำระเงินในท้องถิ่นที่สะอาด

30
การเช็คอินของรหัส "แสดงความคิดเห็นออก" [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ โอเคนี่คือสิ่งที่ทำให้เกิดความขัดแย้งในงานปัจจุบันของฉันและฉันไม่คาดคิดเลยจริงๆ การพัฒนาซอฟต์แวร์ภายในองค์กรเป็นแนวคิดใหม่ที่นี่และฉันได้ร่างหลักเกณฑ์การเขียนโค้ดฉบับร่างแรก ฉันได้เสนอว่าไม่ควรตรวจสอบโค้ด "แสดงความคิดเห็น" ในที่เก็บ เหตุผลที่ฉันได้ระบุไว้ก็คือที่เก็บรักษาประวัติทั้งหมดของไฟล์ หากคุณกำลังลบโค้ดที่ใช้งานได้ให้ลบออกทั้งหมด ที่เก็บจะเก็บการเปลี่ยนแปลงของคุณเพื่อให้ง่ายต่อการดูว่ามีการเปลี่ยนแปลงอะไรบ้าง สิ่งนี้ทำให้เกิดความขัดแย้งเนื่องจากนักพัฒนารายอื่นเชื่อว่าการใช้เส้นทางนี้ จำกัด เกินไป นักพัฒนาซอฟต์แวร์รายนี้ต้องการแสดงความคิดเห็นเกี่ยวกับโค้ดที่เขากำลังดำเนินการอยู่ แต่ยังไม่สมบูรณ์ จากนั้นรหัสนี้จะไม่เคยถูกเช็คอินมาก่อนและจะไม่ถูกบันทึกไว้ที่ใด เรากำลังจะใช้ TFS ดังนั้นฉันจึงแนะนำว่าการเก็บข้อมูลการเปลี่ยนแปลงจะเป็นวิธีแก้ปัญหาที่ถูกต้องที่สุด อย่างไรก็ตามไม่ได้รับการยอมรับเนื่องจากเขาต้องการตรวจสอบการเปลี่ยนแปลงบางส่วนที่อาจนำไปใช้หรือไม่ก็ได้ ในที่สุดเราก็ต้องการไปถึงจุดที่เราใช้ประโยชน์จาก Continuous Integration อย่างเต็มที่และปรับใช้กับเว็บเซิร์ฟเวอร์สำหรับการพัฒนาโดยอัตโนมัติ ขณะนี้ยังไม่มีเวอร์ชันพัฒนาของเว็บเซิร์ฟเวอร์หรือเซิร์ฟเวอร์ฐานข้อมูล แต่จะมีการเปลี่ยนแปลงในไม่ช้า อย่างไรก็ตามคุณมีความคิดอย่างไร? คุณเชื่อว่าโค้ด "แสดงความคิดเห็น" มีประโยชน์ในที่เก็บหรือไม่? ฉันสนใจที่จะรับฟังความคิดเห็นจากผู้อื่นในหัวข้อนี้ แก้ไข: เพื่อความชัดเจนเราไม่ใช้สาขาส่วนตัว ถ้าเราทำเช่นนั้นฉันจะบอกว่าทำในสิ่งที่คุณต้องการกับสาขาส่วนตัวของคุณ แต่ไม่เคยรวมรหัสที่แสดงความคิดเห็นกับลำต้นหรือสาขาที่ใช้ร่วมกัน แก้ไข: ไม่มีเหตุผลที่ถูกต้องที่เราไม่ใช้ส่วนตัวหรือต่อสาขาของผู้ใช้ ไม่ใช่แนวคิดที่ฉันไม่เห็นด้วย เรายังไม่ได้ตั้งค่าแบบนั้น บางทีนั่นอาจเป็นจุดศูนย์กลางในที่สุด ตอนนี้เราใช้ชั้นวางของ TFS


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

3
'git pull origin mybranch' ออกจาก mybranch N ในท้องถิ่นที่กระทำก่อนต้นกำเนิด ทำไม?
ฉันเพิ่งสังเกตเห็นบางอย่างแปลก ๆgit pullซึ่งฉันไม่เข้าใจ เมื่อวันศุกร์ฉันทำงานในสาขาในพื้นที่ mybranchขอเรียกว่า ก่อนที่จะออกจากสำนักงานฉันผลักไปยังต้นกำเนิด (ซึ่งเป็น repo GitHub git push origin mybranchของฉัน): เมื่อวานที่บ้านฉันpullแก้ไขสาขาของฉันลงในแล็ปท็อปของฉันทำการเข้ารหัสเพิ่มเติมจากนั้นจึงส่งการเปลี่ยนแปลงของฉันกลับไปที่ github (ต้นทาง) ตอนนี้ฉันกลับมาทำงานอีกครั้งและพยายามดึงการเปลี่ยนแปลงจากเมื่อวานไปยังเครื่องทำงานของฉัน (ฉันไม่ได้เปลี่ยนแปลงอะไรเลยใน repo ท้องถิ่นของที่ทำงานในช่วงสุดสัปดาห์): git pull origin mybranch ที่ทำให้เกิดการผสานไปข้างหน้าอย่างรวดเร็วซึ่งก็ใช้ได้ จากนั้นฉันก็ทำgit statusและมันบอกว่า: # On branch mybranch # Your branch is ahead of 'origin/mybranch' by 6 commits. # nothing to commit (working directory clean) ฮะ? จะเป็นไปได้อย่างไรที่จะกระทำ …

3
คืนสาขารวมถึงลูก ๆ ทุกคน
ฉันมีโทโพโลยีที่เก็บ Git ต่อไปนี้: A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) โดยการเปลี่ยนfeatureสาขาใหม่ฉันคาดว่าจะสร้างฐานทรีย่อยใหม่ทั้งหมด (รวมถึงสาขาย่อย): $ git rebase feature master A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) อย่างไรก็ตามนี่คือผลลัพธ์ที่แท้จริง: C' (feature) / A-B-F (master) \ D (feature-a) \ / C \ E (feature-b) ฉันรู้ว่าฉันสามารถแก้ไขได้อย่างง่ายดายด้วยตนเองโดยดำเนินการ: …

17
ฉันจะย้อนกลับการเช็คอิน TFS ได้อย่างไร
ฉันต้องการย้อนกลับการเปลี่ยนแปลงที่เพิ่งทำใน TFS ในการโค่นล้มนี่ค่อนข้างตรงไปตรงมา อย่างไรก็ตามดูเหมือนว่าจะปวดหัวอย่างไม่น่าเชื่อใน TFS: ตัวเลือกที่ 1: รับเวอร์ชันก่อนหน้า รับเวอร์ชันก่อนหน้าของแต่ละไฟล์ด้วยตนเอง ตรวจสอบการแก้ไข ล้มเหลว - การชำระเงิน (ใน VS2008) บังคับให้ฉันต้องดาวน์โหลดเวอร์ชันล่าสุด ตัวเลือกที่ 2: รับ TFS Power Tools ดาวน์โหลด Team Foundation Power Tools ออกคำสั่งย้อนกลับจากบรรทัด cmd ล้มเหลว - จะไม่ทำงานหากมีการเปลี่ยนแปลงอื่น ๆ ที่รอดำเนินการ ตัวเลือกที่ 3: เลิกทำการเปลี่ยนแปลงด้วยตนเอง เลิกทำการเปลี่ยนแปลงของฉันด้วยตนเองจากนั้นยอมรับชุดการเปลี่ยนแปลงใหม่ คำถาม ฉันจะย้อนกลับไปยังชุดการเปลี่ยนแปลงก่อนหน้าใน TFS ได้อย่างไร

6
เหตุใดการแตกแขนงและการรวมเข้าด้วยกันใน Mercurial จึงง่ายกว่าการโค่นล้ม?
การจัดการการผสานหลายรายการเข้ากับสาขาใน Subversion หรือ CVS เป็นเพียงหนึ่งในสิ่งเหล่านั้นที่ต้องมีประสบการณ์ การติดตามสาขาและการรวมใน Mercurial นั้นง่ายกว่ามาก (และอาจเป็นระบบกระจายอื่น ๆ ) แต่ฉันไม่รู้ว่าทำไม มีใครรู้บ้างไหม? คำถามของฉันเกิดจากข้อเท็จจริงที่ว่าด้วย Mercurial คุณสามารถใช้วิธีปฏิบัติในการทำงานที่คล้ายกับที่เก็บส่วนกลางของ Subversions / CVSs และทุกอย่างจะทำงานได้ดี คุณสามารถทำการผสานหลายรายการในสาขาเดียวกันและคุณไม่ต้องใช้เศษกระดาษที่ไม่มีที่สิ้นสุดพร้อมหมายเลขคอมมิตและชื่อแท็ก ฉันรู้ว่าเวอร์ชันล่าสุดของ Subversion มีความสามารถในการติดตามการผสานไปยังสาขาดังนั้นคุณจึงไม่ต้องยุ่งยากในระดับเดียวกัน แต่เป็นการพัฒนาที่ยิ่งใหญ่และสำคัญในฝั่งของพวกเขาและมันก็ยังไม่ทำทุกอย่างที่ทีมพัฒนาทำได้ ชอบที่จะทำ ต้องมีความแตกต่างพื้นฐานในวิธีการทำงานทั้งหมด


7
การลบสาขา SVN
ฉันสร้างสาขาของโปรเจ็กต์ SVN ที่เรียกว่า 'คุณสมบัติ' และตอนนี้เมื่อใดก็ตามที่ฉันพยายามอัปเดตโปรเจ็กต์ดังกล่าวมันจะนำโฟลเดอร์คุณสมบัติมาด้วยซึ่งมีสำเนาของโปรเจ็กต์อื่นจากสาขา มีวิธีลบสาขาออกจากที่เก็บอย่างสมบูรณ์เพื่อไม่ให้สิ่งนี้เกิดขึ้นอีกหรือไม่?

4
"เปรียบเทียบกับเวอร์ชันพื้นที่ทำงาน" และ "เปรียบเทียบกับเวอร์ชันล่าสุด" แตกต่างกันอย่างไร
ฉันใช้ Visual Studio 2012 กับ TFS เมื่อใดก็ตามที่ฉันต้องการเปรียบเทียบไฟล์ที่เช็คเอาต์ฉันมีสองตัวเลือกให้เลือก: เปรียบเทียบกับเวอร์ชันพื้นที่ทำงาน เปรียบเทียบกับเวอร์ชันล่าสุด อะไรคือความแตกต่าง ?

5
git gc --aggressive vs git repack
ฉันกำลังมองหาวิธีลดขนาดของที่gitเก็บ การค้นหาทำให้ฉันgit gc --aggressiveเกือบตลอดเวลา ฉันยังได้อ่านว่านี่ไม่ใช่แนวทางที่ต้องการ ทำไม? ฉันควรระวังgc --aggressiveอะไรบ้างหากกำลังวิ่ง git repack -a -d --depth=250 --window=250gc --aggressiveขอแนะนำมากกว่า ทำไม? วิธีการที่ไม่repackลดขนาดของพื้นที่เก็บข้อมูลได้หรือไม่ นอกจากนี้ฉันยังไม่ค่อยชัดเจนเกี่ยวกับธง--depthและ--window. ฉันควรเลือกอะไรระหว่างgcกับrepack? ฉันควรใช้เมื่อใดgcและrepack?

5
เวลาที่เหมาะสมในการลบสาขาฟีเจอร์คอมไพล์คือเมื่อใด
ฉันไม่ต้องการที่จะลงเอยด้วยสาขาคุณลักษณะ 82 สาขาที่ห้อยอยู่รอบ ๆดังนั้นฉันจึงสงสัยว่าข้อเสียที่อาจเกิดขึ้นคืออะไรเพียงแค่ลบสาขาคุณลักษณะทันทีที่ฉันรวมเข้าด้วยกัน เวิร์กโฟลว์: git co -b feat-xyz hack hack git ci hack some more git ci git co master git merge feat-xyz smoke test git br -d feat-xyz ปัญหาใด ๆ ที่นี่?

4
GitHub สามารถแสดงประวัติการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์เดียวในรูปแบบแพตช์ได้หรือไม่?
หากคุณทำเช่นgit log --patch -- path/to/fileนั้นคุณจะได้รับประวัติของไฟล์พร้อมกับความแตกต่างของการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับแต่ละคอมมิตดังนี้: $ git log --patch -- git-rebase.sh commit 20351bb06bf4d32ef3d1a6849d01636f6593339f Author: Ramkumar Ramachandra <artagnon@gmail.com> Date: Sat Jun 15 18:43:26 2013 +0530 rebase: use 'git stash store' to simplify logic rebase has no reason to know about the implementation of the stash. In the case when applying the …

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