เนื่องจาก GitHub ให้แอป GUI สำหรับทั้งMacและWindowsประโยชน์ของการเรียนรู้การใช้ git จากบรรทัดคำสั่งคืออะไร
ขณะนี้ฉันกำลังใช้แอพ mac ของพวกเขาเพื่ออัปเดตที่เก็บของฉันและจนถึงตอนนี้มันครอบคลุมความต้องการของฉันแล้ว ฉันจะพลาดอะไรได้บ้าง
เนื่องจาก GitHub ให้แอป GUI สำหรับทั้งMacและWindowsประโยชน์ของการเรียนรู้การใช้ git จากบรรทัดคำสั่งคืออะไร
ขณะนี้ฉันกำลังใช้แอพ mac ของพวกเขาเพื่ออัปเดตที่เก็บของฉันและจนถึงตอนนี้มันครอบคลุมความต้องการของฉันแล้ว ฉันจะพลาดอะไรได้บ้าง
คำตอบ:
ฉันคิดว่าคำถามนี้เป็นเพียงกรณีพิเศษของ "ทำไมฉันจึงควรเรียนรู้ CLI ใด ๆ ที่มีทางเลือก GUI อยู่?" ฉันสงสัยว่าคำถามหลังนั้นเกี่ยวกับอายุเท่า GUI และฉันคิดว่ามีหลายครั้งที่จะตอบคำถามในช่วงหลายปีที่ผ่านมา ฉันจะพยายามที่จะ Bumble ทางของฉันผ่านคำตอบของตัวเองกับคำถามนี้ แต่โอนีลสตีเฟนสันก้องสิ่งที่ฉันเห็นด้วยกับการเป็น 'คำตอบที่ดีที่สุด' กว่าสิบปีที่ผ่านมาในการเขียนเรียงความโดดเด่นของเขาในการเริ่มต้น ... คือบรรทัดคำสั่ง
ในขณะที่เรียงความสัมผัสกับแง่มุมต่าง ๆ ของการคำนวณและแม้กระทั่ง Stephenson เองก็คิดว่าตอนนี้มันล้าสมัยไปมาก แต่เรียงความอธิบายว่าอะไร CLIs เป็น GUI ที่ดีกว่าในลักษณะที่เปลี่ยนแปลงชีวิตของฉันอย่างแท้จริง เป็นการอ่านที่ยาว (ประมาณ 40 หน้า) แต่ฉันไม่สามารถแนะนำให้คนที่ถามคำถามอย่างที่คุณถามได้ที่นี่
สุดท้ายแม้ว่าฉันต้องการตอบ CLI ใด ๆ เทียบกับการจัดเรียง GUI git
ของคำถามในทำนองเดียวกันผมคิดว่าคำตอบของฉันถือเป็นจริงโดยเฉพาะอย่างยิ่งกับคำถามของคุณโดยเฉพาะตั้งแต่สิ่งคอมพิวเตอร์ทั้งหมดที่คุณเลือกที่จะถามเกี่ยวกับ git
เป็นเครื่องมือล่าสุดที่อยู่ในรายการเครื่องมือคอมพิวเตอร์ที่มีความยาวไม่เกินจริงซึ่งมีคุณค่าอย่างแท้จริงในการเปรียบเทียบอุปมาอุปมัยตามที่อธิบายไว้ในบทความของสตีเฟนสัน git
เช่นเดียวกับสิ่งอื่น ๆ ที่ Unix-ish เป็นเหตุผลที่จะรู้ CLIs ทั้งหมดในตัวเอง บางครั้งแม้จะมี'พอร์ซเลน' ที่ผิดปกติของมัน; บางครั้งเพราะมัน
ดังนั้นคุณสามารถทำงานได้อย่างมีประสิทธิภาพด้วย GUI ของ github ทั้งสำหรับ OSX หรือแม้แต่บนเว็บไซต์ของพวกเขา ใช่มันค่อนข้างเงาจริง ๆ ฉันใช้คุณสมบัติของเว็บไซต์บ่อยครั้ง แต่ไม่คุณจะไม่มีวันรู้สึกเหมือนพระเจ้าเหมือนสีชมพูที่ถูกต้องของคุณแขวนอยู่เหนือgit filter-branch
คำสั่งที่บ้าสำหรับอิออนหรือสองคน ถ้าฉันต้องเก็บอะไรไว้จากประสบการณ์การใช้คอมพิวเตอร์ - ความท้าทายทางจิตมิตรภาพที่เกิดขึ้นในศูนย์ข้อมูลที่ 2AM ซึ่งเป็นบันไดที่ไม่มีขีด จำกัด ของความสามารถในการปีนขึ้นไปสัมผัสชีวิตของผู้ใช้และครอง PBs ของข้อมูลที่มีค่า งานและชีวิตที่สุขสบาย - รักษาเพียงสิ่งเดียว - นั่นคือความรู้สึกของพระเจ้า
หากความต้องการทั้งหมดของคุณครอบคลุมน่ากลัวไม่จำเป็นต้องเจาะลึกเข้าไปในคอมไพล์เวลาของคุณจะดีขึ้นในการเรียนรู้สิ่งที่คุณต้องการ
git เป็นเพียงเครื่องมือเมื่อคุณต้องทำสิ่งที่คุณไม่สามารถทำได้ด้วยแอพ GUI คุณจะรู้ เพียงจำไว้ว่า github! = git
คุณลักษณะส่วนใหญ่ของ CLI-only ส่วนใหญ่จะเข้ามาเล่นเมื่อคุณบังเอิญเก็บที่เก็บของคุณเข้าสู่สถานะแปลก ๆ และต้องการแก้ไข ในทางกลับกันวิธีที่พบได้บ่อยที่สุดในการทำให้ repo ของคุณอยู่ในสภาวะแปลก ๆ คือการใช้คุณสมบัติขั้นสูงที่คุณไม่เข้าใจ หากคุณยึดติดกับสิ่งที่ GUI ให้มานั่นจะครอบคลุมความต้องการของคุณ 99%
เหตุผลอื่นที่คุณอาจต้องการเรียนรู้ CLI ก็คือมันเป็นภาษากลางของ git ซึ่งหมายความว่าในขณะที่ผู้คนจำนวนมากใช้ GUI ที่แตกต่างกันบนแพลตฟอร์มที่แตกต่างกันถ้าคุณขอความช่วยเหลือจาก StackOverflow หรือที่อื่นคำตอบก็น่าจะมาในรูปแบบของคำสั่ง CLI หากคุณไม่รู้จัก CLI ตัวเลือกของคุณในการขอความช่วยเหลือจะมี จำกัด มากขึ้น
แอปพลิเคชัน GUI พึ่งพาการโต้ตอบด้วยตนเองเพื่อดำเนินการกับพฤติกรรมที่ซับซ้อน สิ่งนี้ยอดเยี่ยมสำหรับการตั้งค่าโครงการและพัฒนาสิ่งใหม่
ประโยชน์ของ Command-Line Interface (CLI) มาจากความสามารถในการสร้างสคริปต์ที่กำหนดไว้ล่วงหน้าซึ่งสามารถเป็นแบบอัตโนมัติ GUI ของ GitHub ทั้งหมดนั้นคือกราฟิกและปุ่มแฟนซีที่เรียกว่า git CLI
สิ่งที่แอป GUI จะไม่ทำเพื่อคุณจะอัปเดต trunk อัตโนมัติของ repo บนเซิร์ฟเวอร์ทุกวันเวลา 1:30 น. แต่งาน cron ที่เรียก git CLI นั้นเป็นวิธีที่ง่ายมากในการตั้งค่า
นอกจากนี้เมื่อทำงานในโครงการในทีมจะสะดวกในการตั้งค่าสคริปต์การติดตั้งสร้างสคริปต์ปรับใช้สคริปต์และสิ่งที่คล้ายกันเพื่อให้เพื่อนร่วมทีมสามารถมุ่งเน้นการแก้ไขปัญหาแทนที่จะเป็นงานซ้ำซากจำเจ
อีกเหตุผลหนึ่งที่ทำให้ CLI อาจเป็นที่นิยมคือเรื่องของเวิร์กโฟลว์ เฟรมเวิร์กจำนวนมากได้รับการจัดการผ่านบรรทัดคำสั่ง การใช้คอมไพล์ผ่าน CLI ให้ฉันจดจ่อกับโครงการของฉันและในไดเรกทอรีโครงการนั้น ตัวอย่างเช่นฉันอาจทำการทดสอบและตัดสินใจที่จะยอมรับการเปลี่ยนแปลงใหม่ทั้งหมดจากอินเทอร์เฟซและตำแหน่งเดียวกัน
เมื่อเร็ว ๆ นี้ฉันต้องขุดลงไปใน Git จริงๆเพื่อให้สามารถช่วยเหลือการโยกย้าย SVN-to-Git และสิ่งที่ฉันเรียนรู้คือเครื่องมือบรรทัดคำสั่ง Git ไม่ใช่ส่วนที่ซับซ้อนในการเรียนรู้
แนวคิดและแนวคิดเบื้องหลัง Git นั้นเป็นส่วนที่ซับซ้อน (และนั่นไม่ใช่เพราะพวกเขาได้รับการออกแบบมาไม่ดี แต่เป็นเพราะพวกเขาเป็นคนต่างชาติกับคนส่วนใหญ่ที่มาจาก VCS ที่รวมศูนย์ไว้ที่อื่น)
เมื่อฉันเข้าใจแนวคิดแล้วข้อความสั่งบรรทัดคำสั่งจริงกลายเป็นเรื่องง่าย นั่นหมายความว่า UI ไม่ได้ช่วยให้เข้าใจ Git (ยกเว้นการดำเนินการที่ง่ายที่สุด)
git
นั้นเรียบง่ายจนผู้คนไม่สามารถเข้าใจได้ - พวกเขากำลังมองหาบางสิ่งที่ยากขึ้น
การรู้จัก CLI นั้นมีประโยชน์สำหรับเมื่อ (ไม่ใช่ถ้า) คุณอยู่ในสภาพแวดล้อมบางอย่างที่คุณไม่สามารถใช้แอพ GUI ได้
สถานการณ์หนึ่งที่อาจเกิดขึ้น: คุณได้รับการขอความช่วยเหลือเป็นเวลาสองสามวันในโครงการในสถานที่ปิดซึ่งมันยากและน่ารำคาญที่จะนำเครื่องมือใหม่เข้าสู่ระบบ พวกเขาใช้ CLI เท่านั้น ผลผลิตของคุณเพิ่งได้รับความนิยมเพราะคุณต้องเรียนรู้ทุกอย่างอีกครั้ง
เหตุผลหนึ่งในการเรียนรู้คอมไพล์บรรทัดคำสั่งคือเอกสารส่วนใหญ่เขียนขึ้นสำหรับสภาพแวดล้อมนั้น นอกจากนี้หากคุณถามคำถาม: "ฉันจะทำ X กับ git ได้อย่างไร" โอกาสที่คำตอบจะมีคำสั่งบรรทัดคำสั่ง
ปัญหาหลักอย่างหนึ่งของการใช้ GUI กับบรรทัดคำสั่งคือคุณไม่สามารถควบคุมกระบวนการของคุณได้ในกรณีส่วนใหญ่ ตัวอย่างเช่นแอปพลิเคชัน GitHub นั้นยอดเยี่ยมในแง่ของความสามารถในการใช้งานสำหรับเวิร์กโฟลว์ Git จำนวนมาก แต่ยังคงยุ่งยากสำหรับกระบวนการ git ขั้นสูง
ตัวอย่างเช่นนี่คือบางสิ่งที่ฉันยังไม่ได้คิดว่าจะทำอย่างไรโดยใช้แอปพลิเคชัน GitHub (สิ่งอื่นที่ควรทราบคือ GUI แต่ละตัวมีกราฟการเรียนรู้ด้วย)
สุดท้าย CLIs อนุญาตให้ผู้ใช้ใช้เครื่องมือเหล่านี้เมื่อทำการสคริปต์
ฉันไม่รู้เกี่ยวกับ GitHub สำหรับ Mac แต่แอพ Windows ทำงานเฉพาะงานที่พบบ่อยที่สุดเท่านั้น - เพิ่มกระทำผลักดึงและอื่น ๆ งานที่ซับซ้อนมากขึ้นเช่นgit merge --no-ff
ต้องทำจากบรรทัดคำสั่ง
นอกจากนี้ยังมีกรณีที่มีคอมไพล์เมื่อ GUI ไม่พร้อมใช้งานเช่นเมื่อ SSHing ไปยังเซิร์ฟเวอร์ระยะไกล
แต่อย่างอื่นถ้า GUI ให้ทุกสิ่งที่คุณต้องการแล้วการเรียนรู้บรรทัดคำสั่งอาจเสียเวลา งานของฉันใช้ TortoiseSVN ในสภาพแวดล้อมแบบ Windows เท่านั้นและฉันไม่ต้องแตะบรรทัดคำสั่ง SVN แม้แต่ครั้งเดียว
ฉันเพิ่งเรียนรู้กรณีหนึ่งที่ CLI สามารถทำได้ดีกว่า GUI เพื่อแสดงสิ่งนี้ฉันได้ยกตัวอย่างจากการควบคุมคอมไพล์หนังสือสำหรับทุกคน
เมื่อคุณต้องการแชร์ผ่านอินทราเน็ตคุณสามารถใช้:
ดูขั้นตอนในการสร้าง repo เปล่า
คำสั่งสำหรับการสร้างพื้นที่เก็บข้อมูลเปล่าจะเหมือนกับที่คุณใช้ในการโคลนที่เก็บยกเว้นพารามิเตอร์ --bare ซึ่งสร้างความแตกต่างทั้งหมด
git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\
Bare_Workbench
การเรียกใช้รหัสก่อนหน้าในคอนโซลของคุณควรสร้างโคลนเปล่าของที่เก็บ Workbench ของเราในโฟลเดอร์ที่ใช้ร่วมกันทั่วไปของคุณที่เรียกว่า generic_share
การสร้างโคลนเปล่า ๆ จากแหล่งเก็บข้อมูลที่มีอยู่แล้วโดยใช้ GUI เป็นกระบวนการที่ง่าย สิ่งที่คุณต้องทำคือ:
คัดลอกไดเรกทอรี. git จากพื้นที่เก็บข้อมูลที่มีอยู่และวางด้วย different_name.git (ชื่อใดก็ตามที่คุณต้องการให้กับพื้นที่เก็บข้อมูลใหม่ของคุณ) นอกพื้นที่เก็บข้อมูล ในกรณีของเราเราไม่มี repo ที่เรียกว่า Workbench ที่ C: \ Users \ raviepic3 \ Desktop \ ข้างในซึ่งเรามี content.docx และตอนนี้ฉันต้องการสร้างพื้นที่เก็บข้อมูลเปลือยใหม่จากนี้โดยใช้ GUI ฉันจะคัดลอก C: \ Users \ raviepic3 \ Desktop \ Workbench.git และวางเป็น C: \ generic_share \ Bare_Workbench.git
เปิด config file
ด้านใน Bare_Workbench.git ด้วยโปรแกรมแก้ไขข้อความและค้นหาบรรทัดที่เขียน bare = false
และแทนที่สตริงเท็จด้วยความจริง
บันทึกและออก.
ใน GUI คุณต้องคลิกหลายครั้งและจำไฟล์ที่จะแก้ไข ใน CLI คำสั่งแบบง่าย ๆ เพียงคำสั่งเดียวก็มีให้สำหรับคุณ