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

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

5
อะไรคือข้อแตกต่างระหว่าง hg forget และ hg remove?
ฉันต้องการให้ Mercurial ลบไฟล์หลาย ๆ ไฟล์ออกจากสถานะปัจจุบันของที่เก็บ อย่างไรก็ตามฉันต้องการให้ไฟล์มีอยู่ในประวัติก่อนหน้า วิธีทำforgetและremoveแตกต่างกันและพวกเขาสามารถทำสิ่งที่ฉันต้องการได้หรือไม่

1
จำนวนคอมมิทชั่นต่อผู้แต่งในทุกสาขา
ฉันต้องการรับจำนวนการคอมมิตต่อผู้แต่งในทุกสาขา ฉันเห็นว่า git shortlog -s -n พิมพ์รายการที่ดีมาก แต่ไม่นับการกระทำที่ยังไม่ถูกรวมเข้ากับสาขาอื่น หากซ้ำคำสั่งนี้กับทุกสาขาแล้วแน่นอนว่าคอมมิชชันทั่วไปจะถูกนับหลายครั้ง คุณช่วยให้ฉันสคริปต์ / คำสั่งที่จะให้ภาพรวมกับฉันหรือไม่

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

6
Linus Torvalds หมายถึงอะไรเมื่อเขาบอกว่า Git“ ไม่เคยมี” ติดตามไฟล์?
การอ้างถึง Linus Torvalds เมื่อถูกถามว่ามีกี่ไฟล์ Git ที่สามารถจัดการได้ระหว่างTech Talkของเขาที่ Google ในปี 2007 (43:09 น.): … Git ติดตามเนื้อหาของคุณ มันไม่เคยติดตามไฟล์เดียว คุณไม่สามารถติดตามไฟล์ใน Git สิ่งที่คุณทำได้คือคุณสามารถติดตามโครงการที่มีไฟล์เดียว แต่ถ้าโครงการของคุณมีไฟล์เดียวให้ทำและคุณสามารถทำได้ แต่ถ้าคุณติดตาม 10,000 ไฟล์ Git ไม่เคยเห็นไฟล์เหล่านั้นเป็นไฟล์เดี่ยวเลย Git คิดว่าทุกสิ่งเป็นเนื้อหาที่สมบูรณ์ ประวัติทั้งหมดใน Git ขึ้นอยู่กับประวัติของโครงการทั้งหมด ... (การถอดเสียงที่นี่ ) แต่เมื่อคุณดำดิ่งลงในหนังสือ Gitสิ่งแรกที่คุณได้รับการบอกกล่าวก็คือไฟล์ใน Git นั้นสามารถติดตามหรือไม่ได้ติดตามได้ ยิ่งไปกว่านั้นฉันรู้สึกว่าประสบการณ์ Git ทั้งหมดนั้นมุ่งไปที่การกำหนดเวอร์ชันไฟล์ เมื่อใช้git diffหรือแสดงgit statusผลจะแสดงตามแต่ละไฟล์ เมื่อใช้งานgit addคุณจะได้รับการเลือกแบบต่อไฟล์ คุณสามารถตรวจสอบประวัติบนพื้นฐานของไฟล์และรวดเร็ว ควรตีความคำสั่งนี้อย่างไร ในแง่ของการติดตามไฟล์ Git แตกต่างจากระบบควบคุมแหล่งอื่นเช่น …


9
วิธีการแยกความมุ่งมั่นล่าสุดเป็นสองอย่างใน Git
ฉันมีสองสาขาทำงานต้นแบบและฟอรั่มและฉันได้ทำเพียงการปรับเปลี่ยนบางอย่างในฟอรั่มสาขาที่ผมอยากจะเชอร์รี่เลือกเข้าต้นแบบ แต่น่าเสียดายที่ความมุ่งมั่นที่ฉันต้องการที่จะเลือกเชอร์รี่ยังมีการปรับเปลี่ยนบางอย่างที่ฉันไม่ต้องการ วิธีแก้ปัญหาอาจเป็นการลบการกระทำที่ผิดและแทนที่ด้วยการคอมมิทที่แยกกันสองอันอันที่มีการเปลี่ยนแปลงที่ฉันต้องการเลือกในมาสเตอร์และอื่น ๆ ที่ไม่ได้อยู่ที่นั่น ฉันพยายามทำ git reset --hard HEAD^ ซึ่งลบการเปลี่ยนแปลงทั้งหมดดังนั้นฉันต้องกลับไปด้วย git reset ORIG_HEAD ดังนั้นคำถามของฉันคือวิธีที่ดีที่สุดในการแยกความมุ่งมั่นล่าสุดออกเป็นสองคอมมิชชันคืออะไร?


24
ฉันจะวางฐานข้อมูลภายใต้ git (การควบคุมเวอร์ชัน) ได้อย่างไร?
ฉันกำลังทำเว็บแอปและฉันต้องการสร้างสาขาสำหรับการเปลี่ยนแปลงที่สำคัญบางอย่างสิ่งนี้คือการเปลี่ยนแปลงเหล่านี้ต้องการการเปลี่ยนแปลงสกีมาฐานข้อมูลดังนั้นฉันจึงต้องการให้ฐานข้อมูลทั้งหมดอยู่ภายใต้ระบบคอมไพล์เช่นกัน ฉันจะทำอย่างไร มีโฟลเดอร์เฉพาะที่ฉันสามารถเก็บภายใต้พื้นที่เก็บข้อมูล git หรือไม่ ฉันจะรู้ได้อย่างไรว่าอันไหน ฉันจะแน่ใจได้อย่างไรว่าฉันวางโฟลเดอร์ที่ถูกต้อง? ฉันต้องแน่ใจเพราะการเปลี่ยนแปลงเหล่านี้ไม่สามารถใช้งานร่วมกับระบบย้อนหลังได้ ฉันไม่สามารถจะพลาด ฐานข้อมูลในกรณีของฉันคือ PostgreSQL แก้ไข: มีคนแนะนำให้ทำการสำรองข้อมูลและวางไฟล์สำรองข้อมูลไว้ภายใต้การควบคุมเวอร์ชันแทนฐานข้อมูล พูดตามตรงฉันพบว่ากลืนยากจริงๆ จะต้องมีวิธีที่ดีกว่า ปรับปรุง: ตกลงดังนั้นจึงไม่มีวิธีที่ดีกว่านี้ แต่ฉันก็ยังไม่ค่อยมั่นใจดังนั้นฉันจะเปลี่ยนคำถามเล็กน้อย: ฉันต้องการวางฐานข้อมูลทั้งหมดภายใต้การควบคุมเวอร์ชันฉันสามารถใช้เอ็นจินฐานข้อมูลใดได้บ้างเพื่อให้ฉันสามารถวางฐานข้อมูลจริงภายใต้การควบคุมเวอร์ชันแทนการดัมพ์ sqlite จะเป็น git-friendly หรือไม่? เนื่องจากนี่เป็นเพียงสภาพแวดล้อมการพัฒนาฉันสามารถเลือกฐานข้อมูลใดก็ได้ที่ฉันต้องการ Edit2: สิ่งที่ฉันต้องการจริงๆไม่ใช่เพื่อติดตามประวัติการพัฒนาของฉัน แต่เพื่อให้สามารถเปลี่ยนจาก "การเปลี่ยนแปลงที่รุนแรงใหม่" ของฉันเป็น "สาขาที่มีความเสถียรในปัจจุบัน" และสามารถอินสแตนซ์เพื่อแก้ไขข้อบกพร่อง / ปัญหาอื่น ๆ ด้วยปัจจุบัน สาขาที่มั่นคง เช่นเมื่อฉันเปลี่ยนสาขาฐานข้อมูลอัตโนมัติอย่างน่าอัศจรรย์จะเข้ากันได้กับสาขาที่ฉันกำลังใช้อยู่ ฉันไม่ค่อยสนใจข้อมูลจริงมากนัก

13
เครื่องมือผสานสามทางที่ดีที่สุดคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา การโค่นล้ม Git, Mercurial และอื่น ๆ สนับสนุนการรวมสามทาง (การรวมของฉันการแก้ไขและการ "แก้ไข" ฐาน) และสนับสนุนเครื่องมือกราฟิกเพื่อแก้ไขข้อขัดแย้ง คุณใช้เครื่องมืออะไร Windows, Mac OS X, Linux, ฟรีหรือเพื่อการค้าคุณตั้งชื่อมัน นี่คือบางส่วนที่ฉันเคยใช้หรือเคยได้ยินเพื่อเริ่มบทสนทนา: KDiff3 DiffMerge P4Merge meld Beyond Pro (ฉันรู้ว่านี่เป็นเหมือนBest Diff Toolแต่มันต่างกันตรงที่ฉันมุ่งเน้นไปที่เครื่องมือผสานสามทางอย่างชัดเจนWinMergeไม่อยู่ในรายการ)

11
git mv และเปลี่ยนเฉพาะกรณีของไดเรกทอรี
ในขณะที่ฉันพบคำถามที่คล้ายกันฉันไม่พบคำตอบสำหรับปัญหาของฉัน เมื่อฉันพยายามเปลี่ยนชื่อไดเรกทอรีจาก FOO เป็น foo ผ่านgit mv FOO fooฉันจะได้รับ fatal: renaming 'FOO' failed: Invalid argument ตกลง. ดังนั้นฉันลองgit mv FOO foo2 && git mv foo2 foo แต่เมื่อฉันพยายามที่จะกระทำผ่านgit commit .ฉันได้รับ # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # foo …

12
ทำไม 'คอมมิท' ไม่บันทึกการเปลี่ยนแปลงของฉัน?
ฉันทำสิ่งgit commit -m "message"นี้: > git commit -m "save arezzo files" # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: arezzo.txt # modified: …

9
Git คำสั่งเพื่อแสดง HEAD กระทำ id?
ฉันสามารถใช้คำสั่งใดในการพิมพ์รหัสการยอมรับของ HEAD นี่คือสิ่งที่ฉันทำด้วยมือ: $ cat .git/HEAD ref: refs/heads/v3.3 $ cat .git/refs/heads/v3.3 6050732e725c68b83c35c873ff8808dff1c406e1 แต่ฉันต้องการสคริปต์ที่สามารถไพพ์เอาท์พุทของคำสั่งบางอย่างไปยังไฟล์ข้อความได้อย่างน่าเชื่อถือซึ่งไฟล์ข้อความนั้นมีรหัสการยอมรับของ HEAD (ไม่มีอะไรมากไปกว่าและน้อยกว่าและไม่ใช่แค่การอ้างอิง) ใครช่วยได้บ้าง

7
Mercurial - เปลี่ยนกลับเป็นเวอร์ชันเก่าและดำเนินการต่อจากที่นั่น
ฉันใช้ Mercurial ในพื้นที่สำหรับโครงการ (เป็นธุรกรรมซื้อคืนเดียวที่ไม่มีการผลัก / ดึงไปยัง / จากที่อื่น) ในวันที่มันมีประวัติเชิงเส้น อย่างไรก็ตามสิ่งที่ฉันกำลังทำอยู่ตอนนี้ฉันรู้แล้วว่ามันเป็นวิธีการที่แย่มากและฉันต้องการกลับไปที่เวอร์ชันก่อนที่ฉันจะเริ่มและนำไปใช้ในวิธีที่ต่างออกไป ฉันบิตสับสนกับbranch/ revert/ update -Cคำสั่งใน Mercurial โดยทั่วไปฉันต้องการเปลี่ยนกลับไปใช้เวอร์ชัน 38 (ปัจจุบันอยู่ที่ 45) และมีข้อผูกพันต่อไปของฉันมี 38 ในฐานะผู้ปกครองและดำเนินการต่อจากที่นั่น ฉันไม่สนใจว่าการแก้ไข 39-45 จะสูญหายไปตลอดกาลหรือสิ้นสุดในสาขาของตนเอง ฉันต้องการคำสั่ง / ชุดคำสั่งใด

19
Git เทียบเท่ากับหมายเลขการแก้ไขคืออะไร
เราใช้ SVN ในที่ทำงาน แต่สำหรับโครงการส่วนตัวของฉันฉันตัดสินใจใช้ Git ดังนั้นผมจึงติดตั้ง Git เมื่อวานนี้และฉันสงสัยว่าเป็นจำนวนการแก้ไขเทียบเท่าใน Git สมมติว่าเราทำงานกับเวอร์ชัน 3.0.8 และทุกการแก้ไขข้อบกพร่องมีหมายเลขการแก้ไขของตัวเองที่เราสามารถใช้เมื่อเราพูดถึงการแก้ไขข้อผิดพลาดนี้ ดังนั้นหากฉันติดแท็กรหัสใน Git ถึง 3.0.8 ฉันสามารถใช้อะไรเป็นหมายเลขการแก้ไขหรือการระบุรายละเอียดอื่น ๆ ฉันพบว่าแฮชไม่เป็นมิตรต่อผู้ใช้สำหรับมนุษย์

8
ไฟล์ Eclipse ใดที่อยู่ภายใต้การควบคุมเวอร์ชัน?
ไฟล์ Eclipse ใดที่เหมาะสมที่จะวางภายใต้การควบคุมของแหล่งที่มานอกเหนือจากแหล่งที่มาอย่างชัดเจน? ในโครงการของฉันโดยเฉพาะฉันสงสัยเกี่ยวกับ: .metadata / * project-dir / .project project-dir / .classpath project-dir / .settings / * หากมีสิ่งเหล่านี้ขึ้นอยู่กับสิ่งนั้นโปรดอธิบายหลักเกณฑ์ของคุณ

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