Kết hợp và di chuyển cam kết
Đi đến thư mục git-tutorial/tutorial6
mà bạn đã tải xuống trước đó.
Khi bạn kiểm tra lịch sử của kho lưu trữ này, nó sẽ giống như sau:
Chúng ta sắp sửa đổi cam kết có tin nhắn “append description of the commit command”.
Để làm điều đó, chúng ta sẽ sử dụng lệnh git rebase -i.
$ git rebase -i HEAD~~
Trình soạn thảo văn bản mặc định của bạn sẽ mở ra liệt kê các cam kết từ HEAD
xuống HEAD~~
, như hình bên dưới.
pick 9a54fd4 append description of the commit command
pick 0d4a808 append description of the pull command
# Rebase 326fc9f..0d4a808 onto d286baa
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash," but discard this commit log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
Ở dòng thứ nhất, thay từ pick
bằng edit
, sau đó lưu và thoát.
Bạn sẽ thấy đầu ra sau và được chuyển ra khỏi cam kết đó.
Stopped at d286baa... append description of the commit command
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Mở tệp sample.txt
và tạo thay đổi như hình bên dưới.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Record index state.
pull: Obtain the content of the remote repository
Sử dụng git commit --amend
để cam kết thay đổi.
$ git add sample.txt
$ git commit --amend
Sau đó thực hiện git rebase --continue
để hoàn tất quá trình nhập nhánh.
$ git rebase --continue
Trong khi chạy nhập nhánh trên nhánh hiện tại của bạn, bạn có thể gặp xung đột trong các thay đổi của mình. Để tiếp tục, bạn phải giải quyết những xung đột đó theo cách thủ công, sau đó chạy git add
và git rebase --continue
. Không cần phải đưa ra các cam kết mới để giải quyết xung đột.
Tuy nhiên, nếu bạn muốn ngừng nhập nhánh, bạn có thể gọi git rebase --abort
, thao tác này sẽ khôi phục và thoát khỏi toàn bộ quy trình và sửa đổi thành công cam kết.
Trong trường hợp bạn chỉ định edit
trên nhiều dòng khi gọi git rebase -i
, bạn sẽ được nhắc sửa đổi từng cam kết một lần.