Nhập nhánh
Một cách tiếp cận khác để tích hợp nhánh issue3
vào nhánh chính là lệnh git rebase. Sử dụng nhập nhánh, chúng ta có thể dọn sạch cây lịch sử của mình, như thảo luận trước đó trong hướng dẫn này.
Hãy bắt đầu bằng cách hủy thao tác hợp nhất trước đó.
$ git reset --hard HEAD~
Lịch sử của chúng ta trông như bây giờ:
Tiếp theo, chuyển sang nhánh issue3
và nhập lên nhánh chính.
$ git checkout issue3
Switched to branch 'issue3'
$ git rebase main
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
error: could not apply 470d684... My Commit
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 470d684... My Commit
Khi xung đột xảy ra trong quá trình nhập nhánh, bạn phải giải quyết nó để tiếp tục hoạt động
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of a remote repository
>>>>>>> issue3
Khi xung đột được giải quyết, bạn có thể tiếp tục nhập nhánh với tùy chọn --continue
.
Trước khi áp dụng các thay đổi của bạn, Git sẽ mở trình soạn thảo văn bản mặc định của bạn (Vim hoặc Emacs trên hầu hết các hệ thống Unix) để cho bạn cơ hội chỉnh sửa tin nhắn nhập nhánh. Nếu bạn muốn thoát và khôi phục thao tác nhập nhánh, bạn có thể làm như vậy với tùy chọn --abort
.
$ git add myfile.txt
$ git rebase --continue
Applying: append description of the pull command
Bây giờ, lịch sử của chúng ta trông như thế này:
Với nhánh issue3
được nhập lên trên main
, giờ đây chúng ta có thể phát hành hợp nhất chuyển tiếp nhanh.
Chuyển sang nhánh chính và hợp nhất issue3
với main
.
$ git checkout main
Switched to branch 'main'
$ git merge issue3
Updating 8f7aa27..96a0ff0
Fast-forward
myfile.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Nội dung của tệp myfile.txt
bây giờ sẽ giống với nội dung trong lần hợp nhất trước đó. Và lịch sử bây giờ sẽ giống như sau: