Joy Kanyawee
5 min readMay 28, 2019

[#2 Bitbucket] การใช้ git ใน Bitbucket + ทำ gitflow ใน SourceTree🌳🌳🌳

เคยพบกับปัญหานี้หรือไม่ ไฟล์หาย จะหางานเวอร์ชั่นเก่า หาไม่เจอ เวลาทำงานเป็นทีมต้องใช้แฟลชไดรฟ์แล้วมารวมกัน ถ้าเป็นดังที่กล่าวไปข้างต้น ขอแนะนำให้รู้จักกับ git กันเลยดีกว่า git เป็น version control ตัวหนึ่ง หน้าที่ของมันคือจัดเก็บการเปลี่ยนแปลงของไฟล์ในโปรเจคเรา โดยเราสามารถย้อนกลับไปดูเวอร์ชั่นเก่าๆของงานเราได้ นอกจากนี้มันยังช่วยให้การทำงานเป็นทีมสะดวกมากขึ้น และสามารถรู้ได้ว่าใครในทีมแก้ไขตรงไหนไปบ้าง ซึ่งในวันนี้จะมาทำบน SourceTree โดย SourceTree นี้คือตัวจัดการ git นั่นเองง

1.ขั้นเตรียมการเพื่อใช้ git และ clone project

1)เริ่มจากไปสมัคร Bitbucket ก่อนเลย ตามลิ้งด้านล่างนี้เลย

https://bitbucket.org/account/signup/

2)เมื่อสมัครแล้วให้กด Create Repository ตามลูกศรสีเหลืองเพื่อไปหน้า create

3)ทำการใส่ชื่อ Repository name และตรงลูกศรสีเขียวคือจะให้โปรเจคเราเป็น private หรือไม่ ถ้าอยากให้เป็นความลับที่อยู่ในใจก็ติ๊กไปด้วยจ้า เมื่อเสร็จแล้วให้ กด Create repository เพื่อสร้างโปรเจคที่จะใช้ git (แล้วเดี๋ยวโปรเจคเรามันจะเข้ามาเก็บในเจ้าตัวนี้)

4)กด clone เพื่อที่จะ clone โปรเจคไปไว้ใน SourceTree

ให้ copy link เอาไปใส่ใน Clone url ของ SourceTree

5)เข้ามาใน SourceTree จากนั้น กด Clone

6)จะปรากฎหน้านี้ขึ้นมาดังภาพ ให้เอา url ที่ได้จาก Bitbucket มาใส่ในช่องสีเหลือง

2.ขั้นการทำ git flow

การทำ git flow ตอนแรกเราจะต้องทำการ commit ก่อนหนึ่งครั้ง ลืมบอกเลยว่า git flow คือ ข้อตกลงในการทำงาน ส่วนขั้นตอนการทำงานของ git flow เราจะแยกเป็น 2 branch ก็คือ มี master เป็นตัวหลัก แล้วก็ branch develope เป็นตัวที่เราจะเพิ่ม features ต่างๆ จะทำใน branch นี้แล้วค่อย release เข้าสู่ master ซึ่งถ้าเกิดเรา push เข้าไปใน master แล้ว เกิดมีบักเกิดขึ้น เราก็จะทำการ hotfix จาก master ลงมา เพื่อแก้บัก ซึ่งเจ้า git flow จะแก้ให้อัตโนมัติเองเลยทั้งใน master และ develope

  • ทำการเพิ่มไฟล์ใน folder
ในที่นี้ได้เพิ่มไฟล์ test เข้าไป
เมื่อกลับเข้ามาดูใน SourceTree คลิกตรง File Status จะพบว่ามีโปรเจคเพิ่มเข้ามา ให้คลิก ตรง Stage All ใน Unstaged files จะปรากฎดังภาพ จากนั้นพิมพ์ comment ด้านล่าง และกด commit
  • กด Push เพื่อส่งไปเก็บใน Bitbucket
  • จากนั้นกด Git flow มุมบนขวา จะขึ้นหน้าต่างดังภาพ กด OK ได้เลยจ้า
  • ทีนี้เราจะได้ Branch ชื่อ Develope มาแบบนี้
  • กดที่ Git flow เลือก Start New Feature

Start New Feature เป็นการเพิ่ม Feature ให้กับตัว Branch Develope

ให้พิมพ์ชื่อตรงช่อง Feature Name แล้วกด OK ได้เลย
  • จากนั้น กดที่ git flow อีกครั้ง เเล้วเลือก Finish Feature ตามภาพด้านล่าง
เมื่อขึ้นหน้าต่างตามภาพด้านบน กด OK
เมื่อทำเสร็จก็จะได้ดังภาพด้านบน แสดงว่าเรานำ feature ไป merge กับ branch develope เรียบร้อยแล้ว
  • ต่อมาเราจะทำการ Release เพื่อนำเอา Feature ที่เราทำมาขึ้นไปยัง Master จ้า โดยให้กด ที่ git flow พอขึ้นหน้าต่างตามภาพด้านล่าง เลือก Start New Release
ให้พิมพ์ชื่อในช่อง Release Name แล้วกด OK
เมื่อกด OK จะขึ้นตามภาพด้านบนเลยจ้า
กดที่ git flow เหมือนเดิม แล้วกด Finish Release ตามภาพด้านบนเลยย
กด OK เพื่อทำการ Merge ตัว release เข้าตัว master ได้เลยจ้า
เมื่อเสร็จแล้วจะได้แบบนี้ แล้วทุกคนเห็นเลขไหม ใช่ๆ เลข 4 ตรง Push นั่นแหละ
ให้กดตรง Push ที่มีเลข 4 นั้น เราจะ Push เข้าไปใน Bitbucket เมื่อขึ้นหน้าต่างแล้ว ให้ทำการ กด Push ได้เลย
(กลับไปดูใน Bitbucket) ทีนี้ใน Bitbucket ก็จะมีโปรเจคที่เราทำการ Merge นั้นๆ ขึ้นมาแล้ว
  • ต่อมา เราจะมาทำการ Hotfix มันคือ การที่เราส่งโปรเจคของเราเข้าไปใน master แล้ว พบว่ามีบักเกิดขึ้น เราก็จะทำการ hotfix มันลงมาจาก master เพื่อทำการแก้ไข
กด gitflow เลือก Start New Hotfix
ใส่ชื่อในช่อง Hotfix Name แล้วกด OK
เมื่อกด OK แล้วจะได้หน้าตาแบบนี้ (เหมือนกันเนอะ อิๆ)
  • จากนั้นให้เราไปทำการแก้ไขไฟล์ แล้ว commit สัก 2 commit จะได้ดังภาพนี้
เมื่อได้ดังภาพแล้ว ให้กด Git flow มุมบนขวา
จะได้แบบนี้ ให้กด Finish Hotfix
เมื่อขึ้นแบบนี้ให้กด OK เลยจ้า
เมื่อทำเสร็จตามขั้นตอนด้านบนจะได้ดังภาพนี้เลยจ้า

ก็จบไปแล้วน้าสำหรับการทำ features , การเอา release ขึ้น master , และการ hotfix โค้ดลงมาจาก master ถ้าเกิดบักตอนเอาขึ้น master ไปแล้ว แต่เรามีอีกอย่างหนึ่งที่จะมาเขียน คือ การทำ Stash ในกรณีที่เราจะต้องพักโค้ดไปทำอย่างอื่นก่อน เช่น ไป hotfix แก้บัก ,ไปทำ features เพิ่ม หรืออื่นๆ

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

  • การทำ stash ไม่ได้ยากอย่างที่คิด ทำตามนี้เลยจ้า
  1. สร้าง features มาสักอันนึง อันนี้เราลองสร้างเป็น feature sleep จากนั้น กด stash
จะขึ้นหน้าต่างดังภาพ ให้พิมพ์เข้าไปเลยจ้า เป็นบรรยายเล็กน้อย จากนั้นกด OK ตอนนี้เราได้ทำการ stash ให้มันไม่สามารถตามเรามาได้แล้ว เย้ๆ
จากนั้นทำการสร้างอีก feature นึง จะเห็นว่ามันไม่ตามเรามาจริงอะไรจริงแล่วล่ะ
เมื่อ commit feature นี้เสร็จ ก็ทำการ Finish Feature เหมือนที่เคยทำมา
กลับมาที่ feature sleep ตรง stashes ซ้ายล่าง ให้ทำการคลิกขวา แล้วกด Apply Stash ตามภาพบน
จะขึ้นหน้าต่างแบบนี้ขึ้นมา ให้ติ๊กตรง Delete after applying ด้วย เพื่อลบมันออกจาก stashes จากนั้นกด OK
อย่าลืมมากด commit ด้วยนะจ้ะ
  • จากนั้นก็ทำการ Finish Feature ได้เล้ยยยยย
  • ถ้าจะเอาขึ้น Bitbucket ก็ต้อง release ขึ้น master ด้วยย อย่าลืมเชียววว
กด OK เลยจ้า ใกล้ถึงความจริงแล้ววว
Double click ที่ branch master แล้วกด Push ตรงที่มีเลข เพื่อ Push ขึ้น Bitbucket ไปเลยจ้า
  • เมื่อเราเข้าไปที่ Bitbucket (ปล.ใครเปิดค้างไว้ก็ refresh สัก1ทีจ้า) เราก็จะพบว่าแท่นแท้นนนน~~~เสร็จแล้วว ไฟล์มากมายได้มาอยู่รวมกันที่ master ตามที่เราตั้งใจแล้วล่ะ เย้ๆ