0

Git thực chiến - Chia sẻ từ kinh nghiệm [Storytelling - Phần 1]

Hi, xin chào, đây là chia sẻ đầu tiên của mình về Git, một tool cơ bản mà bất cứ lập trình viên nào cũng biết và có thể đang sử dụng. Đầu tiên, mình là một kỹ sư AI, với một số ít năm kinh nghiệm, mình hy vọng chia sẻ này sẽ giúp ích cho các bạn chuẩn bị tốt nghiệp hoặc mới ra trường và đang tìm kiếm một cơ hội thực tập nhé. Bắt đầu thôi!

Đầu tiên, Git được dùng để quản lý source code của bạn qua các phiên bản. Dễ hiểu hơn một tí đó là Git giúp bạn lưu lại code change, các updates, thêm, xoá, sửa thông qua các thứ gọi là commits. Điều này giúp bạn dễ tìm ra “hung thủ” cho các đoạn code lởm và bem … (trừ sếp)

Tiếp theo, để hiểu về Git, thường các bạn sẽ quen thuộc với GitHub, nền tảng lưu trữ codebase của cả team (trên cloud), thì đó gọi là remote.

Quyền truy cập vào repositories

Để bắt đầu tham gia vào coding cùng với team, đầu tiên các bạn phải các quyền truy cập vào repositories của team (thường thì team lead sẽ invite các bạn thông qua email hoặc github username).

Tiếp theo là quyền access vào repository, các bạn sẽ dùng đến SSH. Đây là khái niệm mã hoá, về logic, SSH là bộ keys gồm public keysecret key. Bạn dễ dàng tạo SSH keys ngay trên terminal của máy local của bạn (hãy ghi nhớ mật khẩu bạn vừa nhập nhé (nếu có))

ssh-keygen -t ed25519 -C "your_email@example.com"

Sau đó, bạn không cần làm gì với secret key vừa được tạo ngay trên máy của mình. Đối với public key thì bạn cần add vào account GitHub của bạn (như 1 sợi dây liên kết giữa máy tính của bạn và account GitHub là 1 thực thể thống nhất).

Đến đây, máy tính của bạn có thể clone (có thể hiểu theo nghĩa là download) source code về local

Clone source code

Từ trang chính diện của repository bạn dự định download source code, bạn sẽ dễ dàng tìm thấy một đường link download thông qua https, nhưng ở đây, bạn chọn SSH, ví dụ như [git@github.com](mailto:git@github.com):<org>/<repo-name>.git . Và câu lệnh bạn cần là

git clone [git@github.com](mailto:git@github.com):<org>/<repo-name>.git

(nhớ nhập lại mật khẩu ở trên nhé)

Kiểm tra repository đã được cloned về thành công!

Khám phá source code

Thông thường, bạn sẽ luôn thấy codebase mới nhất của team (gọi là nhánh mới nhất, thường tên là main hoặc master) nơi mà code của mọi thành viên phải thống nhất và được merge vào đây. Bạn dễ dàng kiểm tra với lệnh:

git branch

Để kiểm tra toàn bộ nhánh mà các thành viên khác đang developing, bạn dùng lệnh trên với flag là -a (viết tắt của all)

git branch -a

Bạn có lẻ sẽ nhận ra có 2 nhánh main hoặc master đó là nhánh ở trên và nhánh có thêm phần tiền tố origin.

main
origin/main

Hiểu đơn giản thì, bạn đang có 3 môi trường quản lý source code gồm:

  1. GitHub: remote
  2. code bạn đang nhìn thấy trên IDE (ví dụ main) chính là workspace của bạn, có thể thay đổi thêm xoá sửa.
  3. nhóm tiền tố origin chính là toàn bộ source code của remote tại thời điểm bạn cloned (nghĩa là nếu có ai đó vừa update vào GitHub thì bộ code origin đang ở dưới máy local của bạn sẽ bị outdated)

Okay, bắt đầu code thôi!

Start to contribute

Bạn sẽ không nên code trực tiếp vào nhánh main và push chúng, do đó bạn sẽ tạo ra một nhánh mới (kế thừa tất cả code đang có trên main) bằng lệnh sau:

(đảm bảo bạn đang ở nhánh main → kiểm tra bằng lệnh git branch)

git checkout -b <new-branch-name>

Bạn tự đặt tên cho nhánh mới mình vừa tạo, ví dụ tridoan/fix-bug-...

Và bây giờ là lúc: …..

🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻

Code cực cănggg

🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻🧑‍💻

Xong, bạn “cảm thấy” code đã ổn và đẹp. Hãy commit chúng trước khi push lên remote. Bạn dùng tổ hợp lệnh

git add .

(nghĩa là toàn bộ file changes của bạn sẽ được đánh dấu phần thay đổi, gọi là staged changes) và sẵn sàng để commit bởi lệnh tiếp theo

git commit -m "what did you do"

-m là viết tắt của message vậy nên hãy ghi rõ và xúc tích bạn đã làm gì trong commit này.

Trước khi push, bạn chợt nhận ra cần update một xíu code. Hãy thoải mái làm điều đó và thực hiện tại git add .git commit. Khi đó, tại nhánh của bạn đang có 2 commits mới (lastest hơn so với main)

Và bạn sẵn sàng để push code lên remote, bằng lệnh:

git push

Đến đây, bạn sẽ nhận một thông báo lỗi, rằng là: nhánh bạn mới tạo tridoan/fix-bug-... chỉ có ở máy tính local của bạn mà không tìm thấy tương ứng 1-1 trên remote … bla bla, do đó bạn cần tạo nhánh remote và push bằng lệnh được gợi ý (trong chính thông báo lỗi)

 git push --set-upstream origin tridoan/fix-bug-...

Now, hãy truy cập đường link trên remote ở nhánh bạn vừa push lên, và Create Pull Request (PR) và ghi summarization những gì bạn làm để team sẵn sàng review chúng.

Chúc mừng!!! Bạn đã thành công tạo được PR lần đầu tiên, đóng góp code của mình vào dự án chung.

[Phần tiếp theo là các tình huống thực tế khi thực hiện dự án]


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí