แทนที่จะเป็นการแนะนำตัว
สวัสดี! วันนี้เราจะพูดถึงระบบควบคุมเวอร์ชันที่เรียกว่า Git![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 1](https://cdn.codegym.cc/images/article/d6ece90f-4588-42d0-9371-c41697f8201d/800.jpeg)
พื้นฐาน Git
Git คือระบบควบคุมเวอร์ชันแบบกระจายสำหรับโค้ดของเรา ทำไมเราต้องการมัน? ทีมแบบกระจายต้องการระบบบางอย่างในการจัดการงานของพวกเขา จำเป็นต้องติดตามการเปลี่ยนแปลงที่เกิดขึ้นเมื่อเวลาผ่านไป นั่นคือเราต้องสามารถเห็นทีละขั้นตอนว่าไฟล์ใดมีการเปลี่ยนแปลงและอย่างไร นี่เป็นสิ่งสำคัญอย่างยิ่งเมื่อคุณตรวจสอบสิ่งที่เปลี่ยนแปลงในบริบทของงานเดียว ทำให้สามารถย้อนกลับการเปลี่ยนแปลงได้การติดตั้ง Git
มาติดตั้ง Java บนคอมพิวเตอร์ของคุณกันเถอะการติดตั้งบน Windows
ตามปกติ คุณต้องดาวน์โหลดและเรียกใช้ไฟล์ exe ทุกอย่างง่ายที่นี่: คลิกที่ลิงค์แรกของ Googleทำการติดตั้ง เท่านี้ก็เรียบร้อย ในการทำเช่นนี้ เราจะใช้ bash Console ที่ Windows จัดเตรียมไว้ให้ ใน Windows คุณต้องเรียกใช้ Git Bash นี่คือลักษณะที่ปรากฏในเมนูเริ่ม:![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 2](https://cdn.codegym.cc/images/article/7aa26c09-a314-4e83-8b06-4e886ac37a89/512.jpeg)
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 3](https://cdn.codegym.cc/images/article/8bcda11a-96b8-482c-a20e-19df81d26a49/800.jpeg)
การติดตั้งบน Linux
โดยปกติแล้ว Git จะเป็นส่วนหนึ่งของลีนุกซ์ดิสทริบิวชันและติดตั้งไว้แล้ว เนื่องจากมันเป็นเครื่องมือที่เดิมเขียนขึ้นสำหรับการพัฒนาเคอร์เนลของลินุกซ์ แต่มีบางสถานการณ์ที่ไม่เป็นเช่นนั้น ในการตรวจสอบ คุณต้องเปิดเทอร์มินัลแล้วเขียน: git --version หากคุณได้รับคำตอบที่เข้าใจได้ ก็ไม่จำเป็นต้องติดตั้งอะไร เปิดเทอร์มิ นัลและติดตั้ง Git บน Ubuntu ฉันกำลังทำงานกับ Ubuntu ดังนั้นฉันสามารถบอกคุณได้ว่าจะเขียนอะไร: sudo apt-get install gitการติดตั้งบน macOS
ก่อนอื่นคุณต้องตรวจสอบว่ามี Git อยู่แล้วหรือไม่ หากคุณยังไม่มี วิธีที่ง่ายที่สุดในการดาวน์โหลดคือ ดาวน์โหลดเวอร์ชันล่าสุดที่นี่ . หากติดตั้ง Xcode แล้ว Git จะถูกติดตั้งโดยอัตโนมัติอย่างแน่นอนการตั้งค่าคอมไพล์
Git มีการตั้งค่าผู้ใช้สำหรับผู้ใช้ที่จะส่งงาน สิ่งนี้สมเหตุสมผลและจำเป็น เนื่องจาก Git นำข้อมูลนี้ไปใช้ในฟิลด์ Author เมื่อมีการสร้างคอมมิต ตั้งค่าชื่อผู้ใช้และรหัสผ่านสำหรับโครงการทั้งหมดของคุณโดยเรียกใช้คำสั่งต่อไปนี้:
git config --global user.name "Ivan Ivanov"
git config --global user.email ivan.ivanov@gmail.com
หากคุณต้องการเปลี่ยนผู้เขียนสำหรับโครงการใดโครงการหนึ่ง คุณสามารถนำ "--global" ออกได้ สิ่งนี้จะทำให้เราได้สิ่งต่อไปนี้:
git config user.name "Ivan Ivanov"
git config user.email ivan.ivanov@gmail.com
ทฤษฎีเล็กน้อย ...
เพื่อเจาะลึกหัวข้อนี้ เราควรแนะนำคุณเกี่ยวกับคำศัพท์และการกระทำใหม่ๆ...- ที่เก็บคอมไพล์
- ให้สัญญา
- สาขา
- ผสาน
- ความขัดแย้ง
- ดึง
- ดัน
- วิธีละเว้นบางไฟล์ (.gitignore)
สถานะใน Git
Git มีรูปปั้นหลายอย่างที่ต้องเข้าใจและจดจำ:- ไม่ได้ติดตาม
- แก้ไข
- จัดฉาก
- มุ่งมั่น
คุณควรเข้าใจเรื่องนี้อย่างไร?
นี่คือสถานะที่ใช้กับไฟล์ที่มีรหัสของเรา:- ไฟล์ที่สร้างขึ้นแต่ยังไม่ได้เพิ่มไปยังที่เก็บมีสถานะ "ไม่ถูกติดตาม"
- เมื่อเราทำการเปลี่ยนแปลงไฟล์ที่เพิ่มไปยังที่เก็บ Git แล้ว สถานะของไฟล์จะเป็น "แก้ไข"
- ในบรรดาไฟล์ที่เราเปลี่ยนแปลง เราเลือกไฟล์ที่เราต้องการ และคลาสเหล่านี้จะเปลี่ยนสถานะเป็น "staged"
- การคอมมิตถูกสร้างขึ้นจากไฟล์ที่เตรียมไว้ในสถานะสเตจและไปที่ที่เก็บ Git หลังจากนั้น จะไม่มีไฟล์ที่มีสถานะ "จัดฉาก" แต่อาจมีไฟล์ที่มีสถานะ "แก้ไข"
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 4](https://cdn.codegym.cc/images/article/40d913be-0717-4612-9ad3-4ef73e1bb344/512.jpeg)
คอมมิตคืออะไร?
คอมมิชชันเป็นเหตุการณ์หลักเมื่อพูดถึงการควบคุมเวอร์ชัน ประกอบด้วยการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นตั้งแต่การคอมมิตเริ่มต้นขึ้น คอมมิชชันจะเชื่อมโยงเข้าด้วยกันเหมือนรายการที่เชื่อมโยงรายการเดียว โดยเฉพาะอย่างยิ่ง: มีการกระทำครั้งแรก เมื่อคอมมิทที่สองถูกสร้างขึ้น มันจะรู้ว่าอะไรจะเกิดขึ้นหลังจากคอมมิทแรก และในลักษณะนี้สามารถติดตามข้อมูลได้ นอกจากนี้ การคอมมิตยังมีข้อมูลของตัวเองอีกด้วย ซึ่งเรียกว่าข้อมูลเมตา:- ตัวระบุเฉพาะของคอมมิชชัน ซึ่งสามารถใช้ค้นหาได้
- ชื่อผู้เขียนคอมมิท ผู้สร้างมันขึ้นมา
- วันที่สร้างคอมมิท
- ความคิดเห็นที่อธิบายถึงสิ่งที่ทำระหว่างการกระทำ
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 5](https://cdn.codegym.cc/images/article/4efaf389-07d9-49ac-bb68-0ceb410bc868/512.jpeg)
สาขาคืออะไร?
สาขาเป็นตัวชี้ไปยังการกระทำบางอย่าง เนื่องจากการคอมมิตรู้ว่าคอมมิชชันใดอยู่ก่อนหน้า เมื่อสาขาชี้ไปที่คอมมิชชัน คอมมิชชันก่อนหน้านี้ทั้งหมดจะมีผลกับคอมมิตนั้นด้วย ดังนั้น เราสามารถพูดได้ว่าคุณสามารถมีสาขาได้มากเท่าที่คุณต้องการโดยชี้ไปที่การกระทำเดียวกัน งานเกิดขึ้นในสาขา ดังนั้นเมื่อมีการสร้างคอมมิชชันใหม่ สาขาจะย้ายตัวชี้ไปยังคอมมิชชันล่าสุดเริ่มต้นใช้งาน Git
คุณสามารถทำงานกับที่เก็บข้อมูลในเครื่องเพียงอย่างเดียวเช่นเดียวกับรีโมต ในการฝึกฝนคำสั่งที่จำเป็น คุณสามารถจำกัดตัวเองไว้ที่ที่เก็บในเครื่อง โดยจะเก็บข้อมูลทั้งหมดของโครงการไว้ในโฟลเดอร์ .git เท่านั้น หากเรากำลังพูดถึงพื้นที่เก็บข้อมูลระยะไกล ข้อมูลทั้งหมดจะถูกเก็บไว้ที่ใดที่หนึ่งบนเซิร์ฟเวอร์ระยะไกล: เฉพาะสำเนาของโครงการเท่านั้นที่จัดเก็บไว้ในเครื่อง การเปลี่ยนแปลงที่ทำกับสำเนาในเครื่องของคุณสามารถพุช (git push) ไปยังที่เก็บระยะไกลได้ ในการสนทนาของเราที่นี่และด้านล่าง เรากำลังพูดถึงการทำงานกับ Git ในคอนโซล แน่นอน คุณสามารถใช้โซลูชันที่ใช้ GUI บางประเภทได้ (เช่น IntelliJ IDEA) แต่ก่อนอื่น คุณควรทราบก่อนว่าคำสั่งใดถูกเรียกใช้งานและความหมายของคำสั่งเหล่านั้นทำงานกับ Git ในที่เก็บในเครื่อง
ต่อไป ฉันขอแนะนำให้คุณทำตามขั้นตอนทั้งหมดที่ฉันทำในขณะที่คุณอ่านบทความ สิ่งนี้จะช่วยปรับปรุงความเข้าใจและความเชี่ยวชาญในเนื้อหาของคุณ อิ่มอร่อย! :) ในการสร้างที่เก็บในเครื่องคุณต้องเขียน:
git init
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 6](https://cdn.codegym.cc/images/article/48de2e66-2655-48d9-acad-0a13de2219a7/800.jpeg)
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 7](https://cdn.codegym.cc/images/article/e06c3a0d-8508-45bb-8e69-9d594a0986f1/800.jpeg)
- git add -A — เพิ่มไฟล์ทั้งหมดในสถานะ "staged"
- คอมไพล์เพิ่ม . — เพิ่มไฟล์ทั้งหมดจากโฟลเดอร์นี้และโฟลเดอร์ย่อยทั้งหมด โดยพื้นฐานแล้วสิ่งนี้เหมือนกับก่อนหน้านี้
- git add <ชื่อไฟล์> — เพิ่มไฟล์ที่ต้องการ ที่นี่คุณสามารถใช้นิพจน์ทั่วไปเพื่อเพิ่มไฟล์ตามรูปแบบบางอย่างได้ ตัวอย่างเช่น git add *.java: หมายความว่าคุณต้องการเพิ่มไฟล์ที่มีนามสกุล java เท่านั้น
git add *.txt
ในการตรวจสอบสถานะเราใช้คำสั่งที่เรารู้จักแล้ว:
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 8](https://cdn.codegym.cc/images/article/2237218c-212e-420e-9310-1087eb0ffdaa/800.jpeg)
git commit -m "all txt files were added to the project"
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 9](https://cdn.codegym.cc/images/article/b9b67c35-5763-459f-8981-d9a875510e4f/800.jpeg)
git log
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 10](https://cdn.codegym.cc/images/article/e7306161-c798-40f2-9a5f-39aacf0b09ee/800.jpeg)
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 11](https://cdn.codegym.cc/images/article/bc3ca37d-7017-4416-aab7-c28afef0d729/800.jpeg)
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 12](https://cdn.codegym.cc/images/article/12ff5466-87cf-4132-b881-6a8f636aee5e/800.jpeg)
git diff
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 13](https://cdn.codegym.cc/images/article/dd8c0ea3-99f1-491a-9f25-d9186ab057e4/800.jpeg)
git add test_resource.txt
git commit -m "added hello word! to test_resource.txt"
หากต้องการดูคอมมิชชันทั้งหมด ให้เขียน:
git log
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 14](https://cdn.codegym.cc/images/article/2401b76c-ec69-456c-b2bb-4329ae15ae96/800.jpeg)
git add GitTest.java
git commit -m "added GitTest.java"
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 15](https://cdn.codegym.cc/images/article/810485d7-307e-43dc-bc7d-a86f45910cb0/800.jpeg)
ทำงานกับ .gitignore
เห็นได้ชัดว่าเราต้องการเก็บซอร์สโค้ดเพียงอย่างเดียวและไม่ต้องการอย่างอื่นในที่เก็บข้อมูล แล้วจะมีอะไรอีก? อย่างน้อยที่สุด คอมไพล์คลาสและ/หรือไฟล์ที่สร้างโดยสภาพแวดล้อมการพัฒนา ในการบอกให้ Git เพิกเฉย เราต้องสร้างไฟล์พิเศษ ทำสิ่งนี้: สร้างไฟล์ชื่อ .gitignore ในรูทของโปรเจ็กต์ แต่ละบรรทัดในไฟล์นี้แสดงถึงรูปแบบที่จะละเว้น ในตัวอย่างนี้ ไฟล์ .gitignore จะมีลักษณะดังนี้:
```
*.class
target/
*.iml
.idea/
```
ลองดู:
- บรรทัดแรกคือการละเว้นไฟล์ทั้งหมดที่มีนามสกุล .class
- บรรทัดที่สองคือการละเว้นโฟลเดอร์ "เป้าหมาย" และทุกอย่างที่อยู่ในนั้น
- บรรทัดที่สามคือการละเว้นไฟล์ทั้งหมดที่มีนามสกุล .iml
- บรรทัดที่สี่คือการละเว้นโฟลเดอร์ .idea
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 16](https://cdn.codegym.cc/images/article/57aa8dbf-e06a-491f-a9cb-cd79316eca07/800.jpeg)
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 17](https://cdn.codegym.cc/images/article/8c16c33a-4f62-4886-b54b-97394ee68fd3/800.jpeg)
git add .gitignore
git commit -m "added .gitignore file"
และตอนนี้เป็นช่วงเวลาแห่งความจริง: เรามีคลาส GitTest.class ที่คอมไพล์แล้วซึ่ง "ไม่ได้ติดตาม" ซึ่งเราไม่ต้องการเพิ่มในที่เก็บ Git ตอนนี้เราควรเห็นผลกระทบของไฟล์ .gitignore:
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 18](https://cdn.codegym.cc/images/article/6ac8cab7-ee6b-45cf-8840-e2614d113a76/800.jpeg)
การทำงานกับสาขาและอื่นๆ
โดยปกติแล้ว การทำงานในสาขาเดียวนั้นไม่สะดวกสำหรับนักพัฒนาที่โดดเดี่ยว และเป็นไปไม่ได้หากมีคนมากกว่าหนึ่งคนในทีม นี่คือเหตุผลที่เรามีสาขา อย่างที่ฉันได้กล่าวไปแล้วว่าสาขาเป็นเพียงตัวชี้ที่สามารถเคลื่อนที่ได้เพื่อกระทำ ในส่วนนี้ เราจะสำรวจการทำงานในสาขาต่างๆ: วิธีผสานการเปลี่ยนแปลงจากสาขาหนึ่งไปยังอีกสาขาหนึ่ง ความขัดแย้งที่อาจเกิดขึ้น และอื่นๆ อีกมากมาย หากต้องการดูรายชื่อสาขาทั้งหมดในที่เก็บและเข้าใจว่าคุณอยู่สาขาใด คุณต้องเขียน:
git branch -a
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 19](https://cdn.codegym.cc/images/article/45b0a983-dbe9-4ea8-9cb7-ab51fa5fde80/800.jpeg)
- สร้างสาขาใหม่ตามสาขาที่เราอยู่ (99% ของกรณี)
- สร้างสาขาตามการกระทำเฉพาะ (1% ของกรณี)
มาสร้างสาขาตามการกระทำเฉพาะ
เราจะใช้ตัวระบุเฉพาะของการกระทำ เพื่อค้นหาเราเขียน:
git log
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 20](https://cdn.codegym.cc/images/article/7f01930c-e706-47a0-a908-d5c286925faa/800.jpeg)
git checkout -b development 6c44e53d06228f888f2f454d3cb8c1c976dd73f8
สาขาถูกสร้างขึ้นโดยมีเพียงสองรายการแรกจากสาขาหลัก ในการตรวจสอบสิ่งนี้ ขั้นแรกเราต้องแน่ใจว่าได้เปลี่ยนไปใช้สาขาอื่นแล้วดูจำนวนคอมมิชชันที่นั่น:
git status
git log
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 21](https://cdn.codegym.cc/images/article/707b0ad4-7b1a-4c54-a3c7-5b4c5e4994ab/800.jpeg)
git branch -a
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 22](https://cdn.codegym.cc/images/article/afbd0ea0-4564-48e6-afa9-ca055ce9fc61/800.jpeg)
มาสร้างสาขาตามสาขาปัจจุบันกันเถอะ
วิธีที่สองในการสร้างสาขาคือสร้างจากสาขาอื่น ฉันต้องการสร้างสาขาตามสาขาหลัก ก่อนอื่น ฉันต้องเปลี่ยนไปใช้มัน และขั้นตอนต่อไปคือสร้างอันใหม่ ลองดู:- git checkout master — เปลี่ยนเป็นสาขาหลัก
- git status — ยืนยันว่าเราอยู่ใน master branch จริงๆ
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 23](https://cdn.codegym.cc/images/article/85a8c266-4ee6-44ae-91d7-8cb43fd3aae9/800.jpeg)
git checkout -b feature/update-txt-files
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 24](https://cdn.codegym.cc/images/article/0e277473-27e5-4109-96ff-4e7471c1939c/800.jpeg)
แก้ปัญหาความขัดแย้ง
ก่อนที่เราจะสำรวจว่าความขัดแย้งคืออะไร เราต้องพูดถึงการรวมสาขาหนึ่งเข้ากับอีกสาขาหนึ่ง ภาพนี้แสดงขั้นตอนการรวมสาขาหนึ่งเข้ากับอีกสาขา:![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 25](https://cdn.codegym.cc/images/article/1278634a-477e-4f47-ac25-5fd5dbcdd78d/512.jpeg)
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 26](https://cdn.codegym.cc/images/article/2b3b68bc-98fa-426b-ba18-aeac8386dae2/800.jpeg)
git add *.txt
git commit -m "updated txt files"
git log
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 27](https://cdn.codegym.cc/images/article/480108fb-4694-4bd2-bd60-249459f47342/800.jpeg)
git checkout master
git merge feature/update-txt-files
git log
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 28](https://cdn.codegym.cc/images/article/51a026f9-0f3d-4d06-8b6d-411fbe7df1c1/800.jpeg)
git branch -D feature/update-txt-files
ทุกอย่างชัดเจนแล้วใช่ไหม มาทำให้สถานการณ์ซับซ้อนขึ้น: ตอนนี้สมมติว่าคุณต้องเปลี่ยนไฟล์ txt อีกครั้ง แต่ตอนนี้ไฟล์นี้จะถูกเปลี่ยนในสาขาหลักเช่นกัน กล่าวอีกนัยหนึ่งก็จะเปลี่ยนขนานกันไป Git จะไม่สามารถทราบได้ว่าต้องทำอย่างไรเมื่อเราต้องการรวมรหัสใหม่ของเราเข้ากับสาขาหลัก ไปกันเถอะ! เราจะสร้างสาขาใหม่ตามต้นแบบ ทำการเปลี่ยนแปลง text_resource.txt และสร้างการคอมมิตสำหรับงานนี้:
git checkout -b feature/add-header
... we make changes to the file
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 29](https://cdn.codegym.cc/images/article/9e25fdf0-56c1-48fa-aac4-7cb5e269476a/800.jpeg)
git add *.txt
git commit -m "added header to txt"
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 30](https://cdn.codegym.cc/images/article/ad86777a-fc95-41f1-8168-9741025b35df/800.jpeg)
git checkout master
… we updated test_resource.txt
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 31](https://cdn.codegym.cc/images/article/834a8af7-f699-45aa-8dce-fd2684f6843a/800.jpeg)
git add test_resource.txt
git commit -m "added master header to txt"
และตอนนี้จุดที่น่าสนใจที่สุด: เราจำเป็นต้องรวมการเปลี่ยนแปลงจากสาขาคุณลักษณะ/ส่วนหัวของส่วนเสริมเข้ากับต้นแบบ เราอยู่ในสาขาหลัก ดังนั้นเราต้องเขียน:
git merge feature/add-header
แต่ผลลัพธ์จะเป็นความขัดแย้งในไฟล์ test_resource.txt: ![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 32](https://cdn.codegym.cc/images/article/50de1369-6a22-48d0-979f-ad167518e177/800.jpeg)
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 33](https://cdn.codegym.cc/images/article/dc31c147-205b-4103-8297-b0e7bf321301/800.jpeg)
- การเปลี่ยนแปลงที่อยู่ในบรรทัดนี้ในสาขาหลักจะอยู่ระหว่าง "<<<<<<< HEAD" และ "======="
- การเปลี่ยนแปลงที่อยู่ในสาขาคุณลักษณะ/ส่วนเพิ่มส่วนหัวอยู่ระหว่าง "=======" และ ">>>>>>> คุณลักษณะ/ส่วนเพิ่มส่วนหัว"
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 34](https://cdn.codegym.cc/images/article/0c0d2c2b-050b-4653-9b70-a12cf3d0c4a9/800.jpeg)
git status
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 35](https://cdn.codegym.cc/images/article/02a316f3-d70c-4cd0-87c1-9cb8cf9afb99/800.jpeg)
git add *.txt
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 36](https://cdn.codegym.cc/images/article/5a0f94d6-63a1-4a9e-8f23-0bb53c0fcb0b/800.jpeg)
git commit
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 37](https://cdn.codegym.cc/images/article/7b356e97-0738-4cd7-816e-58c8ab6d753b/800.jpeg)
การทำงานกับที่เก็บข้อมูลระยะไกล
ขั้นตอนสุดท้ายคือการหาคำสั่งเพิ่มเติมที่จำเป็นสำหรับการทำงานกับที่เก็บระยะไกล ดังที่ฉันได้กล่าวไปแล้ว พื้นที่เก็บข้อมูลระยะไกลเป็นสถานที่ที่จัดเก็บพื้นที่เก็บข้อมูลและคุณสามารถโคลนได้ มีที่เก็บระยะไกลประเภทใดบ้าง? ตัวอย่าง:-
GitHubเป็นแพลตฟอร์มการจัดเก็บข้อมูลที่ใหญ่ที่สุดสำหรับพื้นที่เก็บข้อมูลและการพัฒนาร่วมกัน ฉันได้อธิบายไปแล้วในบทความก่อนหน้านี้
ติดตามฉันบนGitHub ฉันมักจะอวดผลงานของฉันที่นั่นในสาขาที่ฉันกำลังศึกษาอยู่ -
GitLabเป็นเครื่องมือบนเว็บสำหรับ วงจรชีวิต ของDevOpsด้วยโอเพ่นซอร์ส เป็น ระบบที่ใช้ Gitสำหรับจัดการที่เก็บโค้ดด้วย wiki, ระบบติดตามบั๊ก , ไปป์ไลน์ CI/CD และฟังก์ชันอื่นๆ
หลังจากมีข่าวว่า Microsoft ซื้อ GitHub นักพัฒนาบางรายก็ทำซ้ำโครงการของตนใน GitLab -
BitBucket เป็นบริการเว็บสำหรับการโฮสต์โครงการและการพัฒนาร่วมกันโดยใช้ระบบควบคุมเวอร์ชันของ Mercurial และ Git ครั้งหนึ่งมันมีข้อได้เปรียบเหนือ GitHub ตรงที่ให้พื้นที่เก็บข้อมูลส่วนตัวฟรี ปีที่แล้ว GitHub ยังแนะนำความสามารถนี้ให้กับทุกคนฟรี
-
และอื่น ๆ ...
git clone https://github.com/romankh3/git-demo
ขณะนี้มีสำเนาที่สมบูรณ์ของโครงการในเครื่องแล้ว เพื่อให้แน่ใจว่าสำเนาของโปรเจ็กต์ในเครื่องเป็นเวอร์ชันล่าสุด คุณต้องดึงโปรเจ็กต์โดยเขียน:
git pull
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 38](https://cdn.codegym.cc/images/article/1198a76f-4f1f-46e3-ba6f-bf86200341fa/800.jpeg)
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 39](https://cdn.codegym.cc/images/article/60f8f764-79f5-4db8-8750-4da52035c0e5/800.jpeg)
git add test_resource.txt
git commit -m "prepared txt for pushing"
คำสั่งเพื่อส่งสิ่งนี้ไปยังที่เก็บระยะไกลคือ:
git push
![เริ่มต้นใช้งาน Git: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ - 40](https://cdn.codegym.cc/images/article/b56fef05-fccc-4372-b4d0-f5d59fde20bd/800.jpeg)
ลิงค์ที่มีประโยชน์
- เอกสาร Gitอย่างเป็นทางการ ฉันแนะนำเป็นข้อมูลอ้างอิง
GO TO FULL VERSION