ด้านล่างนี้เป็นสูตรโกง ฉันหวังว่ามันจะมีประโยชน์สำหรับผู้เริ่มต้นในการอ้างถึงพื้นฐานอย่างรวดเร็ว
ขั้นตอนที่ 0 — ข้อกำหนดเบื้องต้น — การตั้งค่าการเชื่อมต่อ ssh จากในพื้นที่ของเราไปยัง GitHub/GitLab
โปรดทำตามขั้นตอนที่ระบุไว้ที่ https://docs.github.com/en/authentication/connecting-to-github-with-ssh
ขั้นตอนที่ 1 — การตั้งค่าพื้นที่เก็บข้อมูล
- โคลนพื้นที่เก็บข้อมูลในสภาพแวดล้อมท้องถิ่นของเราโดยใช้
git clone <url-from-repository>
- คุณสามารถรับค่านี้ได้จากที่เก็บ Git ไปที่ repo → รหัส (ปุ่มสีเขียว) → คัดลอก ssh URL
- หลังจากการดำเนินการโคลนเสร็จสิ้น จะชี้ไปที่สาขาเริ่มต้น
ขั้นตอนที่ 2 — การตั้งค่าสาขา
- หากต้องการสลับไปยังสาขาที่มีอยู่ในระยะไกล
git checkout <branch-name>
หากต้องการรับการเปลี่ยนแปลงล่าสุดทั้งหมดในสาขาในพื้นที่ของเราgit pull — rebase
- หากต้องการสร้างสาขาใหม่ในพื้นที่และพุชไปที่ระยะไกล
— หากคุณอยู่ในสาขาใดสาขาหนึ่งในขณะนี้และต้องการให้สิ่งนี้เป็นจุดเริ่มต้นของสาขาใหม่ของคุณ ให้ใช้git checkout -b <branch-name>
.
— หากคุณ สาขาใหม่ควรอิงจากสาขาอื่น ใช้git branch <new-branch> <base-branch>
- จากขั้นตอนใดขั้นตอนหนึ่งข้างต้น สาขาในพื้นที่จะถูกสร้างขึ้นแต่จะไม่ปรากฏในระยะไกล หากต้องการส่งไปที่ระยะไกล เราสามารถใช้
git push -u origin <local-branch-name>
- สามารถดูข้อมูลเพิ่มเติมได้ที่ https://www.git-tower.com/learn/git/faq/create-branch
ขั้นตอนที่ 3 — ทำการเปลี่ยนแปลง
- หากต้องการตรวจสอบสถานะปัจจุบันของสาขา ให้ใช้
git status
มันจะแสดงรายการ โดยจะมีไฟล์ใหม่ ไฟล์ที่แก้ไข และไฟล์ที่ถูกลบด้วย - เพิ่มการเปลี่ยนแปลงในพื้นที่การแสดงละคร
git add <path-to-file>
หรือgit add <path-to-directory>
- ยอมรับการเปลี่ยนแปลงกับสาขาในพื้นที่ของคุณ
git commit -m “<commit-message>”
สิ่งนี้จะทำให้เกิดการเปลี่ยนแปลงทั้งหมดที่เพิ่มลงในพื้นที่การแสดงละคร (ในขั้นตอนข้างต้น)
ขั้นตอนที่ 4 — รับการเปลี่ยนแปลงล่าสุดจากระยะไกล
git pull --rebase
— สิ่งนี้จะช่วยเราอัปเดตสาขาในพื้นที่ของเราด้วยการเปลี่ยนแปลงทั้งหมดจากระยะไกล ด้วยแฟล็ก--rebase
คอมไพล์จะย้ายคอมมิตในเครื่องของเราไปไว้บนสุดของคอมมิตล่าสุดในรีโมต- บางคนใช้ simple
git pull
และจะเป็นการเพิ่มการคอมมิตการผสานใหม่สำหรับทุกสิ่งที่มีอยู่ในระยะไกล แต่ไม่ใช่ในพื้นที่ของเรา ความมุ่งมั่นเพิ่มเติมนี้มักจะทำให้เกิดความสับสน โดยส่วนตัวแล้วฉันชอบใช้คำสั่ง git pull ร่วมกับแฟล็ก rebase สำหรับข้อมูลเพิ่มเติม โปรดดูที่ https://git-scm.com/docs/git-pull
ขั้นตอนที่ 5— ผลักดันการเปลี่ยนแปลงของเราไปยังระยะไกล
git push
ขั้นตอนที่ 6— ตรวจสอบประวัติการคอมมิต
git log
— นี่จะแสดงการคอมมิตทั้งหมดในสาขาปัจจุบันโดยมีการเปลี่ยนแปลงล่าสุดอยู่ด้านบน การคอมมิตแต่ละครั้งจะมีแฮชคอมมิตgit show <commit-hash>
— นี่จะแสดงการเปลี่ยนแปลงต่อไฟล์ของการคอมมิต สามารถรับแฮชคอมมิตได้จากรายการด้านบน
ขั้นตอนที่ 7— ลบสาขาในพื้นที่
git branch -d <branch-name>
— การดำเนินการนี้จะลบสาขาในเครื่อง หากมีการเปลี่ยนแปลงที่ไม่ได้รวมเข้ากับรีโมต เราจำเป็นต้องทำการบังคับลบ git branch -D <branch-name>
กิจกรรมเพิ่มเติม
สร้างพื้นที่เก็บข้อมูลใหม่ในพื้นที่ของเราและพุชไปยังระยะไกล
mkdir <folder-name> cd <folder-name> touch .gitignore git init git add . git commit -m "Initializing the repository" git remote add origin <username>@<git-server-url>:/path/to/project.git git push --set-upstream origin master
คัดลอกการคอมมิตจากสาขา 1 ไปยังสาขา 2
- สลับไปที่สาขา 1,
git checkout <branch-1>
. - รับแฮชคอมมิตจากสาขา 1,
git log
- สลับไปที่สาขา 2,
git checkout <branch-2>
. - ใช้การเปลี่ยนแปลง
git cherry-pick <commit-hash>
- สามารถดูความช่วยเหลือเพิ่มเติมได้ที่ https://www.atlassian.com/git/tutorials/cherry-pick
คืนค่าการคอมมิตหนึ่งรายการขึ้นไปไปยังสาขาท้องถิ่น
git reset --soft HEAD~5
— สิ่งนี้จะลบการคอมมิต 5 อันดับแรก แต่การเปลี่ยนแปลงที่ทำในนั้นจะแสดงเป็นการเปลี่ยนแปลงที่ไม่ได้จัดฉาก สิ่งนี้มีประโยชน์เมื่อเราต้องการเปลี่ยนแปลงโค้ดที่คอมมิตไว้ก่อนหน้านี้git reset --hard HEAD~5
— สิ่งนี้จะลบการเปลี่ยนแปลงในคอมมิต 5 อันดับแรกออกทั้งหมด รหัสจะไม่ถูกเก็บรักษาไว้ที่ใดในท้องถิ่น ดังนั้นสิ่งนี้จึงต้องพิจารณาอย่างรอบคอบ
Stitch กระทำในสาขาท้องถิ่น
- เราอาจได้ทำข้อตกลงเล็กๆ น้อยๆ มากมาย ตอนนี้ หากเราต้องการจัดระเบียบและจัดกลุ่มให้เป็นชุดที่เกี่ยวข้องกัน เราสามารถใช้
git rebase
ได้ git rebase -i HEAD~5
— นี่จะเป็นการเปิดเชลล์เชิงโต้ตอบที่แสดงการคอมมิตล่าสุด 5 รายการ หากเราต้องการรวม Commit ใด ๆ เข้ากับ Commit อื่น เราสามารถใช้ตัวเลือก "squash" ได้- นี่เป็นขั้นสูงเล็กน้อย ดังนั้นโปรดดำเนินการนี้หลังจากพิจารณาอย่างถี่ถ้วนแล้ว นอกจากนี้ ไม่ควรทำเช่นนี้กับสาขาที่มีผู้ใช้หลายคน เมื่อการเปลี่ยนแปลงเหล่านี้ถูกผลักไปยังระยะไกล จะทำให้เกิดปัญหากับพื้นที่เก็บข้อมูลในเครื่องของบุคคลอื่น ในขณะที่เรากำลังเขียนประวัติ git ใหม่ที่นี่
- ข้อมูลเพิ่มเติมที่ https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase