2016-01-26 14 views
5

Sau khi thực hiện rebase tương tác trong git, tôi muốn có thông báo cam kết bắt đầu bằng ký tự # (băm hoặc bảng Anh), nhưng các dòng bắt đầu bằng # được coi là nhận xét và bị bỏ qua.Thoát khỏi ký tự khôi phục tương tác

Có cách nào để thoát khỏi ký tự # để thực hiện thông báo cam kết của tôi thực sự bắt đầu bằng # không?

Xem chi tiết

Tôi đang thực hiện một rebase tương tác sử dụng:

git rebase -i HEAD~4 

Sau đó, trong trình soạn thảo Tôi đang làm bất cứ điều gì là cần thiết, ví dụ:

pick b010299 #91691 Add test for logging in with valid credentials 
reword 5e9159d 91691 Implement log-in feature 
pick 2735aa3 #91691 Re-factor logic 
pick 14bd500 #91691 Tidy up 'using' declarations 

# Rebase 60d6e3f..14bd500 onto 60d6e3f 
# 
# 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's log message 
# x, exec = run command (the rest of the line) using shell 
# 
# These lines can be re-ordered; they are executed from top to bottom. 
# 
# If you remove a line here THAT COMMIT WILL BE LOST. 
# 
# However, if you remove everything, the rebase will be aborted. 
# 
# Note that empty commits are commented out 

Sau đó git tải thông báo cam kết trong trình soạn thảo văn bản của tôi cho cam kết tôi muốn viết lại, nhưng tôi muốn lưu thông báo cam kết của mình với một # ở đầu:

#91691 Implement log-in feature 

# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit. 
# rebase in progress; onto 60d6e3f 
# You are currently editing a commit while rebasing branch 'master' on '60d6e3f'. 
# 
# Changes to be committed: 
# modified: My.Website.LogInController.cs 

Nhưng điều đó có nghĩa là thư cam kết của tôi sẽ bị bỏ qua. Tôi làm cách nào để thực hiện thông báo cam kết #91691 Implement log-in feature?

Trả lời

9

Nếu bạn tiết kiệm bạn đang cam kết thông báo với # nên có hiệu lực cam kết thông báo của bạn là trống (bạn cũng có thể xóa mọi thứ trong thông báo), git sẽ cho bạn thấy những việc cần làm:

Aborting commit due to empty commit message. 
Could not amend commit after successfully picking 5e9159d9ce3a5c3c87a4fb7932fda4e53c7891db... 91691 Implement log-in feature 
This is most likely due to an empty commit message, or the pre-commit hook 
failed. If the pre-commit hook failed, you may need to resolve the issue before 
you are able to reword the commit. 
You can amend the commit now, with 

     git commit --amend 

Once you are satisfied with your changes, run 

     git rebase --continue 

Vì vậy, , chỉ cần sửa đổi các thông điệp:

git commit --amend -m "#91691 Implement log-in feature" 

và tiếp tục rebase:

git rebase --continue 
+0

gì nếu cam kết i s rất lớn và đa dòng, làm thế nào băm có thể được thêm vào đầu dòng? – Mohammed

+0

Chỉ cần ngắt dòng của bạn trước khi đóng dấu ngoặc kép. Git hài lòng với nhiều thông điệp cam kết dài dòng. –

Các vấn đề liên quan