Git Tutorial และ Cheat Sheet: เชื่องระบบการควบคุมเวอร์ชันยอดนิยมนี้

การเปิดเผยข้อมูล: การสนับสนุนของคุณช่วยให้เว็บไซต์ทำงานต่อไป! เราได้รับค่าธรรมเนียมการอ้างอิงสำหรับบริการบางอย่างที่เราแนะนำในหน้านี้.


Git เป็นระบบควบคุมเวอร์ชันแบบกระจายที่ใช้เป็นหลักในการออกแบบซอฟต์แวร์คอมพิวเตอร์และพัฒนาโปรแกรมประยุกต์บนเว็บที่ซับซ้อน.

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

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

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

ประวัติศาสตร์

Git สร้างโดย Linus Torvalds ผู้สร้างและผู้พัฒนาหลักของเคอร์เนล Linux.

การทำงานในโครงการเริ่มต้นขึ้นในปี 2548 เมื่อ Torvalds และทีมพัฒนาของเขาถูกบังคับให้ต้องหาทางเลือกอื่นให้กับ BitKeeper ซึ่งเป็นระบบการจัดการการควบคุมแหล่งกรรมสิทธิ์ที่พวกเขาใช้ในการพัฒนาและปรับแต่งเคอร์เนลลินุกซ์.

ผู้ถือลิขสิทธิ์ของ BitKeeper ถอนการใช้งานผลิตภัณฑ์ฟรีดังนั้น Torvalds จึงถูกบังคับให้ค้นหาระบบควบคุมเวอร์ชันเพื่อเติมเต็มช่องว่าง แต่น่าเสียดายที่ไม่มีระบบการแจกจ่ายโอเพนซอร์สที่เขาพบว่าขึ้นอยู่กับภารกิจโดยย่อทั้งความเร็วและประสิทธิภาพ.

ไม่พบสิ่งใดที่เหมาะกับความต้องการของเขา Torvalds ตัดสินใจพัฒนาระบบควบคุมเวอร์ชันแบบกระจายของเขาเอง เป้าหมายของเขาเรียบง่าย:

  • ใช้สถานะปัจจุบันของระบบเวอร์ชันที่ทำงานพร้อมกันเป็นตัวอย่างของสิ่งที่ไม่ควรทำ

  • มุ่งเน้นไปที่กระบวนการทำงานแบบกระจาย

  • ตรวจสอบให้แน่ใจว่าการปะแก้ใช้เวลาไม่เกิน 3 วินาที

  • รวมถึงการป้องกันความเสียหายจากอุบัติเหตุหรืออันตราย.

Torvalds เริ่มพัฒนา Git ในเดือนเมษายนของปี 2005 เป้าหมายผลการดำเนินงานเริ่มแรกของโครงการได้พบในไม่ช้าและการทำซ้ำครั้งแรกของระบบได้เปิดตัวก่อนสิ้นปี.

ในปี 2549 Torvalds หันมาดูแล Git ให้กับ Junio ​​Hermano ซึ่งเป็นหนึ่งในผู้สนับสนุนหลักของโครงการ เฮอร์มาโน่ได้พัฒนา Git อย่างต่อเนื่องโดยดูแลระบบที่ตามมารวมถึง Git 2.9 รุ่นล่าสุดในปี 2559.

คุณสมบัติ

เพื่อให้เข้าใจคุณลักษณะเฉพาะของ Git ได้ดียิ่งขึ้นสิ่งสำคัญคือการแยกความแตกต่างระหว่างระบบการจัดการซอร์สโค้ดสองประเภทที่พบบ่อยที่สุด.

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

สิ่งนี้ทำให้ผู้เขียนโปรแกรมทำงานได้อย่างรวดเร็วและมีประสิทธิภาพโดยเฉพาะอย่างยิ่งเมื่อทำงานเป็นทีม.

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

การควบคุมเวอร์ชันแบบกระจาย

อย่างไรก็ตาม Git นั้นเป็นระบบควบคุมเวอร์ชันแบบกระจาย (DVCS) และดังนั้นจึงไม่ได้ขึ้นอยู่กับเซิร์ฟเวอร์ที่รวมศูนย์เพื่อเก็บประวัติเวอร์ชันเต็มของโครงการใด ๆ ก็ตาม.

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

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

คุณสมบัติเพิ่มประสิทธิภาพ

คุณสมบัติด้านประสิทธิภาพที่เพิ่มขึ้นเป็นอีกเหตุผลหนึ่งที่ Git กลายเป็นทางเลือกยอดนิยมสำหรับระบบการจัดการซอร์สโค้ดอื่น ๆ.

Git ลดความซับซ้อนของฟังก์ชั่นการรวมสาขาและการผสานเข้าด้วยกันทำให้นักพัฒนาสามารถยอมรับการเปลี่ยนแปลงและตรวจทานและเปรียบเทียบซอร์สโค้ดของโครงการเวอร์ชันก่อนหน้า.

นอกจากนี้เนื่องจากการกระทำทั้งหมดเหล่านี้เกิดขึ้นในเวิร์กสเตชันของผู้พัฒนาเองกระบวนการจึงรวดเร็วและเชื่อถือได้มากกว่าระบบอื่น.

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

ความปลอดภัย

ในที่สุดคุณสมบัติที่สำคัญของ Git ก็คือความปลอดภัยโดยธรรมชาติ ข้อมูลและไฟล์ทั้งหมดในที่เก็บ Git ได้รับการปกป้องโดยอัลกอริทึมการแปลงแป้นพิมพ์ SHA1 วิธีนี้จะช่วยป้องกันรหัสจากการเปลี่ยนแปลงที่เป็นอันตรายและไม่ได้ตั้งใจ.

โอกาสในการสูญหายของข้อมูลด้วย Git ก็ลดลงอย่างมากเมื่อเทียบกับระบบการจัดการแหล่งข้อมูลอื่น ๆ เพราะประวัติรุ่นสมบูรณ์ของโครงการใดก็ตามที่จัดเก็บไว้ในเวิร์กสเตชันของผู้สนับสนุนแต่ละคน.

ความเข้ากันได้

Git เป็น DVCS โอเพ่นซอร์สและสามารถดาวน์โหลดได้โดยตรงจากเว็บไซต์ Git Git เข้ากันได้กับระบบปฏิบัติการ Windows, Linux, Mac OSX และ BSD.

เริ่มต้นใช้งาน

Git เป็นระบบจัดการการเข้ารหัสที่ทรงพลังและเป็นองค์ประกอบสำคัญสำหรับโครงการซอฟต์แวร์เชิงพาณิชย์และโอเพ่นซอร์สหลายโครงการ.

ผู้ที่ไม่เคยใช้ Git มักพบว่าระบบสับสนในตอนแรกอย่างไรก็ตามช่วงการเรียนรู้ไม่สูงอย่างที่ควรจะเป็นและมีบทเรียนออนไลน์ที่ดีมาก (ทั้งข้อความและวิดีโอ) ที่ให้คำแนะนำที่เพียงพอสำหรับผู้เริ่มต้น.

  • Git Tutorial: คู่มือที่ครอบคลุม: กวดวิชา Udemy นี้ให้ภาพรวมทั้งหมดของ Git รวมถึงประวัติการพัฒนา ผู้อ่านจะได้รับการแนะนำให้รู้จักกับฟังก์ชั่นพื้นฐานของระบบโดยมีส่วนที่ใช้สำหรับการตั้งค่าพื้นที่เก็บข้อมูลการเลิกทำการกระทำการแยกและการรวมและการรวมผ่าน Github.

  • Git Tutorial for Beginners: Command Line Fundamentals: บทแนะนำวิดีโอนี้มีการกำหนดเป้าหมายเป็นครั้งแรกที่ผู้ใช้ Git และผู้ที่มีความเข้าใจคร่าวๆของระบบ DVCS อย่างน้อย งานนำเสนอให้ภาพรวมที่เรียบง่ายของระบบโดยมุ่งเน้นที่พื้นฐานของบรรทัดคำสั่ง.

  • เรียนรู้ Git: การสอน Git: นำเสนอโดย Tutorials Point การแนะนำที่ครอบคลุมนี้และคำแนะนำเกี่ยวกับ Git ครอบคลุมพื้นฐานทั้งหมดของระบบควบคุมเวอร์ชัน บทช่วยสอนนี้มีสื่อโสตทัศน์จำนวนมากเพื่อช่วยสาธิตการใช้งาน Git ส่วนเฉพาะที่ระบุรวมถึงการสร้างการปฏิบัติงานการดำเนินการและการเปลี่ยนแปลงการอัพเดทการดำเนินงานการแพตช์และการจัดการสาขา.

  • Git Tutorial for Beginners: คู่มือเริ่มต้นใช้งานอย่างย่อ: นำเสนอโดย Timothy Corey วิดีโอสอนการใช้งานนี้เป็นการแนะนำ Git สำหรับผู้เริ่มต้นที่มีประสิทธิภาพสูง ตัวอย่างการใช้งานจริงทำให้การสอนนี้ง่ายต่อการติดตามและเข้าใจ.

หนังสือ

Git เป็นระบบควบคุมเวอร์ชันที่หลากหลายและการตระหนักถึงผู้ใช้ที่มีศักยภาพอย่างเต็มรูปแบบนั้นต้องการความเข้าใจที่ครอบคลุมของระบบและความสามารถของมัน บทเรียนออนไลน์สามารถให้คำแนะนำเบื้องต้นเกี่ยวกับ Git แต่ส่วนใหญ่จะ จำกัด ในขอบเขตของพวกเขา.

หากต้องการข้อมูลเชิงลึกเกี่ยวกับ Git และการใช้งานมากขึ้นนักพัฒนาและโปรแกรมเมอร์จะต้องการสำรวจหนังสือดังต่อไปนี้.

  • Pro Git (2009) โดย Chacon and Straub: แนะนำโดยทีมพัฒนา Git, Chacon and Straub ของ Pro Git ให้ภาพรวมของการควบคุมเวอร์ชันที่แจกจ่ายและการพัฒนา Git และ GitHub ผู้เขียนอธิบายพื้นฐานของ Git และคุณสมบัติมากมายจากมุมมองของโปรแกรมเมอร์และผู้นำโครงการ มีทั้งแบบพิมพ์และแบบดิจิตัล.

  • การควบคุมเวอร์ชันด้วย Git: เครื่องมือและเทคนิคอันทรงพลังสำหรับการพัฒนาซอฟต์แวร์ที่ทำงานร่วมกัน (2012) โดย Loeliger และ McCullough: คู่มือปฏิบัติของ Git นี้นำผู้อ่านจากแนวคิดเริ่มต้นไปจนถึงเทคนิคขั้นสูงโดยใช้ตัวอย่างทีละขั้นตอน หัวข้อต่างๆรวมถึงการติดตามการแยกการผสานและการจัดการการแก้ไขรหัสโดยเน้นการพัฒนาซอฟต์แวร์ที่ทำงานร่วมกัน

    ment.

  • Git in Practice (2014) โดย Mark McQuaid: เหมาะที่สุดสำหรับผู้ที่คุ้นเคยกับหลักการหลักของ Git หนังสือของ McQuaid นำเสนอรายละเอียดเกี่ยวกับเทคนิคขั้นสูงเพื่อเพิ่มประสิทธิภาพและปรับปรุงโครงการพัฒนาทีม Git in Practice ครอบคลุมมากกว่า 60 การใช้งานขั้นสูงสำหรับ Git รวมถึงการแสดงข้อมูลประวัติ, การแยกสาขาขั้นสูง, การเขียนประวัติใหม่และการกู้คืนระบบ.

ข้อสรุป

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

ในฐานะที่เป็นระบบโอเพ่นซอร์ส Git ยังคงได้รับการพัฒนาและแก้ไขเพิ่มเติมอย่างต่อเนื่องพัฒนาเพื่อตอบสนองความต้องการที่เปลี่ยนแปลงตลอดเวลาของนักพัฒนาซอฟต์แวร์มืออาชีพและมือสมัครเล่น.

ทรัพยากรที่กล่าวถึงในที่นี้ควรให้คำแนะนำที่เป็นประโยชน์กับ Git แอปพลิเคชันสำหรับโครงการพัฒนาความร่วมมือและสถานะในลำดับชั้นของระบบควบคุมเวอร์ชัน.

สูตร Git

Git เป็นระบบควบคุมเวอร์ชันโอเพ่นซอร์สแบบกระจายสำหรับใช้ในการออกแบบซอฟต์แวร์และการพัฒนาเว็บแอปพลิเคชัน แผ่นโกงต่อไปนี้มีตัวอย่างของคำสั่งบรรทัดคำสั่ง Git ที่ใช้บ่อยที่สุด.

กำหนดค่า Tooling

  • $ git config –global user.name“ [name]” – กำหนดชื่อให้กับการทำธุรกรรมของคุณ

  • $ git config –global user.email“ [ที่อยู่อีเมล]” – กำหนดอีเมลให้กับการทำธุรกรรมของคุณ

  • $ git config –global color.ui auto – ช่วยให้ colorization ของเอาต์พุตบรรทัดคำสั่ง

การสร้างที่เก็บ

  • $ git init [ชื่อโครงการ] – สร้างพื้นที่เก็บข้อมูลท้องถิ่นใหม่ที่มีชื่อที่ระบุ

  • $ git clone [url] – โคลนที่เก็บปัจจุบันที่มีประวัติรุ่นที่สมบูรณ์

การเปลี่ยนแปลงในท้องถิ่น

  • สถานะ $ git – แสดงรายการไฟล์ใหม่หรือไฟล์ที่แก้ไขทั้งหมดเพื่อส่ง

  • $ git diff – แสดงการอ้างอิงไฟล์ที่ไม่มีการจัดฉาก

  • $ git เพิ่ม [ไฟล์] – สแน็ปช็อตของไฟล์ก่อนการกำหนดเวอร์ชัน

  • $ git ต่างกัน – จัดฉาก – แสดงความแตกต่างของไฟล์ระหว่างการจัดเตรียมและเวอร์ชันไฟล์ล่าสุด

  • $ git รีเซ็ต [ไฟล์] – unstages ไฟล์ในขณะที่รักษาเนื้อหา

  • $ git กระทำ – กระทำการเปลี่ยนแปลงที่ทำไว้ก่อนหน้านี้

  • $ git กระทำ -a – กระทำการเปลี่ยนแปลงในพื้นที่ทั้งหมดในไฟล์ที่ถูกตรึง

  • $ git commit -m“ [ข้อความอธิบาย]” – บันทึกภาพรวมไฟล์อย่างถาวรในประวัติรุ่น

  • บันทึก $ git – แสดงประวัติความเป็นมาของการกระทำ

  • $ git log -p [ชื่อไฟล์] – แสดงประวัติการเปลี่ยนแปลงของไฟล์เฉพาะ

  • $ git blame [ไฟล์] – แสดงว่าผู้ใช้คนใดเปลี่ยนแปลงเนื้อหาไฟล์และเมื่อใด

สาขาและแท็ก

  • $ git branch -av – แสดงรายการสาขาที่มีอยู่ทั้งหมด

  • $ git checkout [สาขา] – สลับสาขา HEAD

  • $ git checkout [สาขาใหม่] – สร้างสาขาใหม่ตาม HEAD ปัจจุบัน

  • $ git checkout – track [remote / branch] – สร้างสาขาการติดตามใหม่ตามสาขาระยะไกล

  • $ git branch -d [branch] – ลบสาขาท้องถิ่น

  • $ git แท็ก [tag-name] – ทำเครื่องหมายการกระทำปัจจุบันด้วยแท็ก

  • $ cat .git / HEAD – แสดงสิ่งที่หัวหน้าหรือสาขาปัจจุบันชี้ไป

อัปเดตและเผยแพร่

  • $ git remote -v – แสดงรายการที่เก็บข้อมูลรีโมตที่กำหนดค่าไว้ในปัจจุบันทั้งหมด

  • $ git แสดงรีโมต [รีโมต] – แสดงข้อมูลรายละเอียดจากพื้นที่เก็บข้อมูลระยะไกลที่เฉพาะเจาะจง

  • $ git remote เพิ่ม [shortname] [url] – เพิ่มที่เก็บรีโมตใหม่

  • $ git fetch [remote] – ดาวน์โหลดการเปลี่ยนแปลงทั้งหมดจากระยะไกลที่ระบุโดยไม่ต้องรวมเข้ากับ HEAD

  • $ git pull [remote] [branch] – ดาวน์โหลดการเปลี่ยนแปลงจากพื้นที่เก็บข้อมูลระยะไกลที่เฉพาะเจาะจงและรวม / รวมเข้ากับ HEAD

  • $ git push [remote] [branch] – เผยแพร่การเปลี่ยนแปลงในพื้นที่ไปยังที่เก็บระยะไกล

  • $ git branch -dr [remote / branch] – ลบสาขาบนพื้นที่เก็บข้อมูลระยะไกลท้องถิ่น

  • $ git push –tags – เผยแพร่แท็กไปยังที่เก็บ

ผสานและ Rebase

  • $ git รวม [สาขา] – ผสานสาขาที่ระบุเข้ากับ HEAD ปัจจุบัน

  • $ git rebase [branch] – rebase HEAD ปัจจุบันไปยังสาขา

  • $ git rebase –abort – ยกเลิกการรีบูทก่อนหน้านี้

  • $ git rebase – ยุติ – ดำเนินการรีบูตต่อหลังจากแก้ไขข้อขัดแย้ง

  • $ git เพิ่ม [แก้ไขไฟล์] – แก้ไขและแก้ไขข้อขัดแย้งและทำเครื่องหมายไฟล์ด้วยตนเองว่า ‘แก้ไขแล้ว’

  • $ git mergetool – ใช้เครื่องมือผสานเพื่อแก้ไขข้อขัดแย้งโดยอัตโนมัติ

เลิกทำ

  • $ git reset –hard HEAD – ยกเลิกการเปลี่ยนแปลงทั้งหมดในไดเรกทอรีการทำงาน

  • $ git checkout HEAD [ชื่อไฟล์] – ยกเลิกการเปลี่ยนแปลงในท้องถิ่นทั้งหมดไปยังไฟล์ที่ระบุ

  • $ git ย้อนกลับ [ส่ง] – ย้อนกลับการกระทำโดยการผลิตการแก้ไขหรือปรับปรุงการกระทำ

  • $ git รีเซ็ต – ยาก [ส่ง] – รีเซ็ตตัวชี้ HEAD เป็นการกระทำก่อนหน้าและยกเลิกการเปลี่ยนแปลงที่ตามมาทั้งหมด

  • รีเซ็ต $ git [ส่ง] – รีเซ็ตตัวชี้ HEAD เป็นการกระทำก่อนหน้าและรักษาการเปลี่ยนแปลงที่ตามมาทั้งหมดไว้เป็นเหตุการณ์ที่ไม่จัด

  • $ git reset –keep [กระทำ] – รีเซ็ตตัวชี้ HEAD เป็นการกระทำก่อนหน้าและรักษาการเปลี่ยนแปลงที่ไม่ได้รับการยอมรับ

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

การอ่านและทรัพยากรเพิ่มเติม

เรามีคำแนะนำเพิ่มเติมบทแนะนำและอินโฟกราฟิกที่เกี่ยวข้องกับการเข้ารหัสและการพัฒนา:

  • การควบคุมเวอร์ชันและการโฮสต์: ไม่เพียง แต่เกี่ยวกับการโฮสต์ แต่ยังเป็นการเปรียบเทียบระบบควบคุมเวอร์ชัน.

  • Ubuntu Primer: เรียนรู้เกี่ยวกับหนึ่งในลินุกซ์ที่ได้รับความนิยมมากที่สุด – เป็นฐานที่ยอดเยี่ยมสำหรับการโฮสต์ MantisBT.

  • การเขียนโปรแกรมเชิงวัตถุ: เรียนรู้เกี่ยวกับภาษาการเขียนโปรแกรมเชิงวัตถุที่หลากหลาย – บางคนอาจทำให้คุณประหลาดใจ.

อินเทอร์เน็ตจะรอดพ้นจากจุดจบของโลกหรือไม่?

คุณเคยสงสัยหรือไม่ว่าภัยพิบัติครั้งใหญ่จะเกิดขึ้นกับอินเทอร์เน็ตได้อย่างไร? ตรวจสอบอินโฟกราฟิกของเราอินเทอร์เน็ตจะรอดพ้นจากจุดจบของโลกหรือไม่?

เป็นไปได้ที่เราทุกคนจะถูกทำลาย แต่อินเทอร์เน็ตจะยังอยู่.

อินเทอร์เน็ตจะรอดพ้นจากจุดจบของโลกหรือไม่?
อินเทอร์เน็ตจะรอดพ้นจากจุดจบของโลกหรือไม่?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me