Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Day 1 - Git
Search
offz
April 19, 2017
Programming
0
90
Day 1 - Git
Show how to use git for beginner.
offz
April 19, 2017
Tweet
Share
More Decks by offz
See All by offz
TM-P2-IT-security
offfffz
0
24
Docker Compose for Rails Developer
offfffz
1
37
Day 2 - Docker
offfffz
0
45
Day 2 - CI
offfffz
0
57
Day 1 - Testing
offfffz
0
49
Other Decks in Programming
See All in Programming
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
370
ThorVG Viewer In VS Code
nors
0
760
Apache Iceberg V3 and migration to V3
tomtanaka
0
150
AtCoder Conference 2025
shindannin
0
1k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
Fragmented Architectures
denyspoltorak
0
150
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
250
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
4
250
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
690
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
100
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
The untapped power of vector embeddings
frankvandijk
1
1.6k
How to Ace a Technical Interview
jacobian
281
24k
Designing for humans not robots
tammielis
254
26k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
170
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
4 Signs Your Business is Dying
shpigford
187
22k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
56
50k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Transcript
Git
Git คือ? Master Dev new awesome feature
Keywords - commit: snapshot งานของเรา ณ. เวลานั้นๆ - branch: pointer
ที่ชี้ไปที่ commit 1 จุด - checkout: เปลี่ยน branch - merge: นำ 2 branch มารวมกัน
Keywords - clone: นำ code จากบน server ลงมา - push:
ส่งงานจากเครื่อง ขึ้นไปที่ server - fetch: download งานล่าสุดจาก server - pull: fetch + merge
Commit สถานะปัจจุบัน ของงานที่กำลังทำอยู่
Commit a.txt ——————————— Hello a.txt ——————————— Hello World B
A
Branch ให้มองเป็น pointer ที่ชี้ไปที่ commit ใดๆ ใน graph
Branch B A C D Master Dev
Branch B A C D Master Dev E
Branch B A C D Master Dev E F
Checkout เปลี่ยน pointer ที่เรากำลังทำงาน ไปที่ commit อื่น
Checkout B A Master a.txt ——————————— Hello a.txt ——————————— Hello
World B A Master
Merge นำ 2 branch มารวมกัน โดยต้องไม่มี จุดที่เปลี่ยนแปลงพร้อมกัน ทั้งสอง branch
Merge B A Master a.txt ——————————— Hello World Dev
Merge B A Dev a.txt ——————————— Hello World Master
C
Merge (conflict) นำ 2 branch มารวมกัน แต่มีจุดที่แก้ไข ณ. ที่เดียวกันทั้งสอง
branch
Merge (conflict) B A Master a.txt ——————————— Hello World
Dev
Merge (conflict) B A Master a.txt (Dev) ——————————— Hello
Thailand Dev C a.txt (Master) ——————————— Hello World
Merge (conflict) B A a.txt (Dev) ——————————— Hello Thailand
C a.txt (Master) ——————————— Hello World E Dev Master a.txt (conflict) ——————————— Hello >>>>>>> World ======= Thailand <<<<<<<
Merge (conflict) B A C Dev Master E a.txt (Dev)
——————————— Hello World a.txt (Master) ——————————— Hello World
Clone สร้าง directory ใหม่ในเครื่องของเรา แล้วทำการ download ทุกอย่างลงมา
Server Clone B A C D Master Dev E เครื่องเรา
B A C D Master Dev E
Push ส่งงานที่เราทำขึ้นไปบน server
Server Push B A C D Master Dev E เครื่องเรา
B A C D Master Dev E F
Server Push B A C D Master Dev E เครื่องเรา
B A C D Master Dev E F F
Fetch download งานใหม่ที่สุดลงมาในเครื่องเรา
Server Fetch B A C D Master Dev E เครื่องเรา
B A C D Master Dev E F
Server Fetch B A C D Master Dev E เครื่องเรา
B A C D Master Dev E F F
Pull fetch งานล่าสุดจาก server และ merge เข้ากับงานล่าสุดในเครื่องเรา
Server Pull B A C D Master Dev E เครื่องเรา
B A C D Master Dev E F
Server Pull B A C D Master Dev E เครื่องเรา
B A C D Master Dev E F F
Git ดียังไง - ไม่มี internet ก็ทำงานได้ - ไม่ถูกรบกวนจากการเปลี่ยนแปลงที่คนอื่นทำ ในขณะที่เราทำงาน
- เมื่อส่งขึ้น server แล้วมั่นใจได้ว่างานจะไม่หาย
ไม่ต้องต่อ internet ตลอด Server B A C D Master E
เครื่องเรา B A C D Master Dev E F G Dev
ไม่ถูกงานคนอื่นรบกวน Server B A C D Master E เครื่องเรา B
A C D Master Dev E ก ข G F Dev
งานไม่หาย Server B A C D Master E เครื่องเรา B
A C D Master Dev E ก ข G F Dev G F Origin/Dev H H
ทำงานกับ Git - pull ของใหม่บ่อยๆ - จะเริ่มงานใหม่ ให้แตก branch -
ทำงาน feature เล็กๆ เสร็จแล้วก็ commit - push ขึ้น server บ่อยๆ ป้องกันงานหาย - งานเสร็จแล้ว ให้ merge กลับไปที่ branch หลัก
Git Server
Gitlab
ข้อดีของ Gitlab - open source และ ฟรี - host เอง
ทุกอย่างอยู่ภายใต้การควบคุม - มี CI/CD ในตัวเลย และเป็น code base CI ซึ่งจัดการได้ง่ายมาก
ข้อเสียของ Gitlab ต้องมีคนดูแล ❤
ทำงานกับ Gitlab 1. สร้าง issue 2. สร้าง branch จาก issue
3. ใช้คำสั่ง git fetch และ git checkout <branch_name> 4. เมื่องานเสร็จให้ push ขึ้นไปที่ server 5. เปิด merge request
ได้เวลามือเปื้อนดิน
walkthrough 00 1. register Gitlab 2. สร้าง ssh key 3.
setup ssh key ใน gitlab
walkthrough 01 1. สร้าง project <name>/git_introduction 2. clone project 3.
สร้างไฟล์ README.md 4. commit 5. push ไป master
walkthrough 02 1. clone project git_first_time 2. สร้าง issue 3.
สร้าง branch จาก issue และสร้าง Merge Request 4. ใช้คำสั่ง git fetch และ git checkout <branch_name>
exercise 1 1. สร้าง folder เป็นชื่อของตัวเองที่จะไม่ซ้ำกับคนอื่น 2. สร้าง file README.md
ใน folder นั้น 3. เขียน markdown ตามต้องการ 4. commit เรื่อยๆ และ push ขึ้น server เป็นครั้งคราว 5. เมื่อทำงานเสร็จแล้ว ให้เอา WIP: ออก
exercise 2 1. สร้าง folder ชื่อ shared 2. สร้าง file
<[1-10]>.md ใน folder นั้น 3. เขียน markdown ตามต้องการ 4. commit เรื่อยๆ และ push ขึ้น server เป็นครั้งคราว 5. พยายามทำให้ merge request เป็นสีเขียว