Bếp chung
Cháu Bin vào bếp. Git cho người mới: lịch sử, worktree, gộp nhánh, xung đột, pull request và nội quy bếp chung.
Bin muốn phụ làm menu Tết trong lúc hai AI agent đang làm app tích điểm. Ai cũng sửa cùng một file, và loạn. Tú giới thiệu cuốn album của món ăn (lịch sử), mỗi người một bàn sơ chế (worktree), gộp nồi (merge), trình món để duyệt (pull request), ai đã nêm nồi này (agent changes), hòm thư góp ý (issue và CI), và tủ công thức trên mây (GitHub).
24 từ mới, từ History đến Small commit. Đoạn thật thà: xung đột vẫn xảy ra, và AI có thể giải quyết sai. Bạn vẫn phải nếm.
Bạn sẽ học được
- Lịch sử git như cuốn album ảnh, và quay lại bất kỳ phiên bản nào (git revert)
- Git worktree: một bàn sơ chế riêng cho mỗi người nấu, người hay AI
- Gộp nhánh (merge), và xung đột (conflict) thật ra là gì
- Pull request: trình món để duyệt
- Xem AI agent nào đã sửa gì
- Issue, pipeline CI, push và pull, và nội quy cho một repo dùng chung
- History
- lịch sử các lần lưu
- Version
- một phiên bản đã lưu
- Revert
- gỡ bỏ đúng một thay đổi
- Worktree
- một bàn sơ chế riêng
- Main
- nhánh chính, bản khách đang dùng
- Env file
- file chứa chìa khóa bí mật
- Merge
- gộp nhánh vào nhánh chính
- Conflict
- hai người sửa cùng một chỗ
- Resolve
- giải quyết xung đột
- Pull request
- xin gộp, mời mọi người duyệt
- Approve
- đồng ý cho gộp
- Draft
- bản nháp, chưa trình
- Overwrite
- ghi đè lên phần người khác
- Collision
- hai người đụng cùng một file
- Referee
- trọng tài gợi ý cách gộp
- Issue
- một góp ý hoặc lỗi được ghi lại
- Label
- nhãn phân loại
- CI
- máy tự kiểm tra mỗi lần thay đổi
- Push
- đẩy thay đổi lên GitHub
- Pull
- lấy thay đổi mới về
- Clone
- chép cả dự án về máy khác
- Fork
- bản sao riêng của người khác
- Commit message
- dòng ghi chú cho mỗi lần lưu
- Small commit
- mỗi lần lưu chỉ một việc
Việc cần làm: Mở Git → History trong dự án của bạn, bấm vào lần lưu gần nhất và đọc phần chữ xanh, chữ đỏ.
Giải thích bằng lời đơn giản: lần commit gần nhất đã thay đổi những gì?
Việc cần làm: Tạo một worktree mới tên thu-nghiem, mở một agent trong đó và nhờ nó đổi màu nút. Quay về main: bếp chính vẫn nguyên.
Đổi màu nút đặt món sang màu đỏ Tết.
Việc cần làm: Cố tình tạo một xung đột nhỏ: hai worktree sửa cùng một dòng tiêu đề, rồi merge cả hai vào main.
Có xung đột khi merge. Giải thích cho tôi hai phiên bản khác nhau thế nào, rồi đề xuất cách gộp.
Việc cần làm: Mở panel Repo → Pull requests trong một dự án trên GitHub, mở một pull request và bấm Send to AI.
Đọc pull request này và cho tôi ba nhận xét: điều tốt, điều cần sửa, và rủi ro.
Việc cần làm: Mở Agent Changes, chọn mức Watch cho dự án, cho hai agent cùng làm, rồi xem Map: ai đang sửa file nào.
Việc cần làm: Viết ba góp ý của khách thành ba issue có nhãn, rồi gửi một issue cho agent.
Đọc issue này, nói cho tôi nguyên nhân có thể là gì và đề xuất cách sửa. Chưa sửa vội.
Việc cần làm: Đẩy dự án của bạn lên một repo GitHub riêng tư bằng nút Push, rồi clone nó về một thư mục khác.
Lấy từ phụ đề của tập phim. Bấm vào một dòng để nhảy tới đó.
Tú: Tập trước, chị Lan đã học cách điều hành cả một đội đầu bếp AI. Chia phiếu, giao việc, nếm thử, rồi gộp lại.
Chị Lan: Và thanh từ vựng đã lên năm mươi từ. Chị lên cấp rồi đó nha!
Bin: Cô Lan ơi! Cháu tới phụ bếp nè. Cháu chơi game giỏi lắm, làm web chắc cũng dễ thôi.
Chị Lan: Được. Cô đang có hai đầu bếp AI làm app tích điểm. Cháu làm giúp cô trang thực đơn Tết nha.
Bin: Dễ ợt. Cháu sửa giá bánh chưng với mứt Tết trong file thực đơn luôn.
Chị Lan: Hai tiếng sau...
Bin: Cô ơi! Giá bánh chưng cháu sửa mất tiêu rồi! Ai ghi đè lên vậy?
Chị Lan: Đầu bếp AI vừa sửa cùng file đó để thêm nút tích điểm. Giờ trang thực đơn hiện sai giá, nút thì lệch qua một bên.
Tú: Để em đoán: ba người cùng nấu một nồi, không ai biết ai vừa bỏ gì vào?
Chị Lan: Đúng y chang. Giờ chị không biết món này mặn là tại ai.
Tú: Hôm nay mình học cách để nhiều người cùng nấu mà không giẫm chân nhau. Người thật hay đầu bếp AI cũng vậy.
Tú: Tám chương. Từ nút lưu game của tập một, tới mỗi người một bàn sơ chế, cách gộp nồi, cách trình món để duyệt, và cách cất công thức lên mây. Thanh từ vựng đi tiếp từ năm mươi từ nha.
Tú: Ôn bài từ tập một nè: commit là gì?
Chị Lan: Chụp ảnh món ăn! Mỗi lần món ngon thì chụp lại một tấm, để lỡ hỏng còn quay lại.
Bin: À, giống checkpoint trong game! Chết thì hồi sinh ở checkpoint gần nhất.
Tú: Chuẩn luôn. Và các tấm ảnh đó không mất đi đâu. Chúng xếp thành một cuốn album, theo thứ tự thời gian.
Chị Lan: Vậy chị mở album ra là biết lúc nào giá bánh chưng còn đúng?
Tú: Đúng. Album đó gọi là history, tức là lịch sử của dự án.
Tú: Nhìn nè. Tấm thứ nhất là trang chủ. Rồi tới thực đơn, rồi thẻ tích điểm. Tấm thứ tư là lúc Bin sửa giá Tết. Tấm thứ năm là lúc đầu bếp thêm nút, và vô tình ghi đè lên giá của Bin.
Bin: Vậy mình chỉ cần quay về tấm thứ tư là có lại giá của cháu!
Tú: History là cuốn album. Mỗi tấm ảnh trong đó là một phiên bản, tiếng Anh là version. Còn revert nghĩa là gỡ bỏ đúng một bước đã làm, mà không xóa những bước khác. Giống như vớt đúng nhúm muối vừa bỏ vào, phần còn lại của nồi canh vẫn giữ nguyên.
Chị Lan: Anh Tú lại bắt đầu ví von rồi đó.
Tú: Trong 1DevTool, chị mở Git, rồi bấm tab History. Mỗi dòng là một lần lưu: ai lưu, lúc nào, và lời ghi chú. Bấm vào một dòng là thấy lần đó đã đổi những gì. Chữ xanh là thêm vào, chữ đỏ là bỏ đi.
Chị Lan: Đây rồi, lần lưu thêm nút tích điểm vào thực đơn. Chính nó đè lên giá của Bin.
Tú: Chị bấm chuột phải vào dòng đó. Menu có Revert, để gỡ đúng lần thay đổi này. Có cả lựa chọn quay hẳn về một tấm ảnh cũ. Nhưng ở đây chị không muốn bỏ cái nút tích điểm. Chị chỉ muốn lấy lại giá của Bin. Nên mình chưa bấm vội.
Tú: Còn tab Changes là những gì đã sửa mà chưa lưu. Dự án lớn có nhiều file, chị bật chế độ cây thư mục cho dễ nhìn.
Chị Lan: Giống mở tủ lạnh, thấy món nào nằm ngăn nào.
Bin: Vậy rốt cuộc lỗi là do cháu hay do đầu bếp AI?
Tú: Không phải lỗi của ai hết. Lỗi là do cả ba người đứng chung một cái thớt. Chương sau mình chia thớt.
Tú: Từ mới: history, version, và revert.
Tú: Thử ngay: mở History, bấm vào lần lưu gần nhất, và đọc xem chữ xanh chữ đỏ nói gì. Không hiểu thì nhờ đầu bếp giải thích.
Chương 2: Mỗi người một bàn sơ chế
Tú: Ôn nhanh: version là gì?
Bin: Một tấm ảnh trong album. Một checkpoint!
Chị Lan: Vậy làm sao để ba người không đứng chung một cái thớt?
Tú: Ở bếp nhà hàng, mỗi đầu bếp có một bàn sơ chế riêng. Ai thái hành ở bàn người nấy. Xong rồi mới mang lên bếp chính.
Tú: Bếp chính gọi là main. Đó là món mà khách đang ăn thật. Mỗi người lấy một bản sao của bếp chính về bàn mình. Đầu bếp một làm thẻ tích điểm, Bin làm thực đơn Tết, còn đầu bếp hai làm mã QR.
Bin: Ai làm hỏng thì chỉ hỏng ở bàn của người đó, bếp chính vẫn sạch sẽ!
Tú: Tập một chị đã nghe chữ branch, tức là một nhánh. Mỗi bàn sơ chế đi kèm một nhánh, có tên riêng. Còn chính cái bàn, tức là một thư mục riêng trên máy chứa bản sao của dự án, gọi là worktree.
Chị Lan: Branch là tấm bảng tên. Worktree là cái bàn. Chị hiểu rồi.
Tú: Trong 1DevTool, chị mở Git, vào tab Worktrees, rồi tạo mới. Đặt tên nhánh, ví dụ thực đơn Tết, là có ngay một bàn riêng. Để ý dòng này: các file bí mật như file env, chứa mật khẩu và chìa khóa API, thường không được lưu vào git.
Tú: 1DevTool hỏi chị có muốn chép chúng sang bàn mới không.
Chị Lan: Tức là bàn mới có sẵn chìa khóa tủ gia vị, khỏi phải đi tìm.
Tú: Mở xong, dưới thanh trạng thái, cạnh tên nhánh, có nút chọn worktree. Bấm vào là đổi bàn. Đổi sang bàn nào thì ô đầu bếp của bàn đó hiện ra trước. Chị không bao giờ bị nhầm mình đang đứng ở bàn nào. Khi gọi thêm đầu bếp,
Tú: trong hộp Add Terminal chị chọn luôn bàn cho người đó.
Bếp trưởng AI: Chị ơi, em đang làm ở bàn thẻ tích điểm. Em sửa gì cũng không đụng tới bàn của Bin.
Phụ bếp AI: Em ở bàn mã QR. Em cũng sửa file thực đơn, nhưng là bản sao ở bàn của em.
Chị Lan: Ba người cùng sửa một file mà không ai giẫm chân ai. Hay thật.
Tú: Từ mới: worktree, main, và env file.
Tú: Thử ngay: tạo một worktree tên thử nghiệm, mở một đầu bếp trong đó, nhờ nó đổi màu nút. Rồi quay về main xem: bếp chính vẫn nguyên.
Chương 3: Gộp nồi
Tú: Ôn nhanh: worktree là gì?
Chị Lan: Một bàn sơ chế riêng. Làm hỏng ở bàn mình thì bếp chính vẫn sạch.
Bin: Cháu làm xong thực đơn Tết rồi! Giờ làm sao đưa lên bếp chính?
Tú: Mình gộp nồi. Đổ phần của Bin vào nồi chính. Tiếng Anh gọi là merge.
Tú: Trong Git, tab Graph vẽ các nhánh thành những làn màu. Chị thấy làn của Bin tách ra từ main, rồi chạy song song. Chị bấm chuột phải vào nhánh của Bin, chọn Merge into current. Nghĩa là gộp nhánh đó vào bếp chính đang mở.
Chị Lan: Gộp rồi! Giá bánh chưng đã lên trang thật.
Bếp trưởng AI: Chị ơi, em gộp phần thẻ tích điểm vào thì bị báo lỗi. Có xung đột ở file thực đơn, dòng giá bạc xỉu.
Chị Lan: Xung đột? Đánh nhau hả?
Tú: Gần như vậy. Bin sửa giá bạc xỉu thành ba mươi lăm nghìn, đầu bếp lại sửa cùng dòng đó thành ba mươi hai nghìn, kèm chữ tặng tem. Git không biết nghe ai.
Tú: Đây là xung đột, tiếng Anh là conflict. Hai người sửa cùng một dòng, theo hai cách khác nhau. Git dừng lại và đánh dấu chỗ đó. Phải có người quyết định: lấy bản của Bin, bản của đầu bếp, hay trộn cả hai.
Chị Lan: Giá mới của Bin, cộng với cái tem của đầu bếp. Trộn cả hai!
Tú: Merge là gộp nồi. Conflict là khi hai người nêm cùng một chỗ, mỗi người một vị. Còn resolve là giải quyết: chốt lại vị cuối cùng. Việc này chị có thể nhờ đầu bếp AI làm giúp.
Chị Lan: Em giải quyết xung đột ở file thực đơn giúp chị. Giữ giá ba mươi lăm nghìn của Bin, và giữ chữ tặng tem của em.
Bếp trưởng AI: Dạ xong rồi chị. Em đã gộp, chạy thử trang thực đơn, mọi thứ đều hiện đúng.
Tú: Nhưng em phải nói thật với chị. Lần trước em nhờ AI gộp, nó giữ nhầm giá cũ, mà còn tự tin báo là xong rồi. Nếu không ai nếm lại, khách sẽ trả sai tiền. Nên sau khi gộp, chị luôn mở Diff xem lại, và mở trang thật ra nếm.
Tú: Và mẹo hay nhất: gộp sớm, gộp thường xuyên. Nồi càng nhỏ, càng ít đánh nhau.
Chị Lan: Chị mở Diff ra rồi. Giá ba mươi lăm nghìn, có chữ tặng tem. Đúng ý chị.
Bin: Vậy là xung đột không đáng sợ. Chỉ cần có người nếm cuối.
Tú: Từ mới: merge, conflict, và resolve.
Tú: Thử ngay: cố tình tạo một xung đột nhỏ, rồi nhờ đầu bếp giải thích hai phiên bản trước khi gộp. Tự tay tạo ra lỗi là cách học nhanh nhất.
Chương 4: Trình món để duyệt
Tú: Ôn nhanh: conflict là gì?
Bin: Hai người nêm cùng một chỗ, mỗi người một vị!
Chị Lan: Có điều, hôm qua Bin gộp thẳng vào bếp chính mà không hỏi ai. May là đúng.
Bin: Cháu tưởng xong là gộp luôn được mà cô.
Tú: Ở nhà hàng lớn, món mới không được đưa thẳng ra bàn khách. Đầu bếp phải trình lên bếp trưởng nếm trước. Phần mềm cũng có một bước y như vậy.
Tú: Bước trình món đó gọi là pull request. Nghĩa là: em xin được gộp phần của em vào bếp chính, mời mọi người xem trước. Người duyệt có thể bình luận, đòi sửa, hoặc gật đầu, tiếng Anh là approve. Món còn đang nấu dở thì để ở dạng draft, tức là bản nháp.
Tú: Một pull request trông thế này. Tên món, từ nhánh nào gộp vào đâu, và ai trình. Bên dưới là các ô kiểm tra tự động, và lời bình của người nếm.
Chị Lan: Thiếu ảnh bánh chưng. Bin thêm ảnh vào rồi cô duyệt nha.
Bin: Dạ. Giống như nộp bài cho cô giáo chấm vậy.
Tú: Dự án của chị đã được cất trên GitHub. Trong 1DevTool, chị mở panel Repo, tab Pull requests. Số món đang chờ duyệt hiện ngay trên tab. Bấm vào một món là đọc được mô tả, các lời bình, và một dòng cho biết đã sẵn sàng gộp hay đang bị chặn bởi điều gì.
Chị Lan: Khỏi phải mở trình duyệt, khỏi phải tìm đường trên GitHub.
Tú: Có nút Send to AI: giao cả pull request cho một đầu bếp AI đọc và góp ý, như một người nếm thứ hai. Và khi chị đã hài lòng, chị chọn cách gộp rồi bấm Merge ngay tại đây. Nếu ai đó vừa sửa thêm sau khi chị xem, app sẽ từ chối gộp,
Tú: để chị không duyệt nhầm bản chưa nếm.
Chị Lan: Cái này hay. Chị duyệt cái gì thì gộp đúng cái đó.
Người nếm AI: Em đã đọc pull request của Bin. Giá đúng, ảnh đã có. Em chỉ góp ý một điều: chữ mứt gừng bị viết sai chính tả.
Bin: Ủa, thật hả? Để cháu sửa liền.
Chị Lan: Người thật trình món, đầu bếp AI nếm giúp, chủ quán duyệt cuối. Ai cũng có việc.
Tú: Từ mới: pull request, approve, và draft.
Tú: Thử ngay: mở một pull request, bấm Send to AI, và nhờ đầu bếp cho chị ba nhận xét: điều tốt, điều cần sửa, và rủi ro.
Chương 5: Ai đã nêm nồi này?
Tú: Ôn nhanh: pull request là gì?
Chị Lan: Trình món lên cho chủ quán duyệt, trước khi gộp vào bếp chính.
Chị Lan: Worktree với pull request là để làm xong rồi mới gộp. Còn lúc hai đầu bếp AI đang nấu cùng một dự án, chị làm sao biết ai đang sửa file nào?
Tú: Câu hỏi hay. Đầu bếp AI làm rất nhanh, một phút sửa cả chục file. Chị cần một camera trong bếp.
Tú: Trong 1DevTool, camera đó tên là Agent Changes. Nó cho chị biết đầu bếp nào đang sửa file nào, ngay lúc đang sửa. Khi một người sửa đè lên phần người khác vừa làm, gọi là overwrite, tức là ghi đè. Đúng chuyện đã xảy ra với giá bánh chưng của Bin.
Tú: Còn hai đầu bếp cùng nhắm vào một file thì gọi là collision, tức là đụng nhau.
Tú: Màn hình chính trả lời ba câu hỏi: việc gì đang cần chị, chỗ nào hai đầu bếp đang đụng nhau, và ai đang làm gì. Chị chọn mức an toàn cho dự án. Watch là chỉ quan sát. Guide là còn nhắc các đầu bếp biết người khác đang làm ở đâu, để tránh nhau ra.
Chị Lan: Không chặn ai, chỉ nhắc khéo. Giống tấm bảng ghi chú ở cửa bếp.
Tú: Còn điều này: mỗi phiên bản của mỗi file mà đầu bếp sửa đều được giữ lại, có ghi rõ ai viết. Kể cả khi chưa kịp lưu bằng git. Muốn lấy lại bản của Bin, chị mở file đó ra, chọn phiên bản, rồi đặt lại.
Bin: Vậy là phần của cháu không bao giờ mất nữa!
Tú: Còn khi hai đầu bếp cùng sửa một file, chị nhận được một cuộc gọi. Màn hình duyệt giải thích chuyện gì đã xảy ra. Nó cho chị xem bản của từng đầu bếp, một bản đã gộp, và nếu muốn, đề xuất của một trọng tài AI, tiếng Anh là referee.
Tú: Dù chị chọn gì, không có gì bị xóa.
Chị Lan: Chị là người chốt, nhưng có trọng tài gợi ý. Đỡ đau đầu ghê.
Bếp trưởng AI: Chị ơi, Agent Changes báo bạn kia đang sửa file thẻ tích điểm. Em sẽ làm phần khác trước, để khỏi đụng nhau.
Phụ bếp AI: Cảm ơn bạn. Em xong trong hai phút nữa.
Chị Lan: Hai đầu bếp tự nhường nhau. Còn con Mochi thì nằm chình ình giữa bàn phím, chẳng nhường ai.
Tú: Từ mới: overwrite, collision, và referee.
Tú: Thử ngay: bật Agent Changes ở mức Watch, cho hai đầu bếp cùng làm, rồi xem bản đồ: đường nào nối đầu bếp nào với file nào.
Chương 6: Hòm thư góp ý
Tú: Ôn nhanh: overwrite là gì?
Bin: Là khi người sau ghi đè lên phần người trước. Như giá bánh chưng của cháu!
Khách quen: Chị Lan ơi, trên điện thoại của em, nút tích điểm bị che mất một nửa. Còn chữ khuyến mãi thì ghi sai năm, vẫn là năm ngoái.
Chị Lan: Cảm ơn em, chị ghi lại liền.
Khách quen: À, mà quán có bán bạc xỉu size lớn không chị?
Chị Lan: Khách góp ý nhiều quá, chị ghi giấy thì lạc mất. Nhắn tin thì trôi.
Tú: Bếp nào cũng cần một hòm thư góp ý. Mỗi góp ý là một lá thư có số, có tình trạng: đang mở hay đã xử lý.
Tú: Lá thư đó gọi là issue. Mỗi issue có thể dán nhãn, tiếng Anh là label: lỗi, ý tưởng, hay việc gấp. Còn CI là một cái máy tự động nếm thử mỗi khi có người gộp món mới. Hễ món hỏng là nó la lên ngay.
Chị Lan: Một cái máy nếm không biết mệt. Chị cần cái đó.
Tú: Vẫn trong panel Repo, tab Issues. Chị tạo issue mới cho từng góp ý, dán nhãn, và giao cho người làm. Hay nhất là nút gửi issue thẳng cho một đầu bếp AI. Lá thư rơi đúng vào ô nhập của đầu bếp, chị khỏi phải chép lại.
Chị Lan: Khách góp ý buổi sáng, đầu bếp sửa buổi trưa.
Tú: Tab Pipelines là hàng đợi của máy nếm. Mỗi lần gộp món, máy chạy một lượt kiểm tra. Xanh là qua, đỏ là hỏng. Chị bấm Watch, thì hễ một lượt đang xanh chuyển sang đỏ, máy tính báo cho chị ngay, dù chị đang làm việc khác.
Chị Lan: Giống chuông báo khói trong bếp.
Chị Lan: Lá thư số mười bốn, nút bị che, chị giao cho đầu bếp AI. Số mười lăm, sai năm, giao cho Bin. Sửa chữ thôi, Bin làm được.
Bin: Còn số mười sáu, bạc xỉu size lớn... cô tự quyết nha. Cháu chỉ lo phần code.
Tú: Từ mới: issue, label, và CI.
Tú: Thử ngay: biến ba góp ý của khách thành ba issue có nhãn, rồi gửi một cái cho đầu bếp AI, dặn nó giải thích trước rồi mới sửa.
Chương 7: Tủ công thức trên mây
Tú: Ôn nhanh: issue là gì?
Chị Lan: Một lá thư trong hòm góp ý. Có số, có nhãn, có người nhận.
Bin: Cô ơi, cháu muốn làm tiếp ở nhà. Nhưng code nằm trên máy của quán.
Chị Lan: Mà lỡ máy quán bị đổ cà phê lên thì sao? Mười năm công thức của chị nằm hết trong đó.
Tú: Vì vậy mình cất một bản sao lên mây, ở GitHub. Giống như gửi công thức vào một cái tủ chung có khóa. Đẩy công thức từ máy lên tủ gọi là push. Lấy bản mới nhất từ tủ về máy gọi là pull.
Bin: Lần đầu ở máy nhà, cháu chép nguyên cái tủ về. Cái đó gọi là gì?
Tú: Gọi là clone. Nhân bản cả dự án, kèm luôn cuốn album lịch sử.
Tú: Còn fork là khi một người ngoài lấy công thức của chị về làm bản riêng, tự biến tấu, rồi có thể trình lại cho chị bằng một pull request.
Chị Lan: Như quán bên kia mượn công thức bạc xỉu của chị. Nếu họ làm ngon hơn thì mời chị nếm thử.
Tú: Trong 1DevTool, phía trên panel Git có ba nút: Fetch, Pull, và Push. Fetch là chỉ hỏi tủ xem có gì mới, chưa lấy về. Nếu đẩy lên bị lỗi, app nói rõ lý do, ví dụ tài khoản chưa có quyền, và chỉ chị chỗ cần sửa.
Chị Lan: Chị thích mấy lỗi biết nói tiếng người.
Bin: Cháu clone về máy nhà rồi! Có đủ cả album lịch sử, có cả bàn thực đơn Tết của cháu.
Tú: Mỗi lần ngồi vào bếp, nhớ pull trước. Làm xong, nhớ push lên. Quên pull là coi như nấu trên công thức cũ.
Chị Lan: Pull trước khi nấu, push sau khi nấu. Chị ghi lên tủ lạnh luôn.
Tú: Từ mới: push, pull, clone, và fork.
Tú: Thử ngay: đẩy dự án của chị lên một kho riêng tư trên GitHub, rồi clone về một thư mục khác. Nếu có đủ cả album lịch sử là chị thành công.
Chương 8: Nội quy bếp chung
Tú: Ôn nhanh: push là gì?
Bin: Đẩy công thức lên tủ chung trên GitHub. Còn pull là lấy về. Cháu nhớ hết rồi!
Chị Lan: Bin ơi, sao có một lần lưu ghi chú là j j j j j vậy cháu?
Bin: Không phải cháu! Con Mochi đi ngang bàn phím, bấm luôn nút commit.
Tú: Đó là lý do mình cần nội quy bếp chung. Cho cả người, cả AI, và cả mèo.
Tú: Nội quy có năm điều. Một: mỗi người một bàn sơ chế. Không ai nấu thẳng trên bếp chính. Hai: lưu nhỏ, lưu thường. Mỗi lần lưu chỉ làm một việc. Ba: ghi chú cho rõ, để người sau đọc là hiểu. Bốn: không đưa món thẳng ra bàn khách, luôn trình pull request.
Tú: Năm: pull trước khi nấu, push sau khi nấu.
Tú: Dòng ghi chú dưới mỗi lần lưu gọi là commit message. Viết như dặn người sau: thêm ảnh bánh chưng vào thực đơn Tết. Lưu nhỏ thì khi có lỗi, chị chỉ cần gỡ đúng một tấm ảnh nhỏ, không phải bỏ nguyên cả buổi làm.
Tú: Từ mới: commit message, và small commit.
Bin: Cô ơi, cháu nhờ đầu bếp viết commit message giùm cháu được không?
Bếp trưởng AI: Được chứ. Em đọc phần Bin đã sửa rồi viết: sửa năm khuyến mãi thành năm nay, đóng issue số mười lăm.
Chị Lan: Đầu bếp viết ghi chú còn rõ hơn chị. Nhưng chị vẫn đọc lại trước khi lưu.
Tú: Nhìn lại album của tuần này nè. Mỗi tấm ảnh nhỏ, có ghi chú rõ ràng, đi qua pull request và được nếm trước khi gộp.
Chị Lan: So với cái nồi lộn xộn hôm đầu, khác nhau một trời một vực.
Bin: Và lần lưu j j j j j của Mochi đã được gỡ bằng revert rồi nha cô!
Tú: Tập này chị học history, version, và revert. Học worktree, main, và env file. Học merge, conflict, resolve. Học pull request, approve, draft. Rồi overwrite, collision, và referee. Rồi issue, label, CI. Push, pull, clone, fork. Và cuối cùng,
Tú: commit message với small commit.
Chị Lan: Thêm hai mươi bốn từ nữa. Bảy mươi tư từ! Sắp tới mốc một trăm rồi!
Tú: Chị để ý không? Tập trước chị học điều hành đầu bếp AI. Tập này chị học cho người thật và AI cùng nấu mà không giẫm chân nhau.
Bin: Cháu cũng học được nhiều lắm. Hóa ra làm web cũng có checkpoint, có chơi chung, có cả hàng đợi như game.
Chị Lan: Mà chị thấy lạ một chuyện. Đầu bếp này viết khuyến mãi kiểu trang trọng, đầu bếp kia lại viết như dân mạng. Sao không đứa nào nhớ giọng của quán?
Tú: Tập sau: Sổ tay của quán. Mình viết một cuốn sổ công thức, để đầu bếp nào vào bếp cũng đọc trước.
Chị Lan: Dạy một lần, khỏi phải nhắc lại mãi. Chị chờ tập đó lâu lắm rồi.
Tú: Tải 1DevTool, tạo bàn sơ chế đầu tiên của bạn, và trình món đầu tiên bằng một pull request.
Chị Lan: Hẹn gặp lại ở Cà phê Mây, tập bốn nhé!
Bếp trưởng AI: Chị ơi, em đã giải quyết xong xung đột. Em giữ cả hai giá bạc xỉu, để khách tự chọn giá nào rẻ hơn.
Chị Lan: Không được! Quán phá sản mất!