วันอังคารที่ 28 พฤศจิกายน พ.ศ. 2560

[Review] ครบรอบ 3 ปีของร้าน Ippudo แล้วนะ พร้อมเมนูราเมนสุดพรีเมี่ยม

วันนี้เราได้ภูมิใจนะเสนอ ร้านราเมงต้นตำหรับจากญี่ปุ่น ที่ได้รางวัลราเมงทีวีแชมเปี้ยน 3 ปีซ้อน (1997-2000) นั่นคือ ร้าน ippudo ramen ซึ่งร้านมีคอนเซปว่า อิปปุโดะ เจ้าแห่งราเมงคิง นั่นเองงง ช่วงปลายปีเราตะเวนกินร้านอาหารญี่ปุ่นต้นตำรับย่านสีลม ซึ่งยอมรับว่า ไม่มีเจ้าใดสู้ Ippudo Ramen ได้เลย

ร้าน Ippudo Ramen มีหลายสาขา ซึ่งในวันนี้เราจะมาแนะนำสาขาแรกที่เปิดในไทย นั่นคือสาขา Central Embassy นั่นเอง เปิดเมื่อปี 2014 ปีนี้ก็ 2017 แล้ว เปิดมา 3 ปีแล้วสินะ

ร้าน อิปปุโดะ ประเทศไทย เปิดบริการแล้ว 6 สาขา (Central Embassy , Emporium , Silom Complex , Central Plaza Pinklao, Terminal21 , Central Bangna) เพื่อให้คนรักราเมงในประเทศไทยได้ลิ้มรสความอร่อย สัมผัสประสบการณ์การรับประทานอาหารที่สมบูรณ์แบบ และไม่ซ้ำใคร ร้านอาหารอิปปุโดะ มีเมนูราเมงประจำร้านยอดนิยม พร้อมเสิร์ฟให้ทุกท่านได้ลิ้มลอง คือ ชิโรมารุ โมโตอาจิ, อากะมารุ ชินนาจิและ คาราคาเมง พร้อมเมนูอาหารแนะนำที่สามารถทานคู่กับราเมงได้ เช่น เต้าหู้บาคุเระซึ, เกี๊ยวซ่าสไตล์ฮากาตะ,  แซลมอนโรล และเมนูที่โด่งดังมีชื่อเสียงที่สุดใน นิวยอร์ก ด้วยเมนูจานฮิต Bataniku Bun ทั้งนี้บรรยากาศของร้านมีความเป็นญี่ปุ่นที่ดูทันสมัย และมีสไตล์ เน้นไปที่สี ขาว แดง และดำ

วิธีการเดินทางของเรา ลง BTS เพลินจิต ลงทางออก 3 แล้วเดินตรงไปเรื่อยๆจนเจอห้างหรูแห่งนี้นั่นแหละ เดินเข้าไปเลยจ้าา มันเป็น shy walk อยู่แล้วแหละ แต่บันไดจะเยอะหน่อย

อันนี้เวลากลางวันเนอะ

อันนี้เวลากลางคืน เอ้ยยย หกโมงเย็น หน้าหนาวมันจะมืดไวหน่อย

เข้ามาเสร็จขึ้นบันไดเลื่อนไปชั้น 3 เลยจ้า


ตอนขึ้นชั้นสามจะเห็นร้าน coffee bean by dao ซึ่งติดกับร้าน Ippudo Ramen เดินวนซ้ายไปนิดหน่อยแบบนี้



และก็ได้มาถึงหน้าร้านแล้ว เยเย้


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

บรรยากาศร้านแต่ละโต๊ะมีคนมาทานมากกว่า 1 คน มาแบบกับเพื่อนฝูง ครอบครัว คนรัก งี้ ที่ร้านเปิดเพลงแจ๊สแบบแบาๆ ไม่ได้เปิดแบบญี่ปุ่นจ้าเลย ตัวร้านมีความโมเดิร์น ใช้สีขาวดำแดงในการตกแต่งร้าน

โซนเคาท์เตอร์ เห็นเซฟทำราเมนทุกขั้นตอน

โซนนั่งโต๊ะ คนเยอะ เลยไม่อยากถ่ายติดคน คือเกรงใจอ่ะ ถ่ายโคมมาแทน


อันนี้ภาพจากทางร้าน มี counter bar ให้นั่ง แล้วกลางร้านจะมีโคมแบบด้านบน เรานั่งโต๊ะติดหน้าต่าง ซึ่งจะมีโคมสไตล์ญี่ปุ่นอยู่ด้านบนด้วย

ปล สาขานี้มีห้อง private room สำหรับมาสังสรรค์กันเยอะๆแล้วไม่อยากรบกวนคนอื่น ต้องจองล่วงหน้านะเออ 

เนื่องจากคนเยอะ ก็มองบรรยากาศรอบๆไปก่อนเนอะ บนโต๊ะจะมีทิชชู่สกรีนโลโก้ร้านและตะเกียบสีดำมาให้


บนโต๊ะมีเครื่องปรุงอย่างพริกป่นแบบญี่ปุ่น รสชาติไม่เผ็ดแบบไทยนะ มันจะหอมๆหน่อย, พริกไทยดำ, งาขาว และแก้เลี่ยนด้วยขิงดอง และกระเทียม 


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


แนะนำเครื่องดื่มประจำร้านเสียหน่อย นั่นคือ Ice green-tea refill (40.-) ชาเขียวเย็น พนักงานจะมาคอยสอดส่องและมาเติมอยู่เรื่อยๆ เป็นชาเขียวผงผสมนํ้า ไม่มีนํ้าตาล อร่อยชื่นใจ

Ice green-tea refill (40.-)

เนื่องจากร้านเปิดในไทยมา 3 ปีดีดักแล้ว ดังนั้นจึงมีเมนูสุดพิเศษ NEW GRAND MENU เลยทีเดียว เริ่มขายวันที่ 28 พฤศจิกายน 2560 มีดังนี้

ราเมน มี 3 เมนูใหม่ นั่นคือ

Ippudo gyokai-tonkotsu (255.-)
ราเมงน้ำซุปกระดูกหมูผสมน้ำซุปปลาแห้ง เสิร์ฟพร้อมราเมงเส้นหนาปานกลาง ท็อปด้วยหมูชาชู ผักกะหล่ำ หน่อไม้ญี่ปุ่น และต้นหอมซอย

Hakata- tori shiromaru (215.-)
ราเมงน้ำซุปไก่ ผ่านการเคี่ยวอย่างพิถีพิถัน เพื่อให้ได้รสชาติต้นตำหรับฮากาตะ เสิร์ฟพร้อมเส้นราเมงแบบหนา ท็อปด้วยไก่ชาชู หอมหัวใหญ่ หน่อไม้ญี่ปุ่น และต้นหอมซอย

เมนูที่ 3 Hakata-tori akamaru (235.-)
ราเมงน้ำซุปไก่ต้นตำหรับฮากาตะ เพิ่มความเข้มข้นของซุปด้วย แบล็ค การ์ลิค เสิร์ฟพร้อมเส้นราเมงแบบหนา ท็อปด้วยไก่ชาชู หอมหัวใหญ่ หน่อไม้ญี่ปุ่น และต้นหอมซอย

ราเมงน้องใหม่ อิปปุโดะ เกียวไค ทงคตสึ ราเมงทงคตสึผสมซุปปลาแห้งรสชาตกลมกล่อม ฮากาตะ โทริ ชิโรมารุ ราเมงไก่ 100% น้ำซุปผ่านการเคี่ยวอย่างพิถีพิถัน เพื่อใหได้รสชิต้นตำรับฮากาตะแท้ๆ ฮากาตะ โทริ อากะมารุ ราเมงไก่ที่เพิ่มรสชาติให้ทันสมัยยิ่งขึ้น ด้วยซอสเต้าเจี้ยวมิโซะสูตรพิเศษและน้ำมันหอมระเหย แบล็ค การ์ลิค

เราเลือกได้อย่างเดียวเนอะ ดังนั้นของเราเป็นอันนี้

Ippudo gyokai-tonkotsu (255.-)

Ippudo gyokai-tonkotsu (255.-)

ราเมนร้อนๆหอมซุปปลาแห้ง เป็นนํ้าซุปกระดูกหมูค่อนข้างมัน รสชาตินุ่มละมุนจากซุปกระดูกหมู มีความเค็มนิดๆ เส้นเป็นสีเหลืองแบน ลวกสุกกำลังดี มีความออดันเต้เล็กๆ 

Ippudo gyokai-tonkotsu (255.-)

หมูชาชูให้มาสองชิ้น เคี้ยวง่ายมากกก ชิ้นนึงจะมันกว่า นุ่มลิ้นละลายในปากเลยจ้าาา มีฮะจัง ผักกระหลํ่า หน่อไม้ญี่ปุ่น และต้นหอมซอย เรียกได้ว่ารสชาติเข้ากันได้ดีทีเดียว แต่ด้วยความที่ซุปค่อนข้างมัน ทานแล้วมันจะเลี่ยนง่ายเนอะ แต่เราดันลืมใส่ขิงดองแก้เลี่ยนซะนี่ มัวแต่ตื่นเต้น แงๆ

รสชาติซุปหอม เค็มนิดๆ หมูชาชูอร่อย แต่ทานไปเรื่อยๆแล้วเลี่ยน เลยให้ 7.5/10 จ้าา

Deep Fried Ebi Isobe (150.-)

Deep Fried Ebi Isobe (150.-)

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

Deep Fried Ebi Isobe (150.-)

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

Deep Fried Ebi Isobe (150.-)
ด้วยความแปลกใหม่และชิคๆเกร๋ๆ ให้ 8/10 คะแนนจ้าา

Hakata Gyoza with Negi

Hakata Gyoza with Negi

หน้าตาภายนอกเหมือนเจ้า Ippudo hakata-style gyoza เลย (รูปอยู่ด้านล่างนะ) ใส่จานมาก็เหมือนกัน นํ้าจิ้มก็คล้ายกัน ตัวเกี๊ยวก็คล้ายกันอีก ต่างกันอย่างไร ต่างที่มีต้นหอมซอยโรยเยอะๆสำหรับคนรักต้นหอมเนอะ ไส้ข้างในเหมือนกัน คือ เป็นไส้หมูที่ฉํ่านํ้า กรอบนอกนุ่มใน ขนาดพอดีคำ แป้งบาง แต่ตัวนี้ยอมรับว่าฉํ่ากว่านะ ตัวนั้นข้างนอกจะกรอบกว่านิดนึง นํ้าจิ้มเป็นสูตรเฉพาะเลยนะ มีความเปรี้ยวๆเค็มๆ ตัดเลี่ยนเป็นอย่างดี

Hakata Gyoza with Negi
ถ้าใครไม่ชอบต้นหอมสั่งแบบธรรมดาตามด้านล่างเน้อ ส่วนตัวให้เต็มเลยได้ป่ะ เราชอบเกี๊ยวซ่าร้านนี้อ่ะ นึกไม่ออกว่าจะหักอะไรดี

ได้เวลาทานแล้ว อิตาดาคิมัสสสสสสสส


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

ทานของคาวเสร็จแล้วก็ตามด้วยของหวาน ซึ่งเป็นเมนูใหม่อีกเช่นกัน แต่ขายก่อนเมนูด้านบนนะ

Strawberry Cheesecake Kakigori (170.-)

Strawberry Cheesecake Kakigori (170.-)

สวยงามดุจนางฟ้ามากกก บรีฟคนอ่านนิดนึงว่า ต่างจากบิงซูอย่างไร มีส่วนของนํ้าแข็งไสกับท็อปปิ้งราดเหมือนกัน แต่ต่างที่ kakigori จะเป็นปุยนํ้าแข็งที่ละเอียดกว่า

Strawberry Cheesecake Kakigori (170.-)

รสชาติ kakigori ของ Ippudo Ramen นั้นจะมีรสเปรี้ยวนิดๆ เข้าใจว่าเป็นนมเปรี้ยวนะ มีซอสสตอเบอร์รี่ มาเป็นชิ้นๆด้วยนะ ได้นํ้าได้เนื้อ แต่รสชาติโดยรวมออกหวานไปอ่ะ ไม่มีรสเปรี้ยวมาตัดเท่าไหร่

Strawberry Cheesecake Kakigori (170.-)

การกินของพวกนี้เหมือนขุมทรัพย์ มีชีสเค้กด้านล่างจ้าา มาเป็นแท่งๆยัดไปตรงกลางด้านใน มีความกรุบกรอบนิดๆ ทานเพลินเลยย

ปล ตัวนี้มีโปรกับบัตรด้วย เดี๋ยวแปะด้านล่างแล้วกัน

Strawberry Cheesecake Kakigori (170.-)

อาหารมื้อนี้จบลงด้วยความอิ่มจนแทบกลิ้งกลับบ้านของผู้หญิงตัวเล็กๆคนหนึ่ง...

แนะนำสำหรับนักทานราเมนมือใหม่ แนะนำให้สั่งเมนูซุปไก่ต้นตำรับมาลอง มันจะไม่มันเท่าซุปกระดูกหมูนะ อย่างตัวใหม่ Hakata- tori shiromaru กับ Hakata-tori akamaru นะ ซุปไก่เขาเคี่ยว 18 ชั่วโมง มีชาชูไก่ด้วย เหมาะกับคนไม่ชอบนํ้าซุปมันๆ และคนไม่ทานหมูนะ :)

---------- ---------- ---------- ---------- ---------- ---------- ----------

จริงๆร้านนี้เราเคยทานมาหลายครั้ง โดยสั่งราเมนหนึ่งชามคู่กับเกี๊ยวซ่า (ซึ่งสั่งแบบนี้ทุกร้านแหละ ชอบขายคู่กันด้วย แล้วแต่ดวงว่าร้านไหนจะอร่อยคู่ แต่ร้านนี้อร่อยจริง แนะนำ) ซึ่งเราสั่งเมนูที่ได้รางวัลทีวีแชมเปี้ยนมาด้วยแหละ

Shiromaru motoaji (Small 150.-/ Regular 200.-)


พนักงานเสิร์ฟมาชามใหญ่ๆ ร้อนๆ มีให้เราเลือกระดับของเส้นด้วยว่าจะเอาแบบไหน ประกอบด้วยชาชูชิ้นใหญ่ 1 ชิ้น เห็ดหูหนูอันกรุบกรอบ ถั่วงอก ต้นหอม เส้นเราเลือกเป็นแบบ normal เป็นเส้นสีเหลือง กลมๆ เหมือนจะแข็งแต่ไม่แข็ง นํ้าซุปเป็นซุปกระดูกหมูต้นตำรับเลย ราดด้วยนํ้ามันพริกเผานิดนึง รสชาติอร่อย ให้เยอะ เราแนะนำเมนูนี้เลย อร่อยจริง คอนเฟิร์ม

Ippudo hakata-style gyoza (90.-) 


เขามาร้อนๆเลย ร้อนทั้งจานทั้งเกี้ยว ชิ้นค่อนข้างเล็ก รสชาติกรอบนอก ชุ่มใน ไส้หมูฉํ่ามาก นํ้าจิ้มมาแปลก หอมนํ้ามันงา และผสมนํ้ามันพริกเผาด้วย (อีกนิดก็เกี้ยวจีนแล้ว) ไส้เขาใส่กระหลํ่าและขิงเล็กน้อยพอหอม ขนาดพอดีคำ หมูก็พอดีคำด้วยเลย นี่ก็อร่อยอีก

เมนูอื่นๆหล่ะ

Aburi Salmon Roll (240.-) 


https://www.facebook.com/IppudoThailand/photos/a.1476297295921157.1073741828.1470604053157148/1903843043166578/?type=3&theater

แซลมอนโรลย่าง 6 ชิ้น โต๊ะข้างๆสั่งมา น่าทานมากเลย ฮืออออ แซลมอนโรลปรุงรสด้วยซอสไข่เมนไทโกะ และท็อปด้วยไข่กุ้งโทบิโกะ ได้ทานแล้วคงจะฟินไม่น้อย

Akamaru Shinaji (Small 170.-/ Regular 220.-)

https://www.facebook.com/IppudoThailand/photos/a.1476297295921157.1073741828.1470604053157148/1903843166499899/?type=3&theater

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

Karaka-Men (Small 180.-/ Regular 230.-)

https://www.facebook.com/IppudoThailand/photos/a.1476297295921157.1073741828.1470604053157148/1903843183166564/?type=3&theater

ราเมงสูตรเผ็ดร้อนสูตรพิเศษ ซึ่งเป็นการรวมเอาน้ำซุปกระดูกหมูสูตรต้นตำรับและมิโซะรสเผ็ด เม็ดมะม่วงหิมพานต์และหมูสับเข้าไว้ด้วยกัน ท็อปด้วยหมูชาชู ถั่วงอก และต้นหอม

-------

อยากรู้จัง Ippudo ramen มีกี่สาขาเอ่ยย

สาขาใหญ่
Emporium ชั้น 4: 10.00- 22.00 น.
ชั้นที่มี supermarket อ่ะ อยู่ใกล้บันไดเลื่อน ใกล้ๆร้าน Piri-Piri แถบๆนั้นอ่ะ ถ้าจำไม่ผิดนะ

Central Pinklao ชั้น 5: 
- Mon - Thu 10.30 - 21.30 น. 
- Fri 10.30 - 22.00 น. 
- Sat 10.00 - 22.00 น. 
- Sun 10.00 - 21.30 น.

Central Embassy ชั้น 3: 10.30- 21.30 น.
ตามในรีวิวเลยจ้า

Silom complex ชั้น B : 10.30 - 21.30 น.
ที่มีร้านอาหารเยอะๆ อยู่ใกล้ร้านไหนจำไม่ได้แล้ว แต่ร้านโดดเด่นสะดุดตาแน่นอน

สาขาย่อย
Terminal 21 ชั้น LG: 10.00 - 22.00 น.
ชั้นล่างสุดของห้างนี้ เป็นร้านเล็กๆมีที่นั่งตรง counter bar อ่ะ อยู่รวมๆกันกับหลายๆร้าน โซน take home น่าจะแถวๆร้านชาตรามือ

Central Bangna  ชั้น B1: 
- Mon - Fri 10.30 - 21.30 น. 
- Sat - Sun 10.00 - 21.30 น.

ในเว็บบอกว่าครัวปิด 30 นาทีก่อนห้างปิดนะจ๊ะ เวลาปิดมีความแหว่งๆนิดนึงนะ สำหรับสายกินดึก

บางคนคงบ่น อร่อยขนาดนี้สาขาน้อยไปไหม ทำไมแถวบ้านชั้นไม่มีเลย Ippudo Ramen เปิดเพิ่ม 2 สาขา คือ Mega Bangna และ EmQuartier (คนอ่านคงแบบอ้าว สองสาขานี้มันก็ละแวกใกล้กับสาขาอื่นๆอ่ะ สาขา Emporium ร้านเขาก็ไม่ได้ใหญ่ไง เล็กกว่าสาขา Central Embassy อีก ส่วนสายบางนาขี้เกียจเข้าเมืองก็พอได้อยู่ เป็นสาขาใหญ่ด้วยแหละมั้ง)

ติดตามข่าวสาร โปรโมชั่น เมนูใหม่ๆของร้าน Ippudo Ramen ได้ทั้ง 3 ช่องทางเลย
FB Page : https://www.facebook.com/IppudoThailand/
Website : http://www.ippudo.co.th/th
IG : https://www.instagram.com/ippudothailand/

โปรโมชั่นช่วงนี้







หลังจากอ่านบล็อกแล้วอยากพุ่งตัวไปกิน วันที่ 28-30 พ.ย. มีโปรเมนูใหม่ ชามละ 99 บาทด้วยหล่ะ ตามนี้เลยจ้าาา



เนื่องด้วยร้าน Ippudo Ramen ครบรอบ 3 ปี เลยมีกิจกรรมพิเศษ เพียงถ่ายรูปกับธีมครบรอบ 3 ปีที่ร้าน Ippudo ลุ้นทานราเมงฟรี 3 เดือนหรือกล้อง Fuji instax mini ตั้งแต่วันที่ 28 พ.ย. 2560 - 7 ม.ค. 2561

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

-----------

ป้ายกำกับ:

วันอังคารที่ 14 พฤศจิกายน พ.ศ. 2560

[Racap] เดี๋ยวนี้ใครๆก็ใช้ Git กันแล้ว น้องๆรู้ก่อนได้เปรียบนะเออ

สวัสดี สวีดัด ทุกท่านคร๊าบบบ

ในการสมัครงาน คุณสมบัติหนึ่งที่ head hunter ชอบ คือ การทำงานแบบ Agile เพราะทุกที่ก็ใช้เหมือนกัน ในการทำงานในทีม Software Development ความเข้มข้นหรือกระบวนการก็ตามแต่ culture ขององค์กร (ซึ่งเราดองไว้นานมากยังไม่ได้เขียนเลย 555)



และอีกอย่างที่คนสัมภาษณ์เราพิจารณา นั่นคือ การใช้ Git เป็นนั่นเอง เพราะทำงานเป็นทีมเนาะ ทีมนึงมีหลายคน ต่างคนต่างทำงาน path ของตัวเอง และเอามาทั้งหมดมากองรวมกันในก้อนเดียว บางท่านมีพื้นฐานการใช้ SVN มาก็มีความคล้ายคลึงกัน แต่ SVN เก่ากว่าเท่านั้นเอ๊งง แถมเป็นเรื่องหนึ่งที่ต้องฝึกในชั้นอุดมศึกษาเลยทีเดียว เพราะเราไปเห็นสเตตัสของอาจารย์เราตอนไปสำรวจฝึกงาน เรื่องอันดับต้นๆของปัญหาที่เจอก็เรื่องการใช้ Git นี่แหละ (ยังมีเรื่องของ tool อื่นๆอีก ที่เราคาดว่าอาจารย์น่าไม่ได้สอนน้องๆ) ดังนั้น ไม่ใช่ว่าเรารู้ตอนทำงานเลยเว้ย ต้องรู้ก่อนไปฝึกงานอีก เพราะทุกบริษัทก็ใช้กันเนอะ ใช้ไม่เป็นพี่ๆก็ต้องสอนอีก สรุปรู้ก่อนนอกจากจะได้เปรียบแล้ว ยังทำให้พี่ๆทั้งหลายประทับใจด้วยนะเออ

ดังนั้นเราเลยศึกษาเรียนรู้ และนำมาแบ่งปัน สำหรับน้องๆหนูๆผู้เริ่มต้น ไปจนถึงผู้ชํ่าชองก็สามารถทบทวนความรู้กันเลย โดยปูจากคำสั่งที่ใช้ใน Git เพื่อเข้าใจตอนใช้โปรแกรม GUI มากขึ้น

และเนื่องจากเราจะลองเขียนบล็อกแบบ recap กับ free online course ซึ่งเราได้เรียนรู้มาจากการทำงานจริงด้วย คอร์สฟรีจาก udacity ชื่อว่า GitHub & Collaboration และใน codecademy ก็มีเช่นกัน ชื่อคอร์ส learn git (แต่ตอนนี้ลดบทเรียนเรียนฟรีจนมาเสียเงินมากขึ้น ช่วงหลังเลยไม่อยากเข้าไปเรียนเท่าไหร่)

มาเริ่มกันเลยดีกว่าาาาา

ก่อนอื่นเลย มารู้จักหน้าตากันคร่าวๆก่อน


Repository มี 2 ประเภท คือ 
1. Local Repository ง่ายๆก็บนเครื่องเรานั่นแหละ จะใช้คำสั่งบน command line หรือ terminal
2. Remote Repository เอาไปอัพบน internet ซะ เช่น GitHub GitLab และเจ้าอื่นๆ เหมาะกับการทำงานเป็นทีม

นอกจากจะใช้ผ่าน terminal (ขี้เกียจใช้สองคำกล่าวถึงเรื่อยๆ ขอตามความเคยชินดีกว่า) ก็มีโปรแกรมที่เป็น GUI ที่เห็นหลักๆก็ของ GitHub เอง และ SourceTree ที่ใช้กันหลายบริษัทเลย

GitHub Desktop : https://desktop.github.com

SourceTree : https://www.sourcetreeapp.com, แต่ปุ่ม fetch หายไปแหะ

เริ่มต้นที่ 3 คำสั่งเริ่มต้นกันก่อนเลย

git remote : manage a repo จัดการ repo นั่นแหละ
git push : send change to remote ส่งก้อน source code ไปที่ repository
git pull : retrive and automatically merge updates ดึงเข้ามาในเครื่องเรา

ภาพประกอบก็จะเป็นแบบนี้


มาเริ่มการสร้าง repository ใน github ก่อน ขอข้ามวิธีสร้างเนอะ น่าจะสร้างได้ไม่ยากอยู่แล้ว สร้างเสร็จจะได้หน้าตาเป็นแบบนี้ เพราะเรายังไม่ได้อัพไฟล์ขึ้น github


จากด้านบนมี 3 แบบ ขอพูดแค่สองแบบพอ

แบบแรก สร้างขึ้นมาใหม่จาก command line เลย

การสร้างไฟล์ อาจจะสร้างขึ้นมาก่อน โดยใช้คำสั่ง touch นำหน้าชื่อไฟล์ เช่น touch README.md หรือจะเขียนแบบสตรีมไฟล์ก็ echo "# This is my git" > README.md

ใช้คำสั่ง git init ที่ path ที่เราต้องการ ในเครื่องเรา จากนั้นก็เพิ่มไฟล์เข้า repo โดยใช้คำสั่ง git add ตามด้วยชื่อไฟล์ เช่น git add README.md หรือจะเพิ่มทั้งหมดที่มีก็ง่ายเลยแบบนี้ git add . เมื่อเพิ่มไฟล์เสร็จก็ตามด้วย commit ไฟล์ อารมณ์คล้ายๆจุดเซฟในเกมส์ง่ะ โดยใช้คำสั่ง git commit แล้วตามด้วยข้อความ เช่น git commit -m "Intial project" ทุกครั้งที่เรา commit จะมีเลข commit number ของแต่ละ commit ด้วยนะ

จากนั้นเพิ่ม repository ใน GitHub ของเรา เวลาที่เราจะ push file ขึ้นไป ก็จะทำใน path นี้ โดยใช้คำสั่ง git remote นั่นเอง และมี 2 คำศัพท์เพิ่มเติม คือ 
- remote shortname หมายถึง เรียก repository path url ย่อๆว่าอะไร ส่วนใหญ่ใช้คำว่า origin ตาม default นะ 
- branch หมายถึง กิ่งก้านสาขาของ repository นั้น แบบ default สุดเลยชื่อ master การทำงานขอยกจากในทีมมาทำเลยแล้วกัน น่าจะอธิบายและอ่านเข้าใจง่ายกว่า ตัว Android Application มีหลาย feature ที่ต้องทำ ดังนั้นจะแตก branch หลัก คือ develop ออกมาเขียนโค้ดตาม requirement (ก็คือไม่ต้อง backup ของเดิม เหมือนเราก็อปของเดิมมาแก้), browse คือ เพิ่ม feature browse, exo คือ เปลี่ยน player ให้เป็น exoplayer, artist มีการแก้หน้า artist, fix1.5 แก้บัคที่เกิดขึ้นหลังจากปล่อย version 1.5 ออกมา เป็นต้น 

กลับมาที่เดิม หลังจาก commit เสร็จก็ใช้คำสั่ง remote เพื่อจัดการ repository ของเรา โดยบอก git ว่า local repository path นี้จะ link กับ remote repository นี้ ดังนั้น ใช้คำสั่งแบบนี้
git remote add <shortname> <git_path> เช่น
git remote add origin https://github.com/mikkipastel/my-travel-plan.git 

ในตอนนี้ source code ของเรายังอยู่ในเครื่องเรา หรือในส่วน local repository และเพิ่งสร้างสะพานไปยัง remote repository ดังนั้นเราจะนำไฟล์ไปใส่ใน repository ด้วยคำสั่ง git push แบบนี้
git push -u <shortname> <branch> เช่น git push -u origin master เป็นอันเสร็จสิ้นพิธีกรรมในแบบแรก

แบบที่สอง เขียนโค้ดโปรเจกนี้ไปได้พักนึงแล้ว commit ใน local repository มาเยอะแล้ว เอาขึ้น github ดีกว่ากันเหนียว

ในเมื่อคุณได้ใช้วิทยาวุธ Git อย่างเต็มที่ ถึงเวลาแล้วที่จะใช้อย่างจริงจังใน github ซะที

ใช้สองคำสั่งสุดท้ายจากวิธีแรก นั่นคือ
git remote add origin https://github.com/mikkipastel/my-travel-plan.git 
git push -u origin master 

หลังจากที่เราอัพไฟล์ขึ้น remote repository ถ้าเราลืมว่าโฟลเดอร์นี้มี remote repository อันไหน สามารถใช้คำสั่ง git remote -v ดูได้นะ


หลังจากที่เรา push code ขึ้นไปแล้ว ถ้ามี update เราก็ pull code เข้ามา โดยใช้คำสั่ง
git pull <shortname> <branch> เช่น git pull origin master หลังจาก pull แล้ว code บางส่วนทับกันก็แก้ให้เรียบร้อย (คือมันจะ merge ทุกอย่างรวมกัน จะมีทับกันตอนที่เรา pull code ในส่วนที่เรายังไม่ได้ commit ข้ึนไป) ก่อนที่จะ push code ขึ้นไปใหม่เนอะ


มีคำสั่งนึงที่คล้ายกันกับ pull คือ fetch นั่นเอง ซึ่งมีความต่างกันดังนี้
- pull : retrive and automatically merge update ตามความหมาย คือ ดึงตัวที่ update มา แล้ว merge ทั้งก้อนรวมเข้าด้วยกัน
- fetch :  retrive update ดึงว่ามีอะไร update บ้าง จบ./

ถ้าเทียบกับกัน sourceTree หล่ะ
ที่เราใช้กัน ก็กดเลือกไฟล์ที่จะ commit แล้วก็ใส่ข้อความลงไป และเราสามารถเลือกบางส่วนของไฟล์ commit ขึ้นไปได้ โดยขึ้น state ไป แล้วกด commit จากนั้น push code เพื่อเข้า remote repository เวลามีใคร update อะไรจะมี notification แจ้งเตือน และเรากด fetch มาดูก่อนว่ามีอะไร update กันทับ ถ้าไม่ทับหรือแก้จนไม่ทับ ก็ pull เข้ามาเลย

สรุปคำสั่ง
- remote : git remote add origin <git_url>
อันนี้ไว้จัดการ repository ก็คือ link ระหว่าง local repository กับ remote repository นั่นแหละ ต้อง set ก่อนทุกครั้งที่ทำงานเนอะ ซึ่งตอนไปเพิ่มใน sourceTree ไม่ได้ใช้แบบนี้อ่ะ ไป checkout ก่อนเนอะ
- commit : git commit -m "<message>"
เพิ่มการเปลี่ยนแปลงของไฟล์ ว่าเราแก้ไขไฟล์พวกนี้ไปทำไม เช่น แก้บัค เพิ่ม feature ตาม requirement
- push : git push origin master
ส่ง code ที่ commit แล้วขึ้นไปบน remote repository
- pull : git pull origin master
ดึง code ทั้งหมดที่ update เข้าเครื่องเรา
- fetch : git fetch origin master
ดูว่าใน remote repository มีอะไรอัพเดตบ้าง

FORK นั่นคือ ส้อม นั่นเอง เดี๋ยวนะ มันใช่หรอ ก็ประมาณนึงนะ เขาเปรียบเทียบเป็นส้อมไง แบบมันสามารถแตกแขนงออกไปได้งี้ คำสั่งที่ใช้ คือ git clone นะ

สรุป git clone แบบง่ายๆก็คือ การเอาของเขามาเป็นของเรา ดังนั้นใน github จะมีเขียนว่าเราไป clone มาจากใคร

ใน udacity หรือ codelab เอง ก็จะมีโปรเจกตัวอย่างให้เรา clone เพื่อย่นระยะเวลาการเรียนให้สั้นลง

เช่น โปรเจกน้องหมีตัวแตกมีคนอยากเอาไปลองทำบ้างเง้ ก็ clone จากของเราไป ด้วยคำสั่ง
git clone https://github.com/mikkipastel/BearEatEverything.git 
หรือทำบนหน้าเว็บก็ได้ โดยกด Fork เอา


การดู log ของแต่ละ repository นั่น ใช้คำสั่งแบบนี้


- git log
- git log -- grep <content> เช่น git log --grep bug
- git log -- oneline --graph --decorate --all
- git shortlog -s -n
- git shortlog --author=<author_name>

หรือเราอยากรู้ว่า commit เลขนี้มีอะไรเปลี่ยนแปลงบ้าง ตรวจสอบได้โดยคำสั่ง
git show <commit_number>

และสุดท้ายเขาก็อธิบายการใช้ GitHub เบื้องต้น
- Issue : ถ้ามีบัคก็บอกเขาได้ เช่น อันนี้มันใช้ไม่ได้อะค่ะ ใส่ถูกทุกอย่างแล้ว ทำไงดีค่ะพี่ค่ะ
- Pull Request : สมมุติว่าเรา clone repository ชุดนึงไปเล่น แล้วเฮ้ย อันนี้บัค เราก็แก้ให้ และอยากให้เจ้าของเขารับรู้ ก็ส่ง pull request ไป


- Star & Watch : Star ง่ายๆก็คือ ติดดาว repository ที่เราชอบ หรืออะไรก็ตามแต่แล้วกัน Watch ก็จะลึกกว่า คือดูความเป็นไปของ repository ได้ ใน github มันจะอยู่ใกล้ๆกันกับ Fork ด้วย

ส่วนที่เกี่ยวกับ Git
- การดึงของใน repo มาลงที่เครื่องเรา จะใช้คำสั่งดังนี้

git remote add <point_of_source_repo> <git_url>
เช่น git remote add upstream git://xx.yyy

จากนั้นก็ checkout repo ของ branch ที่ชื่อว่า master ลงเครื่อง
git checkout master

ถ้ามีของเก่าอะไรงี้ ก็ merge รวมไปกัน อาจจะมีแก้โค้ดบ้างถ้ามันไม่ตรงกันอะนะ
git merge master

แล้ว push ลงเครื่องซะ
git push origin master

- ในกรณีมือพี่ล่ะลั่นไปเองงงง เผลอไป commit ในสิ่งที่ไม่อยาก commit (interactive squash commit) ก็ใช้คำสั่ง rebase เลยจ้า
git rebase [-I HEAD~3]

มาดูตัวอย่างกันดีกว่า

เหตุการณ์สมมุติที่ 1 : เปลี่ยนไปทำ branch อื่น
git checkout instant
git add .
git commit -m "init instant"
git push -u origin instant

เหตุการณ์สมมุติที่ 2 : แค่ชั้นอยากจะเพิ่ม README.md
git clone <git_url>
touch README.md
git add README.md
git add .
git commit -m "add README"
git push -u origin master
git pull
ปิดท้ายบล็อกนี้ด้วย document ของ Git https://git-scm.com/doc มีภาษาไทยด้วยนะ แต่อ่านภาษาอังกฤษอ่ะดีแล้ว เพราะเขาแปลไม่เสร็จ 555

ลิ้งค์เพิ่มเติม :
https://try.github.io/levels/1/challenges/1
https://www.codeschool.com/courses/try-git

และ short note จากตอนเรียนที่ codecademy จริงๆคือก็อปมานั่นแหละ

git init : creates a new Git repository
git status : inspects the contents of the working directory and staging area
git add <filename> :adds files from the working directory to the staging area
git diff <filename> : shows the difference between the working directory and the staging area
git commit -m "comment" : permanently stores file changes from the staging area in the repository
git log : shows a list of all previous commits

git checkout HEAD filename: Discards changes in the working directory.
git reset HEAD filename: Unstages file changes in the staging area.
git reset SHA: Can be used to reset to a previous commit in your commit history.

git branch: Lists all a Git project's branches.
git branch branch_name: Creates a new branch.
git checkout branch_name: Used to switch from one branch to another.
git merge branch_name: Used to join file changes from one branch to another.
git branch -d branch_name: Deletes the branch specified.

git clone: Creates a local copy of a remote.
git remote -v: Lists a Git project's remotes.
git fetch: Fetches work from the remote into the local copy.
git merge origin/master: Merges origin/master into your local branch.
git push origin <branch_name>: Pushes a local branch to the origin remote.

ป้ายกำกับ: