Áp dụng cho Eclipse Luna + Eclipse Git 3.6.1
TÔI,
- kho git nhân bản
- thực hiện một số thay đổi trong mã nguồn
- các thay đổi theo giai đoạn từ Git Staging View
- cuối cùng, cam kết và Đẩy!
Và tôi đã đối mặt với vấn đề này với EGit và đây là cách tôi khắc phục nó ..
Có, ai đó đã cam kết các thay đổi trước khi tôi thực hiện các thay đổi của mình. Vì vậy, các thay đổi bị từ chối. Sau lỗi này, các thay đổi thực sự được cam kết vào kho lưu trữ cục bộ. Tôi không muốn chỉ Pull
thay đổi vì tôi muốn duy trì linear history
như đã chỉ ra trong - Trong những trường hợp nào thì `git pull` có thể gây hại?
Vì vậy, tôi đã thực hiện các bước sau
- từ quan điểm Kho lưu trữ Git, nhấp chuột phải vào
dự án Git liên quan
- select
Fetch from Upstream
- nó tìm nạp các bản cập nhật từ xa (refs và các đối tượng) nhưng không có bản cập nhật nào được thực hiện cục bộ. để biết thêm thông tin, hãy tham khảo Sự khác biệt giữa 'git pull' và 'git fetch' là gì?
- select
Rebase...
- cái này sẽ mở một cửa sổ bật lên, nhấp vào để Preserve merges during rebase
xem tại sao
"rebase --preserve-merges" của git chính xác làm gì (và tại sao?)
- bấm vào
Rebase button
- nếu có / có a
conflict(s)
, hãy chuyển sang bước 6 khác bước 11
- một
Rebase Result
cửa sổ bật lên sẽ xuất hiện, chỉ cần nhấp vàoOK
file comparator
sẽ mở ra, bạn cần phải sửa đổi left side file
.
- khi bạn đã hoàn tất việc hợp nhất các thay đổi một cách chính xác, goto
Git Staging
view
stage the changes
. I Eadd to index
- trên cùng một chế độ xem, nhấp vào
Rebase
-> Continue
. lặp lại từ 7 đến 10 cho đến khi tất cả các xung đột được giải quyết.
- từ
History
chế độ xem, chọn hàng cam kết của bạn và chọnPush Commit
- chọn
Rebase Commits of local.......
hộp kiểm và nhấp vào tiếp theo. tham khảo lý do - Git: rebase vào nhánh phát triển từ thượng nguồn
- bấm vào
Finish
Lưu ý: nếu bạn có nhiều cam kết của kho lưu trữ cục bộ, bạn cần tách chúng trong một cam kết để tránh nhiều lần hợp nhất.