Bạn đổi email Git nhưng một dự án vẫn dùng giá trị khác. Hoặc lệnh hoạt động trong terminal nhưng khác khi chạy qua IDE. Trước khi sửa cấu hình global, hãy tìm giá trị đến từ đâu và đang được đọc trong ngữ cảnh nào.
1. Kiểm tra tại đúng repository
Mở terminal trong dự án gặp vấn đề. Truy vấn riêng khóa cần xem thay vì xuất toàn bộ cấu hình:
git --version
git config --show-origin --show-scope --get-all user.email
Tài liệu git-config giải thích --show-origin hiển thị nguồn cấu hình, --show-scope hiển thị phạm vi và --get-all trả các giá trị tìm thấy cho khóa. Cú pháp tùy chọn truyền thống này còn được hỗ trợ trên nhiều bản Git; bản mới cũng có nhóm lệnh con get, set và list.
Email có thể là thông tin cá nhân. Chỉ chia sẻ kết quả sau khi che giá trị và đường dẫn nhạy cảm. Không gửi nguyên bản cấu hình vào ticket công khai vì các khóa khác có thể chứa thông tin xác thực hoặc địa chỉ nội bộ.
2. Hiểu phạm vi trước khi chọn nơi sửa
Những phạm vi thường gặp gồm system, global, local, worktree và command. Giá trị cho cùng một khóa có thể xuất hiện ở nhiều nguồn; cấu hình được include cũng có thể góp phần vào kết quả. Đừng chỉ mở một file cấu hình quen thuộc rồi kết luận đó là toàn bộ thông tin Git sử dụng.
Với user.email, xem thêm giá trị được truy vấn thông thường:
git config --get user.email
Không áp dụng máy móc cách chọn một giá trị cho mọi khóa: một số thiết lập có ý nghĩa đa giá trị. Khi chẩn đoán khóa khác, đọc mô tả riêng của nó trước khi xóa dòng mà bạn cho là “trùng”.
3. Tách danh tính commit khỏi đăng nhập dịch vụ
user.name và user.email phục vụ metadata danh tính Git; thay đổi chúng không tự đăng nhập một tài khoản Git hosting khác. Nếu lỗi xảy ra khi push vì không có quyền, cần điều tra cơ chế xác thực tương ứng, không chỉ sửa email tác giả.
Ngược lại, push thành công cũng không chứng minh email ghi vào commit là email mong muốn. Trong quy trình bàn giao, hãy kiểm tra riêng hai câu hỏi: ai được phép gửi thay đổi và danh tính nào được ghi trong commit.
4. Lập phương án thay đổi có phạm vi nhỏ
Ví dụ một dự án công việc cần email riêng còn các dự án cá nhân đang đúng. Thay global ngay có thể làm các dự án khác nhận giá trị mới ngoài ý muốn. Trước khi sửa, ghi lại khóa, nguồn, giá trị cũ đã được bảo vệ và phạm vi dự kiến.
- Xác nhận yêu cầu của đúng dự án.
- Xác định nguồn đang tạo ra khác biệt.
- Chọn thay đổi nhỏ nhất phù hợp với quy trình nhóm.
- Đọc lại cấu hình trong cùng repository và cùng công cụ.
- Kiểm tra một dự án khác nếu thay đổi có phạm vi dùng chung.
Bài này tập trung chẩn đoán nên không yêu cầu chạy lệnh ghi cấu hình hay sửa lịch sử commit. Thay cấu hình hiện tại cũng không tự sửa metadata trong các commit đã tồn tại; đó là một công việc khác cần phối hợp nếu thực sự cần thiết.
5. Khi terminal và IDE cho kết quả khác
Ghi nhận bản Git, thư mục dự án, tài khoản hệ điều hành và cách công cụ gọi Git. IDE có thể dùng bản Git khác, hoặc tiến trình được khởi chạy với môi trường khác. Thực hiện phép kiểm tra ở đúng nơi có triệu chứng thay vì dùng kết quả terminal độc lập để suy ra hành vi của mọi công cụ.
Nếu quy trình tự động truyền cấu hình ở cấp lệnh hoặc thiết lập biến môi trường riêng, cần kiểm tra cấu hình của quy trình đó. Không in hàng loạt biến môi trường để tìm nguyên nhân vì có thể làm lộ bí mật.
6. Checklist hoàn tất chẩn đoán
- Đã xác định đúng khóa và repository.
- Đã biết nguồn và phạm vi của các giá trị liên quan.
- Đã phân biệt lỗi danh tính với lỗi xác thực.
- Đã xác định công cụ hoặc môi trường nào có hành vi khác.
- Đã có phương án sửa và kiểm tra lại mà không ảnh hưởng dữ liệu không liên quan.
Chẩn đoán tốt không bắt đầu bằng việc xóa cấu hình cũ. Nó bắt đầu bằng bằng chứng về giá trị đang được đọc. Khi biết nguồn và phạm vi, bạn có thể sửa đúng chỗ thay vì thử nhiều thay đổi global rồi khó nhớ cách quay lại.




Chưa có bình luận. Hãy là người đầu tiên chia sẻ ý kiến.