Tôi đã viết điều sai trong một thông điệp cam kết.
Làm thế nào tôi có thể thay đổi tin nhắn? Các cam kết chưa được đẩy.
git commit --amend
sẽ mở trình soạn thảo của bạn, cho phép bạn thay đổi thông báo cam kết của lần xác nhận gần đây nhất. Ngoài ra, bạn có thể đặt thông báo cam kết trực tiếp trong dòng lệnh với:
git commit --amend -m "New commit message"
Tuy nhiên, điều này có thể làm cho các thông điệp cam kết nhiều dòng hoặc chỉnh sửa nhỏ trở nên cồng kềnh hơn để nhập.
Hãy chắc chắn rằng bạn không có bất kỳ thay đổi bản sao làm việc nào dàn dựng trước khi thực hiện việc này nếu không chúng cũng sẽ được cam kết. (Không thay đổi thay đổi sẽ không được cam kết.)
Nếu bạn đã đẩy cam kết của mình lên chi nhánh từ xa, thì bạn sẽ cần buộc Đẩy cam kết với:
git Push <remote> <branch> --force
# Or
git Push <remote> <branch> -f
Cảnh báo: lực đẩy sẽ ghi đè lên nhánh từ xa với trạng thái của địa phương của bạn. Nếu có các cam kết trên nhánh từ xa mà bạn không có trong nhánh cục bộ của mình, bạn will sẽ mất các cam kết đó.
Cảnh báo: thận trọng về việc sửa đổi các cam kết mà bạn đã chia sẻ với người khác. Sửa đổi các cam kết về cơ bản viết lại chúng có các SHA ID khác nhau) gây ra vấn đề nếu người khác có bản sao của cam kết cũ mà bạn đã viết lại. Bất kỳ ai có bản sao của cam kết cũ sẽ cần phải đồng bộ hóa công việc của họ với cam kết mới được viết lại, đôi khi có thể khó khăn, vì vậy hãy đảm bảo bạn phối hợp với người khác khi cố gắng viết lại chia sẻ lịch sử cam kết hoặc chỉ cần tránh viết lại các cam kết được chia sẻ hoàn toàn.
Một lựa chọn khác là sử dụng rebase tương tác.
[.__.] Điều này cho phép bạn chỉnh sửa bất kỳ tin nhắn nào bạn muốn cập nhật ngay cả khi đó không phải là tin nhắn mới nhất.
Để thực hiện một git squash, hãy làm theo các bước sau:
// X is the number of commits to the last commit you want to be able to edit
git rebase -i HEAD~X
Khi bạn xóa các cam kết của mình - chọn e/r
để chỉnh sửa tin nhắn
Khi bạn sử dụng git rebase -i HEAD~X
, có thể có nhiều hơn hơn là X
cam kết. Git sẽ "thu thập" tất cả các cam kết trong các cam kết X
cuối cùng và nếu có sự hợp nhất ở đâu đó trong phạm vi đó, bạn sẽ thấy tất cả các cam kết cũng vì vậy kết quả sẽ là X +.
Nếu bạn phải làm điều đó cho nhiều hơn một chi nhánh và bạn có thể phải đối mặt với xung đột khi sửa đổi nội dung, hãy thiết lập git rerere
và để git tự động giải quyết các xung đột đó cho bạn.
git commit --amend -m "your new message"
Nếu cam kết bạn muốn sửa thì không phải là cam kết gần đây nhất:
git rebase --interactive $parent_of_flawed_commit
Nếu bạn muốn sửa một số cam kết thiếu sót, hãy vượt qua cha mẹ của người già nhất trong số họ.
Một biên tập viên sẽ đưa ra, với một danh sách tất cả các cam kết kể từ khi bạn đưa ra.
pick
thành reword
(hoặc trên các phiên bản cũ của Git, thành edit
) trước bất kỳ cam kết nào bạn muốn sửa.Đối với mỗi cam kết bạn muốn tua lại , Git sẽ đưa bạn trở lại trình chỉnh sửa của mình. Đối với mỗi cam kết bạn muốn chỉnh sửa , Git thả bạn vào Shell. Nếu bạn là người trong Shell:
git commit --amend
git rebase --continue
Hầu hết các chuỗi này sẽ được giải thích cho bạn bằng đầu ra của các lệnh khác nhau khi bạn đi. Nó rất dễ dàng, bạn không cần phải ghi nhớ nó - chỉ cần nhớ rằng git rebase --interactive
cho phép bạn sửa lỗi cho dù chúng đã tồn tại bao lâu.
Lưu ý rằng bạn sẽ không muốn thay đổi các cam kết mà bạn đã đẩy. Hoặc có thể bạn làm, nhưng trong trường hợp đó, bạn sẽ phải hết sức cẩn thận để liên lạc với tất cả những người có thể đã thực hiện cam kết của bạn và thực hiện công việc trên đầu trang của họ. Làm cách nào để khôi phục/đồng bộ hóa lại sau khi ai đó đẩy rebase hoặc đặt lại vào nhánh được xuất bản?
Để sửa đổi cam kết trước đó, hãy thực hiện các thay đổi bạn muốn và thực hiện các thay đổi đó, rồi chạy
git commit --amend
Điều này sẽ mở một tệp trong trình soạn thảo văn bản của bạn đại diện cho thông điệp cam kết mới của bạn. Nó bắt đầu được điền với văn bản từ tin nhắn cam kết cũ của bạn. Thay đổi thông điệp cam kết như bạn muốn, sau đó lưu tệp và thoát trình chỉnh sửa của bạn để hoàn tất.
Để sửa đổi cam kết trước đó và giữ cùng một thông điệp tường trình, hãy chạy
git commit --amend -C HEAD
Để sửa lỗi cam kết trước đó bằng cách xóa hoàn toàn, hãy chạy
git reset --hard HEAD^
Nếu bạn muốn chỉnh sửa nhiều hơn một tin nhắn cam kết, hãy chạy
git rebase -i HEAD~commit_count
(Thay thế cam kết với số lượng xác nhận mà bạn muốn chỉnh sửa.) Lệnh này khởi chạy trình soạn thảo của bạn. Đánh dấu cam kết đầu tiên (cam kết mà bạn muốn thay đổi) là bản chỉnh sửa của Cameron thay vì chọn Pick, sau đó lưu và thoát trình soạn thảo của bạn. Thực hiện thay đổi bạn muốn cam kết và sau đó chạy
git commit --amend
git rebase --continue
Lưu ý: Bạn cũng có thể "Thực hiện thay đổi bạn muốn" từ trình chỉnh sửa được mở bởi git commit --amend
Như đã đề cập, git commit --amend
là cách ghi đè lên cam kết cuối cùng. Một lưu ý: nếu bạn cũng muốn ghi đè lên các tệp , lệnh sẽ là
git commit -a --amend -m "My new commit message"
Bạn cũng có thể sử dụng git filter-branch
cho việc đó.
git filter-branch -f --msg-filter "sed 's/errror/error/'" $flawed_commit..HEAD
Nó không dễ như một git commit --amend
tầm thường, nhưng nó đặc biệt hữu ích, nếu bạn đã có một số kết hợp sau thông báo cam kết sai lầm của bạn.
Lưu ý rằng điều này sẽ cố gắng viết lại MỌI cam kết giữa HEAD
và cam kết thiếu sót, vì vậy bạn nên chọn lệnh msg-filter
của mình thật khôn ngoan ;-)
Tôi thích cách này.
git commit --amend -c <commit ID>
Nếu không, sẽ có một cam kết mới với ID cam kết mới
Nếu bạn đang sử dụng công cụ Git GUI, có một nút có tên là sửa đổi cam kết cuối cùng. Nhấp vào nút đó và sau đó nó sẽ hiển thị các tập tin và cam kết cuối cùng của bạn. Chỉ cần chỉnh sửa tin nhắn đó và bạn có thể cam kết với tin nhắn cam kết mới.
Hoặc sử dụng lệnh này từ bàn điều khiển/thiết bị đầu cuối:
git commit -a --amend -m "My new commit message"
Bạn có thể sử dụng Git rebasing . Ví dụ: nếu bạn muốn sửa đổi trở lại để xác nhận bbc643cd, hãy chạy
$ git rebase bbc643cd^ --interactive
Trong trình chỉnh sửa mặc định, sửa đổi 'chọn' thành 'chỉnh sửa' trong dòng có cam kết bạn muốn sửa đổi. Thực hiện các thay đổi của bạn và sau đó thực hiện chúng với
$ git add <filepattern>
Bây giờ bạn có thể sử dụng
$ git commit --amend
để sửa đổi cam kết và sau đó
$ git rebase --continue
để trở lại cam kết đầu trước.
Nếu bạn chỉ muốn sửa đổi thông điệp cam kết cuối cùng của mình, thì hãy làm:
git commit --amend
Điều đó sẽ thả bạn vào trình duyệt văn bản của bạn và cho phép bạn thay đổi thông báo cam kết cuối cùng.
Nếu bạn muốn thay đổi 3 thông điệp cam kết gần nhất hoặc bất kỳ thông điệp cam kết nào cho đến thời điểm đó, hãy cung cấp HEAD~3
cho lệnh git rebase -i
:
git rebase -i HEAD~3
Nếu bạn phải thay đổi một thông báo cam kết cũ trên nhiều chi nhánh (nghĩa là, cam kết với thông báo lỗi có trong nhiều chi nhánh) bạn có thể muốn sử dụng:
git filter-branch -f --msg-filter \
'sed "s/<old message>/<new message>/g"' -- --all
Git sẽ tạo một thư mục tạm thời để viết lại và sao lưu thêm các tham chiếu cũ trong refs/original/
.
-f
sẽ thực thi thao tác. Điều này là cần thiết nếu thư mục tạm thời đã có hoặc nếu đã có tài liệu tham khảo được lưu trữ dưới refs/original
. Nếu đó không phải là trường hợp, bạn có thể thả cờ này.
--
tách các tùy chọn nhánh bộ lọc khỏi các tùy chọn sửa đổi.
--all
sẽ đảm bảo rằng tất cả các nhánh và thẻ được viết lại.
Do sao lưu các tham chiếu cũ của bạn, bạn có thể dễ dàng quay lại trạng thái trước khi thực hiện lệnh.
Giả sử, bạn muốn khôi phục chủ của mình và truy cập vào nhánh old_master
:
git checkout -b old_master refs/original/refs/heads/master
Sử dụng
git commit --amend
Để hiểu chi tiết, một bài viết xuất sắc là 4. Viết lại Lịch sử Git. Nó cũng nói về khi không sử dụng git commit --amend
.
Bạn có một vài lựa chọn ở đây. Bạn có thể làm
git commit --amend
miễn là đó là cam kết cuối cùng của bạn.
Mặt khác, nếu đó không phải là cam kết cuối cùng của bạn, bạn có thể thực hiện một cuộc nổi loạn tương tác,
git rebase -i [branched_from] [hash before commit]
Sau đó, bên trong rebase tương tác, bạn chỉ cần thêm chỉnh sửa cho cam kết đó. Khi nó xuất hiện, hãy thực hiện git commit --amend
và sửa đổi thông điệp cam kết. Nếu bạn muốn quay lại trước điểm cam kết đó, bạn cũng có thể sử dụng git reflog
và chỉ cần xóa cam kết đó. Sau đó, bạn chỉ cần làm lại một git commit
.
Nếu bạn đang sử dụng GUI Git, bạn có thể sửa đổi cam kết cuối cùng chưa được đẩy bằng:
Commit/Amend Last Commit
Nếu đó là cam kết cuối cùng của bạn, chỉ cần sửa đổi cam kết:
git commit --amend -o -m "New commit message"
(sử dụng cờ -o
(--only
) để đảm bảo bạn chỉ thay đổi thông điệp cam kết)
[.__.] Nếu đó là một cam kết bị chôn vùi, hãy sử dụng rebase tương tác tuyệt vời :
git rebase -i @~9 # Show the last 9 commits in a text editor
Tìm cam kết bạn muốn, thay đổi pick
thành r
(reword
), đồng thời lưu và đóng tệp. Làm xong!
Hướng dẫn thu nhỏ vim (hoặc, làm thế nào để rebase chỉ với 8 lần nhấn phím 3j
cw
r
EscZZ
):
vimtutor
nếu bạn có thời gianh
j
k
l
tương ứng với các phím di chuyển ←↓↑→3j
di chuyển xuống 3 dòngi
để vào chế độ chèn - văn bản bạn nhập sẽ xuất hiện trong tệpc
để thoát chế độ chèn và trở về chế độ "bình thường"u
trở lạir
làm lạidd
, dw
, dl
để xóa một dòng, Word hoặc chữ cái, tương ứngcc
, cw
, cl
để thay đổi một dòng, Word hoặc chữ cái tương ứng (giống như dd
i
)yy
, yw
, yl
để sao chép ("yank") một dòng, Word hoặc chữ cái, tương ứngp
hoặc là P
để dán sau, hoặc trước vị trí hiện tại, tương ứng:w
Enter để lưu (ghi) một tập tin:q!
Enter bỏ mà không tiết kiệm:wq
Enter hoặc là ZZ
để tiết kiệm và thoátNếu bạn chỉnh sửa văn bản nhiều, sau đó chuyển sang bố trí bàn phím Dvorak, tìm hiểu loại cảm ứng và tìm hiểu vim. Có đáng để nỗ lực không? Có.
ProTip ™: Đừng ngại thử nghiệm các lệnh "nguy hiểm" viết lại lịch sử * - Git không xóa các cam kết của bạn trong 90 ngày theo mặc định; bạn có thể tìm thấy chúng trong reflog:
$ git reset @~3 # go back 3 commits
$ git reflog
c4f708b [email protected]{0}: reset: moving to @~3
2c52489 [email protected]{1}: commit: more changes
4a5246d [email protected]{2}: commit: make important changes
e8571e4 [email protected]{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started
* Xem ra các tùy chọn như --hard
và --force
mặc dù - họ có thể loại bỏ dữ liệu.
[.__.] * Ngoài ra, đừng viết lại lịch sử trên bất kỳ chi nhánh nào bạn đang cộng tác.
Tôi sử dụng Git GUI càng nhiều càng tốt, và điều đó cho bạn tùy chọn để sửa đổi cam kết cuối cùng:
Ngoài ra, git rebase -i Origin/master
là một câu thần chú hay sẽ luôn mang đến cho bạn những cam kết bạn đã thực hiện trên đỉnh chính và cung cấp cho bạn tùy chọn để sửa đổi, xóa, sắp xếp lại hoặc squash. Không cần phải có được băm đó đầu tiên.
Wow, vì vậy có rất nhiều cách để làm điều này.
Tuy nhiên, một cách khác để làm điều này là xóa cam kết cuối cùng, nhưng hãy giữ các thay đổi của nó để bạn không bị mất việc. Sau đó, bạn có thể thực hiện một cam kết khác với thông báo đã sửa. Điều này sẽ trông giống như thế này:
git reset --soft HEAD~1
git commit -m 'New and corrected commit message'
Tôi luôn luôn làm điều này nếu tôi quên thêm một tập tin hoặc thay đổi.
Ghi nhớ để chỉ định --soft
thay vì --hard
, nếu không bạn sẽ mất hoàn toàn cam kết đó.
Đối với bất kỳ ai đang tìm kiếm GUI Windows/Mac để giúp chỉnh sửa các tin nhắn cũ hơn (tức là không chỉ là tin nhắn mới nhất), tôi khuyên bạn nên SourceTree . Các bước để làm theo dưới đây.
Đối với các xác nhận chưa được đẩy đến một điều khiển từ xa:
... Hoặc ... đối với các cam kết đã được đẩy:
Thực hiện theo các bước trong câu trả lời này , tương tự như trên nhưng yêu cầu một lệnh tiếp theo được chạy từ dòng lệnh để buộc-Đẩy nhánh - đọc tất cả và áp dụng thận trọng cần thiết!
Nếu bạn chỉ muốn chỉnh sửa sử dụng cam kết mới nhất:
git commit --amend
hoặc là
git commit --amend -m 'one line message'
Nhưng nếu bạn muốn chỉnh sửa một số cam kết liên tiếp, bạn nên sử dụng rebasing thay thế:
git rebase -i <hash of one commit before the wrong commit>
Trong một tệp như ở trên, hãy viết chỉnh sửa/e hoặc một trong các tùy chọn khác và nhấn lưu và thoát.
Bây giờ bạn sẽ ở cam kết sai đầu tiên. Thực hiện thay đổi trong các tệp và chúng sẽ được tự động dàn dựng cho bạn. Kiểu
git commit --amend
lưu và thoát khỏi đó và gõ
git rebase --continue
để chuyển sang lựa chọn tiếp theo cho đến khi hoàn thành với tất cả các lựa chọn của bạn.
Lưu ý rằng những điều này thay đổi tất cả băm SHA của bạn sau lần cam kết cụ thể đó.
Nếu bạn chỉ muốn thay đổi tin nhắn cuối cùng của mình, bạn nên sử dụng cờ --only
hoặc phím tắt của nó -o
với commit --amend
:
git commit --amend -o -m "New commit message"
Điều này đảm bảo rằng bạn không vô tình nâng cao cam kết của mình với các công cụ được dàn dựng. Tất nhiên, tốt nhất là có cấu hình $EDITOR
thích hợp. Sau đó, bạn có thể bỏ tùy chọn -m
và git sẽ điền trước thông điệp cam kết với thông báo cũ. Bằng cách này, nó có thể dễ dàng chỉnh sửa.
Cập nhật tin nhắn cam kết sai cuối cùng của bạn với tin nhắn cam kết mới trong một dòng:
git commit --amend -m "your new commit message"
Hoặc, hãy thử thiết lập lại git như dưới đây:
# You can reset your head to n number of commit
# NOT a good idea for changing last commit message
# but you can get an idea to split commit into multiple commits
git reset --soft HEAD^
# it will reset you last commit. Now, you
# can re-commit it with new commit message.
git reset
cũng có thể giúp bạn chia một cam kết thành nhiều cam kết:
# reset your head. I am resetting to last commits:
git reset --soft HEAD^
# (you can reset multiple commit by doing HEAD~2(no. of commits)
# Now, reset your head for splitting it to multiple commits
git reset HEAD
# add and commit your files seperately to make multiple commits: e.g
git add app/
git commit -m "add all files in app directory"
git add config/
git commit -m "add all files in config directory"
Ở đây bạn đã phá vỡ thành công cam kết cuối cùng của bạn thành hai cam kết.
Về câu hỏi này, có rất nhiều câu trả lời nhưng không ai trong số họ giải thích siêu chi tiết về cách thay đổi các thông điệp cam kết cũ hơn bằng VIM. Tôi đã bị mắc kẹt khi cố gắng tự làm điều này, vì vậy ở đây tôi sẽ viết chi tiết về cách tôi đã làm điều này đặc biệt đối với những người không có kinh nghiệm về VIM!
Tôi muốn thay đổi năm cam kết mới nhất của mình mà tôi đã đẩy lên máy chủ. Điều này khá 'nguy hiểm' vì nếu người khác đã rút từ điều này, bạn có thể làm mọi thứ rối tung lên bằng cách thay đổi các thông điệp cam kết. Tuy nhiên, khi bạn làm việc trên chi nhánh nhỏ của mình và chắc chắn không ai kéo nó, bạn có thể thay đổi nó như thế này:
Giả sử bạn muốn thay đổi năm cam kết mới nhất của mình, sau đó bạn nhập mã này vào thiết bị đầu cuối:
git rebase -i HEAD~5
* Trong đó 5 là số lượng tin nhắn cam kết bạn muốn thay đổi. (vì vậy nếu bạn muốn thay đổi lần thứ 10 thành lần cam kết cuối cùng, bạn nhập vào 10)
Lệnh này sẽ đưa bạn vào VIM ở đó bạn có thể ‘chỉnh sửa lịch sử cam kết của bạn. Bạn sẽ thấy 5 cam kết cuối cùng của mình ở đầu như thế này:
pick <commit hash> commit message
Thay vì pick
bạn cần viết reword
. Bạn có thể thực hiện việc này trong VIM bằng cách nhập i
, điều này khiến bạn chuyển sang chế độ INSERT. (Bạn thấy rằng bạn ở chế độ chèn bởi Word INSERT ở phía dưới) Đối với các cam kết bạn muốn thay đổi loại trong reword
thay vì pick
Sau đó, bạn cần lưu và thoát khỏi màn hình này, trước tiên bạn thực hiện điều đó bằng cách vào chế độ lệnh bằng cách nhấn nút esc. (bạn có thể kiểm tra xem bạn có ở chế độ lệnh hay không nếu Word INSERT ở dưới cùng biến mất) Sau đó, bạn có thể nhập lệnh bằng cách nhập :
, lệnh lưu và thoát là wq
. Vì vậy, nếu bạn nhập :wq
bạn không thể theo dõi đúng.
Sau đó, VIM sẽ đi qua mọi thông điệp cam kết bạn muốn đặt lại, ở đây bạn thực sự có thể thay đổi các thông điệp cam kết. Bạn sẽ làm điều này bằng cách vào chế độ INSERT, thay đổi thông báo cam kết, chuyển sang chế độ lệnh và lưu và thoát. Làm điều này 5 lần và bạn đã thoát khỏi VIM!
Sau đó, nếu bạn đã đẩy các cam kết sai của mình, bạn cần phải git Push --force
để ghi đè lên chúng. Hãy nhớ rằng git Push --force
là một điều khá nguy hiểm để làm, vì vậy hãy chắc chắn rằng không có ai rút khỏi máy chủ kể từ khi bạn đẩy các cam kết sai của mình!
Bây giờ bạn đã thay đổi tin nhắn cam kết của bạn!
(Như bạn thấy tôi không có kinh nghiệm trong VIM vì vậy nếu tôi sử dụng sai 'biệt ngữ' để giải thích những gì đang xảy ra, vui lòng sửa tôi!)
Bạn có thể sử dụng git-rebase-tuaord
Nó được thiết kế để chỉnh sửa bất kỳ cam kết nào (không chỉ cuối cùng) giống như commit --amend
$ git rebase-reword <commit-or-refname>
Nó được đặt tên theo hành động tương tác rebase để sửa đổi một cam kết: "tua lại". Xem bài đăng này và người đàn ông -section chế độ tương tác-
Ví dụ:
$ git rebase-reword b68f560
$ git rebase-reword HEAD^
Tôi đã thêm bí danh của reci
, recm
cho recommit (amend)
nó, bây giờ tôi có thể làm điều đó với git recm
hoặc git recm -m
.
$ vim ~/.gitconfig
[alias]
......
cm = commit
reci = commit --amend
recm = commit --amend
......
Tôi nhận ra rằng tôi đã đẩy một cam kết với một lỗi đánh máy trong đó. Để hoàn tác, tôi đã làm như sau:
git commit --amend -m "T-1000, advanced prototype"
git Push --force
Cảnh báo: lực đẩy các thay đổi của bạn sẽ ghi đè lên nhánh từ xa bằng nhánh cục bộ của bạn. Hãy chắc chắn rằng bạn sẽ không ghi đè lên bất cứ thứ gì bạn muốn giữ. Ngoài ra, hãy thận trọng về việc buộc một cam kết sửa đổi (viết lại) nếu có ai khác chia sẻ chi nhánh với bạn, bởi vì họ sẽ cần phải viết lại lịch sử của chính họ nếu họ có bản sao cũ của cam kết mà bạn vừa viết lại.
Tôi thích sử dụng như sau:
git status
git add --all
git commit -am "message goes here about the change"
git pull <Origin master>
git Push <Origin master>
Nếu bạn chưa đẩy mã đến nhánh từ xa ( GitHub / Bitbucket ), bạn có thể thay đổi thông báo cam kết trên dòng lệnh như dưới đây.
git commit --amend -m "Your new message"
Nếu bạn đang làm việc trên một chi nhánh cụ thể, hãy làm điều này:
git commit --amend -m "BRANCH-NAME: new message"
Nếu bạn đã đẩy mã với thông báo sai và bạn cần cẩn thận khi thay đổi tin nhắn. Đó là, sau khi bạn thay đổi thông điệp cam kết và thử đẩy nó một lần nữa, bạn sẽ gặp vấn đề. Để làm cho nó trơn tru, hãy làm theo các bước sau.
Vui lòng đọc toàn bộ câu trả lời của tôi trước khi thực hiện.
git commit --amend -m "BRANCH-NAME : your new message"
git Push -f Origin BRANCH-NAME # Not a best practice. Read below why?
Lưu ý quan trọng: Khi bạn sử dụng lực Đẩy trực tiếp, bạn có thể gặp phải các vấn đề về mã mà các nhà phát triển khác đang làm việc trên cùng một nhánh. Vì vậy, để tránh những xung đột đó, bạn cần kéo mã từ chi nhánh của mình trước khi thực hiện lực đẩy :
git commit --amend -m "BRANCH-NAME : your new message"
git pull Origin BRANCH-NAME
git Push -f Origin BRANCH-NAME
Đây là cách thực hành tốt nhất khi thay đổi thông điệp cam kết, nếu nó đã được đẩy.