10 เทคนิค Git ขั้นสูง - KDnuggets

10 เทคนิค Git ขั้นสูง – KDnuggets

โหนดต้นทาง: 3083811

10 เทคนิค Git ขั้นสูง
ภาพจากผู้เขียน
 

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

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

คุณได้เพิ่มและคอมมิตไฟล์ด้วยวิธีนี้หลายครั้ง แต่จะทำอย่างไรถ้าฉันบอกคุณว่ามันสามารถทำได้ในบรรทัดเดียวด้วยแฟล็ก `-am`? 

$ git add .
$ git commit -m "new project"

 

ลองใช้สิ่งนี้แทน แล้วมันจะเพิ่มการเปลี่ยนแปลงไฟล์และสร้างการคอมมิตโดยใช้ข้อความ 

$ git commit -am "new project"

 

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

 

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

$ git commit --amend -m "Love"

 

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

 

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

$ git add . 
$ git commit --amend --no-edit

 

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

หากคุณต้องการส่งการคอมมิตในเครื่องและแทนที่ประวัติระยะไกลโดยไม่ต้องจัดการกับปัญหา คุณสามารถใช้แฟล็ก `–force` อย่างไรก็ตาม สิ่งสำคัญที่ควรทราบก็คือ ไม่แนะนำให้ใช้ธงบังคับ และควรใช้เมื่อคุณมั่นใจอย่างแน่นอนว่ากำลังทำอะไรอยู่เท่านั้น โปรดทราบว่าการใช้ธงบังคับจะเขียนประวัติระยะไกลใหม่

$ git push origin master --force

 

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

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

เราจะใช้ `log` พร้อมกับแฟล็ก `–oneline` เพื่อดูประวัติการคอมมิตในรูปแบบที่สั้นกว่า 

$ git log --oneline

 

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

 

หากต้องการเปลี่ยนกลับไปเป็นการคอมมิตครั้งก่อน เราใช้คำสั่ง `git revert` ตามด้วยรหัสคอมมิต สิ่งนี้จะสร้างการคอมมิตใหม่โดยมีการเปลี่ยนแปลงจากการคอมมิตครั้งก่อน

$ git revert 8f184d5

คุณต้องการเพิ่มประสิทธิภาพการทำงานของคุณบน GitHub หรือไม่? ด้วย GitHub Code Spaces ตอนนี้คุณสามารถแก้ไขและรันโค้ดของคุณได้โดยตรงในเบราว์เซอร์ของคุณ 

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

 

10 เทคนิค Git ขั้นสูง
ภาพจากผู้เขียน
 

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

 

10 เทคนิค Git ขั้นสูง
ภาพจากผู้เขียน

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

เราจะบันทึกความคืบหน้าในปัจจุบันของเราโดยระบุชื่อและเก็บไว้ 

$ git stash save new-idea

 

Saved working directory and index state On master: new-idea

 

คุณสามารถดูรายการสะสมของคุณและจดบันทึกดัชนีที่เกี่ยวข้องเพื่อเรียกคืนได้

$ git stash list

 

stash@{0}: On master: new-idea

 

ที่ซ่อน "แนวคิดใหม่" ของเราจะถูกบันทึกไว้ที่ดัชนี 0 หากต้องการดึงข้อมูล ให้ใช้คำสั่งนี้:

$ git stash apply 0

 

On branch master
Your branch is up to date with 'origin/master'.

คุณมีตัวเลือกในการเปลี่ยนชื่อสาขาเริ่มต้นเป็นชื่อที่เหมาะสมกว่า ในกรณีนี้ เราจะเปลี่ยนชื่อ "master" เป็น "main" 

$ git branch -M main

 

10 เทคนิค Git ขั้นสูง
 

คุณสามารถตรวจสอบการเปลี่ยนแปลงได้โดยใช้คำสั่งต่อไปนี้: 

$ git status

 

On branch main
Your branch is up to date with 'origin/master'.

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

$ git log --graph --decorate --oneline

 

10 เทคนิค Git ขั้นสูง

หลายครั้งที่ผมเปลี่ยนสาขาใหม่จนลืมชื่อสาขาเดิม ด้วยเหตุนี้ ฉันจึงต้องใช้คำสั่ง `git Branch -a` เพื่อดูรายชื่อสาขา อย่างไรก็ตาม มีวิธีที่ง่ายกว่าในการกลับไปยังสาขาเดิมโดยใช้เครื่องหมายขีด “-” หลังคำสั่ง `git checkout`

ก่อนอื่นเราจะสร้างสาขา Git ใหม่ “neo”

$ git branch neo

 

เราจะเปลี่ยนไปใช้สาขา "นีโอ"

$ git checkout neo

 

Switched to branch 'neo'

 

หากต้องการกลับไปยังสาขาเดิม เราจะใช้คำสั่งต่อไปนี้:

$ git checkout -

 

Switched to branch 'main'

เราได้เรียนรู้เกี่ยวกับการเอาชนะพื้นที่เก็บข้อมูลระยะไกล มาเรียนรู้วิธีแทนที่พื้นที่เก็บข้อมูลในเครื่องโดยใช้พื้นที่เก็บข้อมูลระยะไกล

เราจะใช้คำสั่ง `ดึงข้อมูล` เพื่อรับการเปลี่ยนแปลงล่าสุดจากพื้นที่เก็บข้อมูลระยะไกล 

$ git fetch origin

 

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

$ git reset --hard origin/master

 

HEAD is now at f425059 Love

 

หากยังมีไฟล์ที่ไม่ได้ติดตามอยู่ สามารถลบออกได้โดยใช้คำสั่งต่อไปนี้:

$ git clean -df

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

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

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

อาบิด อาลี อาวัน (@1อบีดาลิวัน) เป็นนักวิทยาศาสตร์ข้อมูลที่ได้รับการรับรองมืออาชีพที่รักการสร้างแบบจำลองการเรียนรู้ของเครื่อง ปัจจุบันเขามุ่งเน้นไปที่การสร้างเนื้อหาและการเขียนบล็อกทางเทคนิคเกี่ยวกับการเรียนรู้ของเครื่องและเทคโนโลยีวิทยาศาสตร์ข้อมูล อาบิดสำเร็จการศึกษาระดับปริญญาโทด้านการจัดการเทคโนโลยีและปริญญาตรีสาขาวิศวกรรมโทรคมนาคม วิสัยทัศน์ของเขาคือการสร้างผลิตภัณฑ์ AI โดยใช้โครงข่ายประสาทเทียมแบบกราฟสำหรับนักเรียนที่ป่วยเป็นโรคทางจิต

ประทับเวลา:

เพิ่มเติมจาก KD นักเก็ต