ทำความเข้าใจพื้นฐานของ Git และ GitHub [ปิด]


201

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

ฉันมักจะทำงานเป็นนักออกแบบ / นักพัฒนาเว็บไซต์ แต่ฉันไม่จำเป็นต้องทำงานร่วมกัน ฉันรู้ใน Git คุณได้สร้าง, ผลัก, กระทำ, สร้างสาขา ฯลฯ สำหรับทุกพื้นที่เก็บข้อมูล แต่ ...

  1. ความแตกต่างระหว่าง Git และ GitHub คืออะไร?

  2. git บันทึกทุกที่เก็บไว้ในเครื่อง (ในเครื่องของผู้ใช้) และใน GitHub หรือไม่?

  3. คุณสามารถใช้ Git โดยไม่มี GitHub ได้หรือไม่? ถ้าใช่จะได้ประโยชน์อะไรจากการใช้ GitHub?

  4. Git เปรียบเทียบกับระบบสำรองข้อมูลเช่น Time Machine อย่างไร

  5. นี่เป็นกระบวนการแบบแมนนวลหรือกล่าวอีกนัยหนึ่งถ้าคุณไม่ยอมรับว่าคุณไม่มีการเปลี่ยนแปลงในเวอร์ชันใหม่

  6. หากไม่ได้ทำงานร่วมกันและคุณใช้ระบบสำรองอยู่แล้วเหตุใดคุณจึงต้องใช้ Git


บางทีมันอาจช่วยให้ใครบางคนเข้าใจความแตกต่าง: pedrorijo.com/blog/git-init
pedrorijo91

คำตอบ:


254
  1. ความแตกต่างระหว่าง Git และ GitHub คืออะไร?

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

    GitHub เป็นหน้าเว็บที่คุณสามารถเผยแพร่ที่เก็บ Git ของคุณและทำงานร่วมกับผู้อื่นได้

  2. Git บันทึกที่เก็บข้อมูลทั้งหมดไว้ในเครื่อง (ในเครื่องของผู้ใช้) และใน GitHub หรือไม่

    ไม่มันเป็นของท้องถิ่นเท่านั้น คุณสามารถตัดสินใจที่จะผลักดัน (เผยแพร่) บางสาขาใน GitHub

  3. คุณสามารถใช้ Git โดยไม่มี GitHub ได้หรือไม่? ถ้าใช่จะได้ประโยชน์อะไรจากการใช้ GitHub?

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

  4. Git เปรียบเทียบกับระบบสำรองข้อมูลเช่น Time Machine อย่างไร

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

  5. นี่เป็นกระบวนการแบบแมนนวลหรือกล่าวอีกนัยหนึ่งถ้าคุณไม่ยอมรับคุณจะไม่มีการเปลี่ยนแปลงรุ่นใหม่ใช่หรือไม่

    ใช่ยอมรับและผลักดันเป็นคู่มือทั้งสอง

  6. หากไม่ได้ทำงานร่วมกันและคุณใช้ระบบสำรองอยู่แล้วเหตุใดคุณจึงต้องใช้ Git

    • หากคุณพบข้อผิดพลาดระหว่างการคอมมิทคุณสามารถใช้คำสั่งgit diffเพื่อดูความแตกต่างระหว่างโค้ดปัจจุบันและการคอมมิทใช้งานล่าสุดช่วยให้คุณค้นหาข้อผิดพลาดได้

    • คุณสามารถกลับไปที่การทำงานครั้งสุดท้ายได้

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

    • คุณทำการดีบักบ้าง ก่อนที่จะส่งมอบคุณต้องดูการเปลี่ยนแปลงจากการกระทำครั้งสุดท้าย คุณเห็นข้อความสั่งการแก้ไขข้อบกพร่องที่คุณลืมที่จะลบ

ตรวจสอบให้แน่ใจว่าคุณตรวจgitimmersion.com


5
ส่วนที่หนึ่งในวรรคสุดท้ายเป็นจุดที่ดีจริงๆ ชำระเงินด้วยgit intersectเพื่อจุดประสงค์นี้

2
@ H2CO3 คุณหมายถึงgit bisectอะไร
Simon Whitaker

1
@SimonWhitaker ใช่มันเป็นคำสะกดผิด

47
  1. ความแตกต่างระหว่าง Git และ GitHub คืออะไร?

    Linus Torvalds จะฆ่าคุณสำหรับเรื่องนี้ Git เป็นชื่อของโปรแกรมจัดการเวอร์ชันที่เขาเขียน GitHub เป็นเว็บไซต์ที่มีที่เก็บซอร์สโค้ดซึ่งจัดการได้โดย Git ดังนั้น GitHub จึงไม่เกี่ยวข้องกับเครื่องมือ Git ดั้งเดิมอย่างสมบูรณ์

  2. git บันทึกทุกที่เก็บไว้ในเครื่อง (ในเครื่องของผู้ใช้) และใน GitHub หรือไม่?

    หากคุณยอมรับการเปลี่ยนแปลงมันจะเก็บข้อมูลไว้ในเครื่อง จากนั้นถ้าคุณผลักดันการกระทำมันก็จะทำให้พวกเขาห่างไกล

  3. คุณสามารถใช้ Git โดยไม่มี GitHub ได้หรือไม่? ถ้าใช่จะได้ประโยชน์อะไรจากการใช้ GitHub?

    คุณทำได้ แต่ฉันแน่ใจว่าคุณไม่ต้องการตั้งค่าเซิร์ฟเวอร์ git ด้วยตัวเอง ประโยชน์ของ GitHub มีผู้ใช้จำนวนมากรู้วิธีใช้งานง่ายผู้อื่นอาจพบโค้ดของคุณและติดตาม / แยกเพื่อทำการปรับปรุงเช่นกัน

  4. Git เปรียบเทียบกับระบบสำรองข้อมูลเช่น Time Machine อย่างไร

    Git ได้รับการออกแบบและปรับให้เหมาะสมสำหรับซอร์สโค้ดโดยเฉพาะ

  5. นี่เป็นกระบวนการแบบแมนนวลหรือกล่าวอีกนัยหนึ่งถ้าคุณไม่ยอมรับว่าคุณไม่มีการเปลี่ยนแปลงในเวอร์ชันใหม่

    เผง

  6. หากไม่ได้ทำงานร่วมกันและคุณใช้ระบบสำรองอยู่แล้วเหตุใดคุณจึงต้องใช้ Git

    ดู # 4


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

@ DavoudTaghawi-Nejad ใช่ แต่ฉันแน่ใจว่า OP หมายถึง 'without Github' เป็น 'ไม่เฉพาะกับ GitHub' ฉันยังเชื่อว่ามันชัดเจนจาก # 2 ที่คุณสามารถใช้ git ภายในเครื่องเท่านั้น

4
@ DavoudTaghawi-Nejad ฉันใช้ github เป็นแบ็คอัพไม่ใช่สำหรับการทำงานร่วมกัน หากมีไฟ / รหัสอื่น ๆ ปลอดภัย
Thufir

GitHub คืออะไรตามและคุณสมบัติส้อม?
Mou

29
  1. ความแตกต่างระหว่าง Git และ GitHub คืออะไร?

    Git เป็นระบบควบคุมเวอร์ชันแบบกระจาย มันมักจะทำงานที่บรรทัดคำสั่งของเครื่องท้องถิ่นของคุณ มันจะติดตามไฟล์ของคุณและการแก้ไขไฟล์เหล่านั้นใน "repository" (หรือ "repo") แต่เมื่อคุณบอกให้ทำ (ในคำอื่น ๆ คุณตัดสินใจว่าไฟล์ใดที่จะติดตามและเมื่อใดที่จะใช้ "ภาพรวม" ของการแก้ไขใด ๆ )

    ในทางตรงกันข้าม GitHub เป็นเว็บไซต์ที่ให้คุณเผยแพร่ที่เก็บ Git ทางออนไลน์ซึ่งอาจมีประโยชน์ได้หลายประการ (ดู # 3)

  2. Git บันทึกที่เก็บข้อมูลทั้งหมดไว้ในเครื่อง (ในเครื่องของผู้ใช้) และใน GitHub หรือไม่

    Git เป็นที่รู้จักกันว่าเป็นระบบควบคุมเวอร์ชัน "กระจาย" (แทนที่จะเป็น "รวมศูนย์")เพราะคุณสามารถเรียกใช้งานได้ในเครื่องและตัดการเชื่อมต่อจากอินเทอร์เน็ตจากนั้น "ผลัก" การเปลี่ยนแปลงของคุณไปยังระบบระยะไกล (เช่น GitHub) ทุกครั้งที่คุณต้องการ ดังนั้นการเปลี่ยนแปลง repo จะปรากฏเฉพาะใน GitHub เมื่อคุณบอก Git ให้ผลักดันการเปลี่ยนแปลงเหล่านั้นด้วยตนเอง

  3. คุณสามารถใช้ Git โดยไม่มี GitHub ได้หรือไม่? ถ้าใช่จะได้ประโยชน์อะไรจากการใช้ GitHub?

    ใช่คุณสามารถใช้ Git โดยไม่มี GitHub Git เป็นโปรแกรม "workhorse" ที่ติดตามการเปลี่ยนแปลงของคุณจริง ๆ ในขณะที่ GitHub เป็นเพียงการโฮสต์ที่เก็บข้อมูลของคุณ (และมีฟังก์ชันการทำงานเพิ่มเติมที่ไม่มีใน Git) นี่คือประโยชน์บางประการของการใช้ GitHub:

    • มันมีการสำรองไฟล์ของคุณ
    • มันทำให้คุณมีส่วนต่อประสานที่มองเห็นได้สำหรับการนำทาง repos ของคุณ
    • มันทำให้คนอื่น ๆ สามารถนำทางไปยัง repos ของคุณได้
    • มันทำให้การทำงานร่วมกันของ repo เป็นเรื่องง่าย (เช่นหลายคนมีส่วนร่วมในโครงการเดียวกัน)
    • มันมีระบบติดตามปัญหาน้ำหนักเบา
  4. Git เปรียบเทียบกับระบบสำรองข้อมูลเช่น Time Machine อย่างไร

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

  5. นี่เป็นกระบวนการแบบแมนนวลหรือกล่าวอีกนัยหนึ่งถ้าคุณไม่ยอมรับคุณจะไม่มีการเปลี่ยนแปลงรุ่นใหม่ใช่หรือไม่

    ใช่นี่เป็นกระบวนการแบบแมนนวล

  6. หากไม่ได้ทำงานร่วมกันและคุณใช้ระบบสำรองอยู่แล้วเหตุใดคุณจึงต้องใช้ Git

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

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

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