Trong nhiều trường hợp làm việc lâu với Git, việc branch trên máy tính của bạn và trên hệ thống online không đồng bộ là chuyện khó tránh khỏi. Ta sẽ bàn cách đồng bộ Git branch vụ này như thế nào nhé.
Branch trong Git đồng bộ như thế nào?
Đầu tiên, ta cần hiểu và nắm được những gì cơ bản về branch trong Git. Đầu tiên, hãy thử làm theo những gợi ý sau:
1. Sử dụng command git fetch
để kiểm tra xem trên origin (online) có những nhánh branch nào đã update mới. Bạn có thể mở SourceTree ra để quan sát cho trực quan hơn.
2. Tiếp đến, bạn thường checkout vào 1 branch online, hoặc reset về branch đó. Cú pháp thường như sau:
Checkout luôn vào 1 branch online
# git checkout origin/feature/hero
Bước này mới chuyển vào, nhưng chưa gắn HEAD.
# git checkout -b feature/hero
Bước này mới là gắn HEAD và hoàn tất
Reset về branch online ngay trên branch hiện tại
Hoặc sử dụng cách khác là trên branch có sẵn của bạn, bạn chuyển thẳng lên reset về đúng branch bạn cần.
Ví dụ tôi đang ở branch feature/hero
rồi thì tôi chỉ cần gõ lệnh:
# git reset --hard origin/feature/hero
Giờ, ta sẽ quay trở lại với những gì bạn đang có.
Thực chất, branch origin/feature/hero
và feature/hero
đang có trên máy của bạn là một, đúng không? Thật ra câu hỏi này hoàn toàn tương đối, vì là một “tại thời điểm bạn vừa mới checkout” thôi.
Nói như thế tức là thế nào?
-
- Ai đó cũng ghi code lên branch đó, như vậy branch
origin/feature/hero
sẽ mới hơn của bạn. - Ai đó ghi đè lên branch đó, branch
origin/feature/hero
giờ hoàn toàn không giống branch trên máy bạn.
- Ai đó cũng ghi code lên branch đó, như vậy branch
Như vậy, nảy sinh một tình huống oái oăm như ví dụ sau đây khi ta chạy lệnh git fetch:
Branch nào đó bạn đã từng checkout, giờ không còn tồn tại trên local vì bị xoá trên đó.
Mỗi lần bạn gõ git fetch
đều sẽ gặp tình cảnh như trên.
Hướng dẫn prune (tái đồng bộ các branch) trên máy bạn
Command thần thánh là đây:
git remote prune <tên remote>
Ví dụ:
git remote prune origin
git remote prune pantheon
Và như vậy, mọi chuyện sẽ xảy ra đơn giản cho cả hai:
Chúc bạn thành công với một mẹo nhỏ như trên.
Giám đốc tại Công ty CP CODE TỐT. Quản lý ngôn ngữ bản địa tiếng Việt tại WordPress. Là tác giả chính tại codetot.net, Khôi muốn ghi lại một sốvấn đề kỹ thuật trong quá trình phát triển các dự án website với khách hàng.
Cách đặt tên branch là feature/hero hay đấy! Học thôi!