วิธีใช้ Git เพื่อเผยแพร่ไซต์ในพื้นที่ของคุณ

เผยแพร่แล้ว: 2022-10-18

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

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

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

บทนำสู่ Git

สำหรับผู้ที่ไม่รู้ตัว Git คือระบบควบคุมเวอร์ชัน (VCS) เป็นวิธีบันทึกและบันทึกการเปลี่ยนแปลงที่คุณทำกับโปรเจ็กต์ ซึ่งมักจะเป็นแอปหรือเว็บไซต์ เป็นสิ่งที่เราสัมผัสในที่อื่น แต่คุณจำเป็นต้องรู้เพิ่มเติมเกี่ยวกับเรื่องนี้สำหรับบทช่วยสอนนี้

repo WordPress GitHub

วิธีทั่วไปในการใช้ Git คือการใช้ Command Line Interface (CLI) - หากคุณมีประสบการณ์กับ WP-CLI ก็เป็นแนวทางที่คล้ายกัน คุณจะใช้คำสั่งเพื่อทำเครื่องหมายและจัดระเบียบไฟล์ที่คุณใช้งานได้หลายวิธี:

  • ก่อนที่คุณจะออกคำสั่ง ไฟล์จะคงสถานะ 'unstaged' ซึ่งหมายความว่าไม่ได้เป็นส่วนหนึ่งของ 'ที่เก็บ' Git ของคุณ (ไดเร็กทอรีที่เก็บประวัติของคุณ)
  • คุณจะออกคำสั่งให้สร้างไฟล์ทั้งหมดหรือบางส่วนของคุณ จากนั้นคุณยังคงทำงานกับไฟล์เหล่านั้นได้
  • เมื่อคุณทำเสร็จแล้ว คุณจะคอมมิตไฟล์ไปยัง 'repo' จากพื้นที่จัดเตรียม ซึ่งคล้ายกับการบันทึกการเปลี่ยนแปลงเหล่านั้น

อาจซับซ้อนกว่านี้ แต่โดยส่วนใหญ่ คุณจะใช้คำสั่งเพียงไม่กี่คำสั่งเพื่อทำงานแบบวันต่อวันกับ Git

การใช้ Git เพื่อการพัฒนาแบบทีม

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

จากนั้น สมาชิกอาวุโสของทีมจะมองหา 'รวม' ทุกสาขาและเปลี่ยนแปลงไปที่ main หรือ trunk ของ repo ณ จุดนี้ คุณจะมีชุดไฟล์โครงการที่ชัดเจนภายใน repo

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

ไพรเมอร์ด่วนสำหรับการพัฒนา WordPress ในพื้นที่

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

โลโก้ DevKinsta

Local by Flywheel เป็นตัวเลือกที่ดี แต่ DevKinsta ก็เช่นกัน มีหลายวิธีในการสร้างไซต์ในพื้นที่และเป็นสิ่งที่คุณต้องการ

ทำไมคุณถึงต้องการใช้ Git เพื่อเผยแพร่ไซต์ในพื้นที่

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

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

อย่างไรก็ตาม มีสาเหตุอื่นๆ สองสามประการที่ Git มีประโยชน์:

  • คุณสามารถโฮสต์ Git repo นี้ได้ในทุกที่ GitHub และ GitLab เป็นสองไซต์ที่เน้นการโฮสต์ Git repos จากที่นั่น คุณสามารถนำสมาชิกในทีมหรือนักพัฒนาคนอื่นๆ เข้ามาได้หากต้องการการสนับสนุนเพิ่มเติม คุณยังสามารถย้ายข้อมูลไซต์ได้อย่างง่ายดายอีกด้วย
  • แน่นอน คุณไม่จำเป็นต้องทำงานบนไซต์สดของคุณ ซึ่งยอดเยี่ยมมากจากมุมมองที่เกี่ยวข้องกับความปลอดภัยและประสิทธิภาพ อย่างไรก็ตาม คุณสามารถเลือกที่จะพุชเฉพาะไฟล์ที่คุณทำงานอยู่ได้ สิ่งนี้มีประโยชน์อย่างมากเพราะคุณไม่จำเป็นต้องแตะฐานข้อมูล WordPress ของคุณ นี่คือเป้าหมายหลักของการจัดเตรียมเว็บไซต์ และสามารถทำได้โดยใช้ Git และการติดตั้งในเครื่อง

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

สิ่งที่คุณต้องการก่อนที่คุณจะใช้ Git เพื่อผลักดันไซต์ให้ใช้งานได้จริง (เครื่องมือและทักษะ)

เป็นที่น่าสังเกตว่าคุณควรมีอะไรบ้างก่อนที่คุณจะคิดว่าคุณต้องการอะไรเป็นพิเศษ ตัวอย่างเช่น ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

  • เว็บไซต์ปัจจุบันของคุณเวอร์ชันท้องถิ่น
  • เข้าถึงแผงควบคุมโฮสติ้งและเซิร์ฟเวอร์ของคุณในฐานะผู้ดูแลระบบ

จากที่นี่ คุณสามารถพิจารณาสิ่งอื่นๆ ที่คุณต้องใช้ Git กับไซต์ในพื้นที่และเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ:

  • คุณจะต้องติดตั้ง Git บนคอมพิวเตอร์ของคุณ คุณมักจะบรรลุสิ่งนี้ผ่านบรรทัดคำสั่ง
  • เมื่อพูดถึงเรื่องนี้ คุณจะต้องมีความรู้เกี่ยวกับวิธีใช้บรรทัดคำสั่ง โดยเฉพาะอย่างยิ่ง คุณควรทราบวิธีการย้ายไปรอบๆ คอมพิวเตอร์ของคุณ สร้างไดเร็กทอรีและไฟล์ และลบออกด้วย
  • ความรู้เกี่ยวกับการเข้าถึง Secure Shell (SSH) สำหรับเซิร์ฟเวอร์ของคุณและอย่างน้อยก็คุ้นเคยกับการสร้างคีย์ความปลอดภัย คุณสามารถหาข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับเรื่องนี้ได้ในบทความของเราเกี่ยวกับ Secure File Transfer Protocol (SFTP)

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

วิธีใช้ Git เพื่อเผยแพร่ไซต์ในพื้นที่ของคุณ

คุณต้องดำเนินการสี่ขั้นตอนเพื่อตั้งค่าทุกอย่าง นี่คือสิ่งที่เราจะพูดถึง:

  1. การตั้งค่า Git repo สำหรับไซต์ในพื้นที่ของคุณ
  2. การตั้งค่า Git repo ระยะไกล
  3. แจ้ง Git repo ของคุณที่จำเป็นต้องผลักดันการเปลี่ยนแปลง
  4. การเพิ่มลิงก์ระยะไกลและเผยแพร่การเปลี่ยนแปลงของคุณ

มีอะไรมากมายที่ต้องผ่านที่นี่ มาเริ่มกันเลย!

1. ตั้งค่าที่เก็บ Git สำหรับไซต์ในพื้นที่ของคุณ

แม้ว่าจะมีวิธีการตั้งค่า Git repos อยู่สองสามวิธี เราจะทำสิ่งนี้โดยใช้บรรทัดคำสั่ง เนื่องจากเป็นวิธีปกติที่สุด เมื่อเปิดหน้าต่าง Terminal ขึ้นมา ให้ไปที่ไดเร็กทอรีในเครื่องของเว็บไซต์ของคุณก่อน:

การนำทางไปยังโฟลเดอร์ในเครื่องโดยใช้ Terminal และบรรทัดคำสั่ง

ในการตั้งค่าสถาปัตยกรรมที่จำเป็นสำหรับ Git repo ของคุณ ให้รันคำสั่งต่อไปนี้ทีละตัว:

 git init git add .

คำสั่งแรกจะสร้างไดเร็กทอรีที่คุณต้องการและทำให้ถูกซ่อน ในขณะที่คำสั่งที่สองจะเพิ่มไฟล์ทั้งหมดภายในไดเร็กทอรีของไซต์ของคุณไปยังพื้นที่การจัดเตรียม Git – ช่วงเวลาเป็นตัวแก้ไข 'ตัวแทน':

การเริ่มต้น Git repo และเพิ่มไฟล์โดยใช้บรรทัดคำสั่ง

หากต้องการดูว่าไฟล์ใดอยู่ในพื้นที่จัดเตรียม ให้ใช้คำสั่ง git status :

รันสถานะ git เพื่อดูว่าไฟล์ใดถูกจัดฉาก

จากที่นี่ คุณจะต้องดำเนินการคอมมิตเบื้องต้นของการเปลี่ยนแปลงเหล่านี้เพื่อเติม repo ในเครื่องของคุณ คุณทำได้โดยใช้คำสั่งต่อไปนี้:

git commit -m "Initial commit."

แฟล็ก -m บอกคำสั่งว่าสิ่งต่อไปนี้คือข้อความยืนยันของคุณ คุณจะต้องทำเช่นนี้สำหรับทุกๆ การคอมมิต และทำได้ง่ายกว่าจากที่เดียว

จากที่นี่ คุณจะมีทุกอย่างที่ติดตั้งบนคอมพิวเตอร์ของคุณ ต่อไปก็ถึงเวลาทำงานบนเซิร์ฟเวอร์ระยะไกล

2. ตั้งค่า Git Repo บนเซิร์ฟเวอร์จริงของเว็บไซต์ของคุณ

กระบวนการที่นี่คล้ายกับการตั้งค่าในเครื่องของคุณ แต่คุณต้องลงชื่อเข้าใช้เซิร์ฟเวอร์โดยใช้ SSH การใช้สิ่งนี้อยู่นอกเหนือขอบเขตของบทความนี้ แต่เราสามารถชี้ให้คุณเห็นโพสต์โดย Tom McFarlin ที่สรุปขั้นตอนที่คุณต้องการ อีกวิธีหนึ่ง คุณสามารถถามโฮสต์ของคุณได้ตลอดเวลา – พวกเขาไม่ควรมีปัญหาในการแสดงให้คุณเห็นว่าข้อมูลรับรองเหล่านี้อยู่ที่ไหน

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

ภายในไดเร็กทอรีนี้ คุณจะต้องสร้างไดเร็กทอรีอื่นและไปที่ไดเร็กทอรี:

 mkdir remoterepo.git cd remoterepo.git

ตราบใดที่ไดเร็กทอรีใช้นามสกุล .git คุณสามารถเรียกมันว่าอะไรก็ได้ที่คุณต้องการ จากที่นี่ ให้เริ่มต้น repo git ใหม่ภายในไดเร็กทอรี คราวนี้โดยใช้แฟล็ก –bare:

git --bare init

สิ่งนี้จะสร้าง repo ที่คุณต้องการโดยไม่มีไฟล์โปรเจ็กต์ ซึ่งปลอดภัยและแนะนำ

3. สร้าง 'Hook' ให้กับ Repo ของคุณและตั้งค่าการอนุญาตไฟล์ที่เหมาะสม

ขณะที่คุณอยู่ในเซิร์ฟเวอร์ คุณจะต้องสร้างไฟล์เพื่อบอก Git ว่าจะพุชการเปลี่ยนแปลงไปที่ใด ขั้นแรก ให้รัน nano hooks/post-receive command ซึ่งจะเปิดตัวแก้ไขบรรทัดคำสั่งที่เรียกว่า Nano และสร้างไฟล์ในไดเร็กทอรีที่ถูกต้อง

ภายในไฟล์นี้ ให้เพิ่มสิ่งต่อไปนี้:

 #!/bin/sh GIT_WORK_TREE=/home/username/example.com git checkout -f

/home/user/example.com ควรชี้ไปยังตำแหน่งที่แน่นอนของไฟล์ที่ใช้งานจริงในเว็บไซต์ของคุณ username ควรเป็นชื่อที่คุณลงชื่อเข้าใช้เชลล์ด้วย และ example.com ควรเป็นโดเมนของไซต์จริงของคุณ เมื่อคุณทำเช่นนี้แล้ว ให้บันทึกการเปลี่ยนแปลงของคุณ

ขั้นตอนสุดท้ายที่นี่คือการตั้งค่าการอนุญาตไฟล์ที่ถูกต้องสำหรับไฟล์นี้ คุณสามารถทำได้โดยใช้คำสั่ง chmod +x hooks/post-receive คำสั่ง Change Mode (chmod) คือวิธีที่คุณตั้งค่าการอนุญาตไฟล์จากบรรทัดคำสั่ง - +x หมายถึงการตั้งค่าสิทธิ์ใน การดำเนินการ

เมื่อคุณทำสิ่งนี้แล้ว ให้พิมพ์ exit เพื่อออกจากเทอร์มินัลระยะไกล จากที่นี่ คุณจะต้องกลับไปที่ Git repo ในพื้นที่ของคุณภายใน Terminal

4. เพิ่มลิงก์ระยะไกลไปยังพื้นที่เก็บข้อมูลในเครื่องของคุณและผลักดันการเปลี่ยนแปลงในเครื่องของคุณแบบสด

ที่นี่ นำทางกลับไปที่ Git repo ในพื้นที่ของคุณโดยใช้คำสั่ง cd ตามความจำเป็น คุณจะต้องเพิ่มลิงก์ไปยังเซิร์ฟเวอร์ระยะไกลของคุณ เพื่อให้ Git repos ทั้งสองสามารถพูดคุยกันได้ คุณจะทำได้โดยใช้คำสั่งต่อไปนี้:

git remote add origin ssh://[email protected]/~/remoterepo.git

URL ที่แน่นอนสำหรับ Git repo จะขึ้นอยู่กับตำแหน่งที่คุณค้นพบในขั้นตอนสุดท้าย แน่นอน ข้อมูลประจำตัวผู้ใช้และเซิร์ฟเวอร์ของคุณจะแทนที่ตัวยึดตำแหน่งที่นี่

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

git push -u origin main

คุณจะเห็น Terminal แสดงสรุปการยืนยัน...

 Counting objects: 12, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/1), done. Writing objects: 100% (13/13), 1200 bytes | 0 bytes/s, done. Total 12 (delta 0), reused 0 (delta 0)

…และ ณ จุดนี้ คุณสามารถตรวจสอบไซต์สดของคุณได้ การเปลี่ยนแปลงควรปรากฏและถูกต้อง

สรุป

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

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

คุณคิดว่าคุณจะใช้ Git เพื่อผลักดันการเปลี่ยนแปลงไซต์ท้องถิ่นหรือไม่? แจ้งให้เราทราบความคิดเห็นของคุณในส่วนความคิดเห็นด้านล่าง!