Tôi muốn kiểm tra thư cam kết trước khi git commit. Tôi sử dụng móc trước cam kết để thực hiện điều đó, nhưng không thể tìm thấy cách để nhận thư cam kết trong tập lệnh .git/pre-commit. Tôi có thể lấy nó bằng cách nào?nhận thông báo cam kết trong git hook
Trả lời
Trong móc trước cam kết, thông báo cam kết chưa được tạo. Bạn có thể muốn sử dụng một trong các móc prepare-commit-msg
hoặc commit-msg
thay thế. Có một số nice section in Pro Git theo thứ tự các móc này được chạy và những gì bạn thường làm với chúng.
Bạn có thể thực hiện như sau trong móc pre-receive
(đối với phía máy chủ) và điều đó sẽ hiển thị thông tin sửa đổi.
old, new, branch = sys.stdin.read().split()
proc = subprocess.Popen(["git", "rev-list", "--oneline","--first-parent" , "%s..%s" %(old, new)], stdout=subprocess.PIPE)
commitMessage=str(proc.stdout.readlines()[0])
Có vẻ thú vị. Nhưng không có bất kỳ thông tin nào về ngôn ngữ đó hoặc bất kỳ thứ gì khác, điều này không phải là siêu hữu ích. – conradkdotcom
Đây là trong Python. – ArekBulski
Tôi đã thực hiện điều này trong móc commit-msg
. Xem documentation.
commit-msg
This hook is invoked by git commit, and can be bypassed with the --no-verify option.
It takes a single parameter, the name of the file that holds the proposed commit log message.
Exiting with a non-zero status causes the git commit to abort.
Dưới my_git_project/.git/hooks
, tôi đã thêm tập tin này commit.msg
(phải là tên này). Tôi đã thêm các nội dung bash bên trong tệp này đã thực hiện xác thực.
#!/usr/bin/env bash
INPUT_FILE=$1
START_LINE=`head -n1 $INPUT_FILE`
PATTERN="^(MYPROJ)-[[:digit:]]+: "
if ! [[ "$START_LINE" =~ $PATTERN ]]; then
echo "Bad commit message, see example: MYPROJ-123: commit message"
exit 1
fi
- 1. Chỉnh sửa thông báo cam kết git trong GitHub
- 2. Git hook, sửa đổi các tệp cam kết
- 3. Lấy danh sách các cam kết cùng với thông báo cam kết và băm trong Git
- 4. Git: Recover thất bại của cam kết thông báo
- 5. Git: hợp nhất xung đột và cam kết thông báo
- 6. Thay đổi thông báo cam kết cũ trên Git
- 7. git post-receive hook lấy thông điệp cam kết và bài viết quay lại URL
- 8. nhận thẻ cam kết trong git
- 9. Thông báo HWND Hook trong WinForms?
- 10. Viết GIT tiền cam kết trong java?
- 11. Làm cách nào để chỉnh sửa thông báo cam kết của bất kỳ cam kết nào trong git?
- 12. git: Hiển thị thông điệp cuối cùng cam kết trong cam kết mẫu
- 13. Chỉnh sửa thông báo cam kết không chính xác trong Git đã được đẩy
- 14. làm cách nào để sửa lỗi: thông báo pathspec khi cam kết trong git?
- 15. Làm thế nào để sử dụng git hook pre-cam kết để ngừng cam kết làm chủ
- 16. Git đẩy tất cả các cam kết dưới dạng cam kết đơn với thông báo tùy chỉnh
- 17. Không thể thêm "!" biểu tượng trong git tôi cam kết thông báo
- 18. git: Hiển thị chỉ số khác trong cam kết thông báo như bình luận
- 19. Chi nhánh bộ lọc Git: có thể cập nhật thông báo cam kết tham chiếu ID cam kết cũ không?
- 20. git look cam kết đăng nhập cho cam kết id
- 21. Xấu cam kết Git
- 22. Github cam kết các liên kết thông báo
- 23. git subtree đẩy và chia nhỏ thêm "-n <newline>" để cam kết thông báo
- 24. Sử dụng địa chỉ e-mail từ Git cam kết gửi thông báo Jenkins
- 25. Pre Commit Hook cho JSLint trong Mercurial và Git
- 26. Powershell Git Mã Hook Thoát
- 27. Git có cam kết nguyên tử không?
- 28. git không thể chỉnh sửa cam kết
- 29. git add/rm (cam kết)
- 30. git post-push hook?
Xin lưu ý rằng đây là các tập lệnh phía máy khách, cho tập lệnh phía máy chủ, người dùng có thể cần phải sử dụng 'tiền nhận trước'. –