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

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

7
เหตุใดจึงมี "แหล่งกำเนิด / หัวหน้า" ปรากฏขึ้นเมื่อเรียกใช้ "git branch -r"
เมื่อคุณเรียกgit branch -rว่าทำไมไม่พ้นมันรายการorigin/HEAD? ตัวอย่างเช่นมี repo ระยะไกลบน GitHub พูดด้วยสองสาขา: ต้นแบบและคุณสมบัติที่ยอดเยี่ยม ถ้าฉันทำgit cloneเพื่อคว้ามันและจากนั้นเข้าไปในไดเรกทอรีใหม่ของฉันและแสดงรายการสาขาฉันเห็นสิ่งนี้: $ git branch -r origin/HEAD origin/master origin/awesome-feature หรือลำดับอะไรก็ตามที่มันจะอยู่ใน (อัลฟาฉันแกล้งทำตัวอย่างนี้เพื่อรักษาตัวตนของความลับ repo ผู้บริสุทธิ์) ดังนั้นHEADธุรกิจคืออะไร มันเป็นสิ่งที่คนสุดท้ายที่จะpushมีการHEADชี้เมื่อพวกเขาผลักดัน? นั่นจะไม่เป็นสิ่งที่พวกเขาpushแก้ไขหรือไม่ HEADย้ายไปรอบ ๆ ... ทำไมฉันถึงสนใจว่ามีใครบางคนHEADชี้ไปที่เครื่องอื่นหรือไม่? ฉันเพิ่งได้รับการจัดการเกี่ยวกับการติดตามระยะไกลและเช่นนี้จึงเป็นหนึ่งในความสับสนที่เอ้อระเหย ขอบคุณ! แก้ไข: ฉันอยู่ภายใต้ความประทับใจที่ repos ระยะไกลโดยเฉพาะ (เช่น GitHub ที่ไม่มีใครจะ ssh และทำงานกับรหัสนั้น แต่เพียงดึงหรือผลักดัน ฯลฯ ) ไม่ได้และไม่ควรมี HEAD เพราะมีโดยทั่วไป ไม่มีสำเนาทำงาน ไม่ใช่เหรอ

17
การตรวจสอบประวัติของไฟล์ที่ถูกลบ
หากฉันลบไฟล์ในการโค่นล้มฉันจะดูประวัติและเนื้อหาได้อย่างไร ถ้าฉันพยายามที่จะทำsvn catหรือsvn logบนไฟล์ที่ไม่มีอยู่ก็บ่นว่าไฟล์ไม่มีอยู่ นอกจากนี้หากฉันต้องการที่จะกู้คืนไฟล์ฉันควรsvn addจะกลับมา? (ฉันถามเฉพาะเกี่ยวกับการโค่นล้ม แต่ฉันก็อยากจะได้ยินเกี่ยวกับวิธีที่ Bazaar, Mercurial และ Git จัดการกับกรณีนี้ด้วย)

5
คุณจะผลักดันคอมไพล์ท้องถิ่นบางรายการของคุณได้อย่างไร
สมมติว่าฉันมี 5 ข้อผูกพันในท้องถิ่น ฉันต้องการเพียงแค่ 2 ของพวกเขาไปที่ repo ส่วนกลาง (ใช้เวิร์กโฟลว์สไตล์ SVN) ฉันจะทำสิ่งนี้ได้อย่างไร สิ่งนี้ไม่ทำงาน: git checkout HEAD~3 #set head to three commits ago git push #attempt push from that head ที่จบลงด้วยการผลักดันทั้ง 5 กระทำในท้องถิ่น ฉันคิดว่าฉันสามารถทำการ git reset เพื่อเลิกทำการคอมมิชชันของฉันตามด้วย git stash แล้ว git push - แต่ฉันได้รับข้อความที่เขียนและการจัดระเบียบไฟล์แล้วและฉันไม่ต้องการทำซ้ำ ฉันรู้สึกว่าธงบางอันผ่านไปเพื่อผลักหรือรีเซ็ตจะได้ผล ถ้ามันช่วยได้นี่คือคอมไพล์ของฉัน [ramanujan:~/myrepo/.git]$cat config [core] repositoryformatversion = 0 …

8
Git clone / ดึงการแช่แข็งอย่างต่อเนื่องที่“ เก็บคีย์ไว้ในแคช?”
ฉันพยายามโคลน repo จากบัญชี BitBucket ของฉันไปยังแล็ปท็อป Windows 10 ของฉัน (ใช้ GitBash) ฉันทำตามขั้นตอนทั้งหมดที่จำเป็นในการเชื่อมต่อเรียบร้อยแล้ว (ตั้งค่าคีย์ SSH ของฉันได้รับการยืนยันโดย SSHing สำเร็จแล้ว git@bitbucket.org ฯลฯ ) อย่างไรก็ตามเมื่อใดก็ตามที่ฉันพยายามโคลน repo พรอมต์จะวางสายอย่างต่อเนื่องหลังจากยืนยันว่าฉันต้องการแคชคีย์ของ Bitbucket User@Laptop MINGW64 /C/Repos $ git clone git@bitbucket.org:mygbid/test.git Cloning into 'test'... The server's host key is not cached in the registry. You have no guarantee that the server …

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

5
ควรละเว้นไฟล์ * .xccheckout ใน Xcode5 ภายใต้ VCS หรือไม่
Apple ได้เปิดตัวไฟล์ประเภทที่เกี่ยวข้องกับโครงการใหม่ใน Xcode 5: "xccheckout" ไฟล์นี้อยู่ในไดเรกทอรี ".xcodeproj / project.xcworkspace / xcshareddata /" และดูเหมือนว่าเกี่ยวข้องกับระบบควบคุมเวอร์ชันของโครงการ ไฟล์ตัวอย่างอยู่ที่นี่: http://pastebin.com/5EP63iRa ฉันคิดว่าไฟล์ประเภทนี้ควรถูกละเว้นใน VCS แต่ฉันไม่แน่ใจ ดังนั้นนี่คือคำถาม: ควรละเว้น "xccheckout" หรือไม่ วัตถุประสงค์ของมันคืออะไร?

8
svn: แทนที่ trunk ด้วย branch
วิธีที่ดีที่สุดในการทำให้หนึ่งในสาขาของพื้นที่เก็บข้อมูลการโค่นล้มเป็นลำตัวใหม่คืออะไร? มีการเขียนซ้ำครั้งใหญ่สำหรับระบบทั้งหมด: สิ่งต่าง ๆ ถูกย้ายไปมาใหม่เขียนใหม่แทนที่นำออกเปลี่ยนชื่อ ฯลฯ รหัสที่เขียนใหม่นั้นได้รับการทดสอบแล้วและพร้อมที่จะแทนที่ลำต้นเก่า โดยทั่วไปการฉีดยาเก่า (Trunk 5) จะถูกติดแท็กและจะสิ้นสุดที่นี่ สาขาที่เขียนใหม่ (สาขา 6) จะกลายเป็นฉีดใหม่ (Trunk 7): Trunk (1) -> Trunk (2) -> Trunk (5) -> × + -> Trunk ใหม่ (7) \ \ | ส้อมรวม ??? \ \ | + -> สาขา (3) -> สาขา (4) -> สาขา (6) …

13
การควบคุม R และเวอร์ชั่นสำหรับนักวิเคราะห์ข้อมูลเดี่ยว
นักวิเคราะห์ข้อมูลหลายคนที่ฉันเคารพใช้การควบคุมเวอร์ชัน ตัวอย่างเช่น: http://github.com/hadley/ ดูความคิดเห็นในhttp://permut.wordpress.com/2010/04/21/revision-control-statistics-bleg/ อย่างไรก็ตามฉันกำลังประเมินว่าการใช้ระบบควบคุมเวอร์ชันเช่น git จะคุ้มค่าหรือไม่ ภาพรวมโดยย่อ: ฉันเป็นนักวิทยาศาสตร์สังคมที่ใช้ R เพื่อวิเคราะห์ข้อมูลสำหรับงานวิจัย ปัจจุบันฉันไม่ได้ผลิตแพ็คเกจ R โดยทั่วไปรหัส R ของฉันสำหรับโครงการจะมีโค้ดสองสามพันบรรทัดสำหรับการป้อนข้อมูลการทำความสะอาดการจัดการการวิเคราะห์และการสร้างผลลัพธ์ โดยทั่วไปแล้วสิ่งพิมพ์จะเขียนด้วย LaTeX สำหรับการควบคุมเวอร์ชันมีประโยชน์มากมายที่ฉันได้อ่าน แต่พวกเขาดูเหมือนจะไม่ค่อยเกี่ยวข้องกับนักวิเคราะห์ข้อมูลเดี่ยว สำรองข้อมูล:ฉันมีระบบสำรองข้อมูลอยู่แล้ว การแยกและกรอกลับ:ฉันไม่เคยรู้สึกว่าจำเป็นต้องทำเช่นนี้ แต่ฉันสามารถดูว่ามันจะมีประโยชน์อย่างไร (เช่นคุณกำลังเตรียมบทความวารสารหลายบทความตามชุดข้อมูลเดียวกันคุณกำลังเตรียมรายงานที่อัพเดตรายเดือน ฯลฯ ) การทำงานร่วมกัน:ส่วนใหญ่เวลาที่ฉันวิเคราะห์ข้อมูลด้วยตัวเองดังนั้นฉันจะไม่ได้รับประโยชน์จากการทำงานร่วมกันของการควบคุมเวอร์ชัน นอกจากนี้ยังมีค่าใช้จ่ายที่อาจเกิดขึ้นหลายอย่างที่เกี่ยวข้องกับการใช้การควบคุมเวอร์ชัน: ใช้เวลาในการประเมินและเรียนรู้ระบบควบคุมเวอร์ชัน ความซับซ้อนที่เพิ่มขึ้นในระบบการจัดการไฟล์ปัจจุบันของฉัน อย่างไรก็ตามฉันยังรู้สึกว่าฉันขาดอะไรไป คำแนะนำทั่วไปเกี่ยวกับการควบคุมเวอร์ชันดูเหมือนว่าจะมีการกล่าวถึงต่อนักวิทยาศาสตร์คอมพิวเตอร์มากกว่านักวิเคราะห์ข้อมูล ดังนั้นโดยเฉพาะเกี่ยวกับนักวิเคราะห์ข้อมูลในสถานการณ์ที่คล้ายกับที่ระบุไว้ข้างต้น: การควบคุมเวอร์ชันคุ้มค่ากับความพยายามหรือไม่? ข้อดีและข้อเสียของการใช้การควบคุมเวอร์ชันคืออะไร กลยุทธ์ที่ดีในการเริ่มต้นด้วยการควบคุมเวอร์ชันสำหรับการวิเคราะห์ข้อมูลด้วย R คืออะไร (ตัวอย่างเช่นแนวคิดเวิร์กโฟลว์ซอฟต์แวร์ลิงก์ไปยังคู่มือ)
155 git  version-control  r 

5
แนวทางปฏิบัติที่ดีที่สุด / คำแนะนำสำหรับการบำรุงรักษาหมายเลขรุ่นแอสเซมบลี
ฉันกำลังมองหาพอยน์เตอร์คำแนะนำและแม้แต่การเขียนตามคำบอกเกี่ยวกับวิธีจัดการหมายเลขเวอร์ชันแอสเซมบลีที่ต่างกันสามแบบสำหรับแอสเซมบลี. NET เวอร์ชันผลิตภัณฑ์นั้นง่ายที่สุดเนื่องจากตามปกติแล้วธุรกิจของคุณจะถูกกำหนด จากนั้นดูเหมือนว่าเวอร์ชันไฟล์จะใช้สำหรับการกำหนดเวอร์ชันระหว่างการปรับใช้ซึ่งมีการใช้เวอร์ชันแอสเซมบลีที่แท้จริงเมื่อจัดส่งเท่านั้น ตอนนี้ฉันแค่มองหาวิธีง่ายๆในการติดฉลากการทดสอบและการบำรุงรักษาของชุดประกอบที่ไม่มีใครพึ่งพาดังนั้นฉันจึงกำลังมองหาการสร้างและการแก้ไขที่เพิ่มขึ้นโดยอัตโนมัติในรุ่นของไฟล์และสำหรับรุ่นสุดท้าย เวอร์ชันไฟล์เป็นเวอร์ชันแอสเซมบลี ผลิตภัณฑ์นี้ใช้งานในการผลิต แต่ยังอยู่ระหว่างการพัฒนา - คุณรู้ - หนึ่งใน บริษัท เล็ก ๆ เหล่านั้นไม่มีสถานการณ์โครงสร้างพื้นฐานควบคุมการเปลี่ยนแปลง

7
เครื่องมือผสานภาพที่ดี (ฟรี) สำหรับ Git คืออะไร (บน windows) [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ คำถามที่คล้ายกันก็ถามอยู่แล้ว แต่สำหรับอูบุนตู มันจะช่วยให้ทราบว่าเครื่องมือฟรีในเบียร์หรือเป็นอิสระ นอกจากนี้เครื่องมือขึ้นและลงจะดีที่จะรู้

9
Git: วิธีการลดการกระทำที่เฉพาะเจาะจง
ฉันต้องการลดการกระทำที่เฉพาะเจาะจงไม่ใช่หัวหน้าของสาขาอื่น: A --- B --- C master \ \-- D topic ถึง A --- B --- C master \ \-- D topic แทน A --- B --- C master \ \-- D topic ฉันจะบรรลุสิ่งนั้นได้อย่างไร

6
“ Git การอัปเดตที่ไม่ใช่การไปข้างหน้าอย่างรวดเร็วถูกปฏิเสธ” หมายความว่าอย่างไร
ฉันใช้ Git เพื่อจัดการคอมพิวเตอร์สองเครื่องและการพัฒนาของฉัน ฉันกำลังพยายามเปลี่ยนแปลง GitHub และฉันได้รับข้อผิดพลาด ล้มเหลวในการผลักดัน refs <repo>บางอย่างเพื่อ เพื่อป้องกันไม่ให้คุณสูญเสียประวัติอัปเดตที่ไม่ใช่การส่งต่ออย่างรวดเร็วถูกปฏิเสธ รวมการเปลี่ยนแปลงระยะไกลก่อนที่จะผลักดันอีกครั้ง มีสาเหตุใดที่ทำให้เกิดปัญหานี้และฉันจะแก้ไขได้อย่างไร แก้ไข: การดึง repo ส่งคืนสิ่งต่อไปนี้: * branch master-> master (ไม่ใช่ไปข้างหน้าอย่างเร็ว) ทันสมัยแล้ว การผลักดันยังคงทำให้ฉันมีข้อผิดพลาดดังกล่าว

6
วิธีจัดการกับไฟล์โครงการ IntelliJ IDEA ภายใต้การควบคุมแหล่ง Git เปลี่ยนแปลงตลอดเวลา?
ทุกคนในทีมของเราใช้ IntelliJ IDEA และเราพบว่ามีประโยชน์ที่จะนำไฟล์โครงการ (.ipr และ. iml) ไปไว้ในการควบคุมซอร์สเพื่อให้เราสามารถแบ่งปันการกำหนดค่าการตั้งค่าและการตรวจสอบ นอกจากนี้เราสามารถใช้การตั้งค่าการตรวจสอบเหล่านั้นบนเซิร์ฟเวอร์รวมอย่างต่อเนื่องของเรากับ TeamCity (เรามีไฟล์. wi พื้นที่ทำงานต่อผู้ใช้ในไฟล์. gitignore และไม่ได้อยู่ในการควบคุมแหล่งที่มา) อย่างไรก็ตามไฟล์เหล่านั้นเปลี่ยนไปเล็กน้อยเมื่อคุณทำอะไรก็ได้ในไอเดีย มีปัญหาในฐานข้อมูลปัญหาของ IDEA สำหรับมัน ( IDEA-64312 ) ดังนั้นอาจมีใครคิดว่าจุดบกพร่องนี้ใน IDEA แต่มันเป็นสิ่งที่เราจะต้องอยู่ด้วยในอนาคตอันใกล้ จนกระทั่งเมื่อเร็ว ๆ นี้เรากำลังใช้การโค่นล้ม แต่เราเพิ่งเปลี่ยนเป็น Git เราแต่ละคนเพิ่งคุ้นเคยกับการเปลี่ยนแปลงรายการไฟล์โครงการที่เราเพิกเฉยและไม่ได้เช็คอินเว้นแต่จะมีการเปลี่ยนแปลงไฟล์โครงการที่เราต้องการแบ่งปันกับคนอื่น ๆ แต่ด้วย Git พลังที่แท้จริงดูเหมือนจะเป็น (จากสิ่งที่เรากำลังสำรวจ) การแตกกิ่งก้านสาขาอย่างต่อเนื่องที่กระตุ้นและการสลับระหว่างกิ่งเป็นความเจ็บปวดกับไฟล์โครงการที่มีการแก้ไขอยู่เสมอ บ่อยครั้งที่มันสามารถรวมในการเปลี่ยนแปลงอย่างใดอย่างหนึ่งและพยายามที่จะจัดการกับการเปลี่ยนแปลงไฟล์โครงการตอนนี้ถูกนำไปใช้กับสาขาใหม่ อย่างไรก็ตามหากสาขาใหม่มีการเปลี่ยนแปลงไฟล์โครงการ (เช่นสาขากำลังทำงานกับโมดูลใหม่ที่ยังไม่ได้อยู่ในสาขาอื่น) git เพียงแค่โยนข้อผิดพลาดที่มันไม่ได้ ' ไม่มีเหตุผลใดที่จะรวมในไฟล์เมื่อทั้งสองสาขามีการเปลี่ยนแปลงและคุณมีการเปลี่ยนแปลงในเครื่องและฉันสามารถเข้าใจประเด็นได้ จากบรรทัดคำสั่งหนึ่งสามารถใช้ "-f" ในคำสั่ง "git checkout" เพื่อบังคับให้เปลี่ยนการเปลี่ยนแปลงในพื้นที่และใช้สาขาแทน …

6
git selective ยกเลิกการเปลี่ยนแปลงในเครื่องจากไฟล์
ใน repo git ของฉันซึ่งติดตาม repo svn ฉันได้ทำการแก้ไขเป็นไฟล์เดียว ตอนนี้ฉันต้องการย้อนกลับการเปลี่ยนแปลงเหล่านั้น (เช่น svn revert) แต่มีเพียงบางส่วนของไฟล์ ฉันต้องการดูความแตกต่างของไฟล์ละทิ้ง (ย้อนกลับ) การเปลี่ยนแปลงที่ฉันไม่ต้องการและเก็บการเปลี่ยนแปลงที่ฉันต้องการ git add -i ดูเหมือนว่าคำสั่งจะมีตัวเลือกให้ทำเช่นนั้น แต่ฉันยังไม่ต้องการทำขั้นตอนนี้

6
ฉันจะเพิกเฉยทุกสิ่งภายใต้โฟลเดอร์ใน Mercurial ได้อย่างไร
ฉันกำลังหานิพจน์สำหรับไฟล์. hgignore เพื่อละเว้นไฟล์ทั้งหมดที่อยู่ในโฟลเดอร์ที่ระบุ เช่นฉันต้องการละเว้นไฟล์และโฟลเดอร์ทั้งหมดที่อยู่ใต้ bin จริง ๆ แล้วคำแนะนำใด ๆ เกี่ยวกับวิธีการสร้างการแสดงออกจะดี

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