บันทึกเบื้องต้นที่จำเป็น:
- อ่าน ทำซ้ำ และทำความเข้าใจบทความเกี่ยวกับ git วิธีนี้จะช่วยให้แน่ใจว่าทุกอย่างได้รับการตั้งค่าและพร้อมใช้งานแล้ว
- ติดตั้ง Intellij IDEA
- จัดสรรเวลาส่วนตัวไว้หนึ่งชั่วโมงเพื่อการดูดซึมที่สมบูรณ์
โคลนโครงการในเครื่อง
มีสองตัวเลือกที่นี่- หากคุณมีบัญชี Github อยู่แล้วและต้องการดำเนินการบางอย่างในภายหลัง จะเป็นการดีกว่าถ้าแยกโปรเจ็กต์ให้กับตัวเองและโคลนสำเนาของคุณ วิธีทำทางแยก - ฉันได้อธิบายไว้ในบทความนี้แล้วในบทนี้ถึงตัวอย่างขั้นตอนการฟอร์ก
- โคลนจากพื้นที่เก็บข้อมูลของฉันและทำทุกอย่างภายในเครื่องโดยไม่สามารถส่งสิ่งทั้งหมดไปยังเซิร์ฟเวอร์ได้ ท้ายที่สุดนี่จะเป็นพื้นที่เก็บข้อมูลของฉัน))
-
คัดลอกที่อยู่โครงการ:
-
เปิด Intellij IDEA และเลือกรับจากการควบคุมเวอร์ชัน:
-
คัดลอกและวางที่อยู่ลงในโครงการ:
-
คุณจะได้รับแจ้งให้สร้างโครงการ Intellij IDEA เรายอมรับข้อเสนอ:
-
เนื่องจากไม่มีระบบบิลด์ และนี่ไม่ใช่ขอบเขตของบทความ ให้เลือกสร้างโปรเจ็กต์จากแหล่งที่มาที่มีอยู่ :
-
ต่อไปก็จะมีภาพวาดสีน้ำมันแบบนี้
เราแยกโคลนออกแล้ว ตอนนี้เรามองไปรอบๆ ได้แล้ว
ดู Intellij IDEA เป็น Git UI ก่อน
ลองดูโปรเจ็กต์ที่ถูกโคลนอีกครั้ง: คุณสามารถรับข้อมูลมากมายเกี่ยวกับระบบควบคุมเวอร์ชันได้แล้ว อันแรกคือ แผง ควบคุมเวอร์ชันที่มุมซ้ายล่าง ในนั้นคุณสามารถค้นหาการเปลี่ยนแปลงในเครื่องทั้งหมดและรับรายการการคอมมิต (คล้ายกับบันทึกคอมไพล์) มาดู การบรรยาย Logกัน ต่อ มีองค์ประกอบภาพบางอย่างที่ช่วยให้เข้าใจได้อย่างชัดเจนว่ากระบวนการพัฒนาดำเนินไปอย่างไร ตัวอย่างเช่น คุณจะเห็นว่ามีการสร้างสาขาใหม่โดยมีส่วนหัวที่เพิ่มการคอมมิตไปที่ txtซึ่งจากนั้นก็รวมเข้ากับสาขาหลัก หากคุณคลิกที่คอมมิต ที่มุมขวา คุณจะเห็นข้อมูลทั้งหมดเกี่ยวกับการคอมมิต: การเปลี่ยนแปลงทั้งหมดและข้อมูลเมตาของมัน



การทำงานกับพื้นที่เก็บข้อมูล
ปุ่มลัดที่มีประโยชน์
หากต้องการทำงานต่อ คุณต้องจำปุ่มลัดที่มีประโยชน์มากสองสามปุ่ม:- ctrl + t - รับการเปลี่ยนแปลงล่าสุดจากพื้นที่เก็บข้อมูลระยะไกล (git pull)
- ctrl + k - คอมมิต/ดูการเปลี่ยนแปลงทั้งหมดที่มีอยู่ในปัจจุบัน ซึ่งรวมถึงไฟล์ที่ไม่ได้ติดตามและไฟล์ที่ถูกแก้ไข (ดูบทความของฉันเกี่ยวกับ git ซึ่งมีอธิบายไว้ที่นั่น) (git commit)
- ctrl + shift + kเป็นคำสั่งสำหรับกดการเปลี่ยนแปลงไปยังที่เก็บระยะไกล คอมมิตทั้งหมดที่สร้างขึ้นในเครื่องและยังไม่ได้อยู่บนรีโมตจะถูกเสนอสำหรับการพุช (git push)
- alt + ctrl + z - ย้อนกลับการเปลี่ยนแปลงในไฟล์เฉพาะเป็นสถานะของการคอมมิตที่สร้างขึ้นล่าสุดในพื้นที่เก็บข้อมูลในเครื่อง หากคุณเลือกทั้งโปรเจ็กต์ที่มุมซ้ายบน คุณสามารถย้อนกลับการเปลี่ยนแปลงในไฟล์ทั้งหมดได้

เราต้องการอะไร?
ในการทำงาน เราจำเป็นต้องเชี่ยวชาญสคริปต์พื้นฐานซึ่งใช้ทุกที่ ภารกิจคือการใช้ฟังก์ชันใหม่ในสาขาแยกต่างหากและพุชไปยังพื้นที่เก็บข้อมูลระยะไกล (จากนั้นคุณจะต้องสร้างคำขอดึงอื่นสำหรับสาขาหลัก แต่นี่อยู่นอกเหนือขอบเขตของบทความของเรา) ฉันต้องทำอย่างไร?-
รับการเปลี่ยนแปลงทั้งหมดในสาขาหลักในปัจจุบัน (เช่น ต้นแบบ)
-
ตามอันหลักนี้ ให้สร้างอันแยกต่างหากสำหรับงานของคุณ
-
ใช้ฟังก์ชันการทำงานใหม่
-
ไปที่สาขาหลักและตรวจสอบว่ามีการเปลี่ยนแปลงใหม่ในขณะที่คุณกำลังทำงานอยู่หรือไม่ หากไม่เป็นเช่นนั้น ทุกอย่างก็เรียบร้อยดี และหากเป็นเช่นนั้น เราก็ทำสิ่งต่อไปนี้: ไปที่สาขาที่ทำงานและรีบูตการเปลี่ยนแปลงจากสาขาหลักเป็นของเรา หากทุกอย่างเป็นไปด้วยดีก็เยี่ยมมาก แต่อาจมีความขัดแย้งเกิดขึ้น และสามารถแก้ไขได้ล่วงหน้าโดยไม่ต้องเสียเวลากับพื้นที่เก็บข้อมูลระยะไกล
ดูเหมือนว่าทำไมถึงทำเช่นนี้? นี่เป็นกฎของรูปแบบที่ดี ซึ่งป้องกันไม่ให้เกิดข้อขัดแย้งหลังจากส่งสาขาของคุณไปยังพื้นที่เก็บข้อมูลในเครื่อง (แน่นอนว่ามีโอกาสที่จะยังคงมีอยู่ แต่จะน้อยลงมาก )
- พุชการเปลี่ยนแปลงของคุณไปยังพื้นที่เก็บข้อมูลระยะไกล
รับการเปลี่ยนแปลงจากเซิร์ฟเวอร์ระยะไกลหรือไม่
ฉันได้เพิ่มคำอธิบายให้กับ README ด้วยการคอมมิตใหม่และต้องการรับการเปลี่ยนแปลงเหล่านี้ มีตัวเลือกให้เลือกระหว่างการผสานและการรีบูตหากมีการเปลี่ยนแปลงทั้งในพื้นที่เก็บข้อมูลภายในและระยะไกล เลือกการผสาน ป้อนctrl + t :

สร้างสาขาใหม่ตามต้นแบบ
ทุกอย่างเรียบง่ายที่นี่-
ไปที่มุมขวาล่างแล้วคลิกที่Git: masterเลือก+ New Branch
ออกจาก ช่องทำเครื่องหมาย สาขา Checkoutแล้วเขียนชื่อของสาขาใหม่ สำหรับฉันมันจะเป็นreadme- improver

หลังจากนี้Git: masterจะเปลี่ยนเป็น Git : readme-improver
การจำลองการทำงานแบบขนาน
เพื่อให้ข้อขัดแย้งปรากฏขึ้น ต้องมีคนสร้างมันขึ้นมา :D ฉันจะแก้ไข README ด้วยคอมมิตใหม่ผ่านเบราว์เซอร์ และด้วยเหตุนี้จึงจำลองการทำงานแบบขนาน พวกเขาบอกว่าระหว่างที่ทำงานของฉัน มีคนเปลี่ยนแปลงไฟล์เดียวกันกับฉัน ซึ่งจะนำไปสู่ข้อขัดแย้ง ฉันจะลบคำว่า "ทั้งหมด" ออกจากบรรทัด 10ใช้ฟังก์ชันการทำงานของคุณ
ภารกิจคือการเปลี่ยน README และเพิ่มคำอธิบายให้กับบทความใหม่ นั่นคืองานใน git นั้นเสร็จสิ้นผ่าน Intellij IDEA เพิ่มสิ่งนี้:


ตรวจสอบว่าสาขาหลักมีการเปลี่ยนแปลงหรือไม่
เราทำงานเสร็จแล้ว ใช้งานได้ เราเขียนแบบทดสอบ ทุกอย่างเรียบร้อยดี แต่ก่อนจะ Push ไปที่ Server จะต้องเช็คก่อนว่ามีการเปลี่ยนแปลงใน Branch หลักในช่วงเวลานี้หรือไม่ สิ่งนี้เกิดขึ้นได้อย่างไร? มันง่ายมาก: มีคนมอบหมายงานตามคุณ และคนๆ นี้ทำได้เร็วกว่าคุณ ดังนั้นเราจึงย้ายไปที่สาขาหลัก ในการดำเนินการนี้คุณต้องทำสิ่งที่แสดงในรูปด้านล่างที่มุมขวาล่าง:



- ยอมรับของคุณ - ยอมรับเฉพาะการเปลี่ยนแปลงจาก readme-improver
- ยอมรับพวกเขา - ยอมรับเฉพาะการเปลี่ยนแปลงจากต้นแบบเท่านั้น
- ผสาน - เลือกด้วยตัวคุณเองว่าจะเก็บอะไรและจะลบอะไร

- สิ่งเหล่านี้เป็นการเปลี่ยนแปลงจาก readme-improver
- ผลลัพธ์. สำหรับตอนนี้ก็เหมือนกับก่อนการเปลี่ยนแปลง
- การเปลี่ยนแปลงจากสาขาหลัก

พุชการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ระยะไกล
ขั้นตอนต่อไปคือการส่งการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ระยะไกลและสร้างคำขอดึง หากต้องการทำสิ่งนี้ เพียงกดctrl + shift + kหลังจากนั้นเราได้รับ:

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

ลิงค์ที่เป็นประโยชน์
- JavaRush: เริ่มต้นใช้งาน Git: คำแนะนำโดยละเอียดสำหรับผู้เริ่มต้น
- GitHub: โครงการสาธิตการทำงานด้วย
- JavaRush: การวิเคราะห์กลยุทธ์การแยกสาขาใน Git
- JetBrains: ตั้งค่าพื้นที่เก็บข้อมูล Git
- ปกติ: Git rebase
- GitHub: บัญชีของฉัน
GO TO FULL VERSION