Asked Aug 16th, 11:53 a.m. 209 2 4
  • 209 2 4
0

Cách để tránh mất code khi dùng Rebase thay cho Merge

Share
  • 209 2 4

Dự án của mình có yêu cầu dùng rebase thay vì merge.
Tuy nhiên thi thoảng dùng rebase sẽ gây ra mất code, git tự động chọn code cũ thay vì code mới.
Mọi người cho mình hỏi tại sao, nếu dùng rebase thì nên áp dùng flow nào để tránh mất code ạ

Flow hiện tại mình hay dùng:

  1. checkout tạo nhánh mới feature từ develop
  2. sau khi code xong ở nhánh feature thì git add, git commit
  3. quay lại nhánh develop, pull origin develop
  4. checkout lại nhánh feature và git rebase develop, sau đó thì ko thấy báo conflict gì mà mất code luôn.

Mình cảm ơn!

Sep 14th, 2:45 p.m.

Dự án của mình có yêu cầu dùng rebase thay vì merge.

Câu này hơi gây nhầm lẫn. Theo như flow bạn mô tả thì không phải dự án bắt dùng rebase thay merge nhé. Việc rebase ở bước 4 là để xử lý conflict nếu có trước khi open pull request thôi.

0
| Reply
Share

4 ANSWERS


Answered Aug 16th, 11:59 a.m.
0

rebase sẽ ghi đè lịch sử commit chứ bản thân các change vẫn giữ. bạn thử xem lại git log và các thay đổi xem. Hoặc bạn tạo merge request ở trên git server để check lại xem code mới có hay không

Share
Answered Aug 16th, 2:39 p.m.
0

nếu bạn đã commit thì :

  • dùng git reflog để xem lại lịch sử hành động.
  • dùng git reset --hard <id> là sẽ back về thời điểm commit đó.
Share
Answered Aug 27th, 5:03 p.m.
0

Bạn có thể thử lưu code vào bộ nhớ đệm bằng git stash sau đó pop ra và push lại sau khi pull origin từ develop, hoặc thay vì sử dụng lệnh pull có thể sử dụng git fetch trước để kiểm tra code pull về. Nếu không nhầm thì bạn đứng ở branch feature vẫn có thể dùng git pull origin development, lúc đó bạn sẽ xem được conflict của nó. Bạn có thể thử nhé

Share
Answered Aug 18th, 1:24 a.m.
-1

Bạn có thể show code và commit để chỉ rõ là bạn mất code nào và bạn có những commit thay đổi gì trong hai nhánh không?

Share
Viblo
Let's register a Viblo Account to get more interesting posts.