[Công cụ] - Các lệnh Git cơ bản (Part 2)

 Xuất bản ngày: 06 Thg1 2022

Tải code mới nhất về từ branch master

Đầu tiên, bạn cần kiểm tra xem có update mới nhất từ bất kì branch nào hay không:

git fetch origin

Kết quả trả về thường như sau:

ad8d852..896ae21 kevin-dev -> origin/kevin-dev
+ e5a459d...ef560a6 master -> origin/master (forced update)

Như bạn thấy, vậy là có 2 branch có update mới. Nhiệm vụ của chúng ta là chuyển hẳn về branch master (vì đây thường là branch sẽ có chứa các code merge từ các branch khác). Ta sử dụng lần lượt các dòng lệnh sau:

  1. Bắt đầu bằng việc reset lại code trên branch hiện tại. Lưu ý bạn cần commit code lên trước khi reset nếu muốn lưu lại nhé.
    git reset --hard
  2. Tiếp theo, ta chuyển qua branch master:
    git checkout master
  3. Sau đó, ta chạy lệnh git fetch origin nếu bạn chưa chạy ở trên. Nếu đã chạy lệnh trên rồi, bạn chạy tiếp lệnh git reset --hard origin/master để update code mới nhất từ master về.
  4. Giờ, bạn cần kiểm tra lại bằng lệnh git log để xem các commit mới nhất có khớp không.

Thông thường nếu bạn làm theo như trên thì xác suất code lệch (tức là conflict) thường rất thấp.

Push code từ branch master local lên branch khác trên remote

Thông thường nếu bạn quên tạo branch mới sau khi checkout master, bạn sẽ gặp 1 tình huống là code commit trên master, nhưng mà bạn cần push code lên 1 branch riêng trên remote.

Ta có thể xử lý bằng 2 cách:

Cách 1: Push code trực tiếp từ branch master (local) lên branch khác trên remote

Cách này thiên về hot-fix, tức là đôi khi bạn chỉ có 1 commit cần push thôi. Các bước làm như sau:

  1. Bạn kiểm tra git status thấy báo master có 1 commit cần push lên.
  2. Chạy dòng lệnh: git push -u origin master:<tên branch khác> để đẩy code lên
  3. Chạy tiếp dòng lệnh git branch --set-upstream-to=origin/master để reset remote nhận lại master.
  4. (Nên làm) Bạn chạy lệnh git reset HEAD^1 để gỡ bỏ commit đó khỏi branch master trên local và git reset --hard. Mục đích là để không xung đột code nếu bạn cần update code master từ remote.

Cách 2: Tạo branch mới và push code lên bình thường

Cách này thì cũng tiện hơn nếu bạn có nhiều commit và cần tạo 1 branch riêng để đẩy code lên.

  1. Bạn kiểm tra git status thấy báo master có 1 commit cần push lên.
  2. Bạn tạo 1 branch mới và checkout luôn branch này: git checkout -b new-branch
  3. Bây giờ, bạn push code lên remote bằng branch này git push -u origin new-branch
  4. (Nên làm) Bạn checkout lại branch master và chạy git reset HEAD^1 để gỡ commit khỏi master, bởi vì nếu bạn muốn lấy code mới nhất từ master thì có thể bị xung đột (do branch master có thể không có commit của bạn).

Lấy 1 commit từ các branch khác

Tình huống này khá thú vị: chẳng hạn như bạn đang trên 1 branch chạy fix header trong khi 1 bạn khác đang chạy hotfix global typography. Tình huống đặt ra là bạn kia sửa phần typography của cả header nữa, trong khi bạn cần làm đồng thời.

Như vậy, ngay sau khi bạn kia commit code lên, bạn cần sử dụng code của bạn ấy để xem có bị xung đột gì với code bạn đang làm hay không.

Với các case như này, việc sử dụng cherry-pick được coi là 1 giải pháp hiệu quả.

Cách thức thực hiện có thể như sau:

  1. Đầu tiên bạn chạy git fetch orign để xem branch của bạn kia có update gì mới không.
  2. Tiếp đến, nếu thấy update mới, bạn tìm commit ID và gõ git cherry-pick commit-id để lấy commit đó vào branch hiện tại của bạn.

Lưu ý nếu cả 2 cùng sửa 1 file, có thể sẽ có conflict. Bạn chỉ cần so sánh và cố gắng giữ cả code của bạn lẫn của bạn dev kia là được.

Đam mê không phải là thứ có thể đến với bạn, cũng không phải là thứ bạn có thể nghĩ ra, mà đam mê là điều bạn phải dấn thân, tìm kiếm và quan trọng hơn hết là lựa chọn cho mình.

Đọc được ở đâu đó

H.wiki mong muốn luôn cập nhật những thông tin hay và hữu ích cho tất cả mọi người.

Nếu bạn thấy bài viết này hay thì hãy like, chia sẻ với bạn bè, người thân và đừng quên ủng hộ blog nhé !

Chúc các bạn luôn luôn thành công !

Công sức của a-đờ-min #mittoHoa

Mr Hòa fanpage Hòa Dương chanel
to top