Tại sao Git không cho phép tôi cam kết ngay cả sau khi cấu hình?


84

Câu hỏi này có vẻ giống như một sự trùng lặp nhưng nó thực sự không phải. Chỉ là một sự khác biệt nhỏ mà tiếp tục lặp lại. git tiếp tục nói với tôi: "làm ơn cho tôi biết bạn là ai", ngay cả sau khi thiết lập nó. khi tôi chạy git commit, đây là những gì tôi nhận được ...

$ git commit

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'Obby@ObbyWorkstation.(none)')

Nhưng khi tôi chạy git config --global -l, nó cung cấp cho tôi tất cả các chi tiết của tôi ...

$ git config --global -l
user.name=myname
user.mail=me.myself@gmail.com
http.proxy=proxy.XX.XX.XX:XXXX

Tôi đã thay đổi tên, email và proxy của mình nhưng chúng vẫn xuất hiện tốt khi tôi chạy lệnh, ngay cả trong tệp .gitconfig, tôi có thể thấy các giá trị được đặt. những gì có thể là điều còn thiếu, bởi vì tôi không thể cam kết chút nào. Mỗi khi nó cứ hỏi tôi tôi là ai?

@sheu đã nói với tôi điều gì đó mà tôi đã thay đổi, nhưng vấn đề vẫn vậy. khi tôi đặt --local, vẫn git commithỏi tôi câu hỏi tương tự. đây là đầu ra

$ git config --local -l
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
user.name=myname
user.mail=me.myself@gmail.com

Có lẽ bài này có thể là câu trả lời cho câu hỏi của bạn stackoverflow.com/questions/2936652/...
Sumit Munot

@SumitMunot, tôi không thể tìm thấy thứ gì đó hữu ích ... tôi chỉ có chi nhánh chính và không có chi nhánh nào khác
Obby

3
@SumitMunot khi đề xuất chỉnh sửa, vui lòng không thêm nội dung như "Vui lòng trợ giúp" và "Cảm ơn trước". Những cụm từ như vậy không được khuyến khích vì chúng tạo thêm tiếng ồn không cần thiết cho câu hỏi. Ngoài ra, bạn đang tích cực đổi tiêu đề cho câu hỏi, nhưng lại thiếu động từ "Is" trong nhiều trường hợp. Hãy đảm bảo rằng bạn đang sử dụng đúng ngữ pháp khi đề xuất các chỉnh sửa.
psubsee2003

5
Nó không nên nằm user.emailtrong cấu hình chung (lưu ý chữ e trong email)?
Lumen

Câu trả lời:


166

Đó là một lỗi chính tả. Bạn đã vô tình đặt user.mailkhông có e . Khắc phục bằng cách cài đặt user.emailtrong cấu hình chung với

git config --global user.email "you@example.com"

cảm ơn ... tôi thậm chí không thể phát hiện ra điều đó. vấn đề nhấn vào mũi tên lên thay vì viết lại
Obby

Chết tiệt! Đã mắc lỗi tương tự.
azmodan

xin lỗi nhưng tôi không thể hiểu nơi tôi cần đặt hoặc chỉnh sửa khác?
cSharma

1
5 năm sau và tôi cũng mắc lỗi tương tự!
Jalal

Không thể tin được làm thế nào mà một lỗi chính tả có thể lãng phí nhiều thời gian như vậy! cảm ơn bạn đời!
jaycee

10

Bạn đang đặt các tùy chọn git toàn cục, nhưng quy trình thanh toán cục bộ có thể đã được đặt ghi đè. Hãy thử đặt lại chúng bằng git config --local <setting> <value>. Bạn có thể xem .git/configtệp trong thanh toán cục bộ của mình để xem cài đặt cục bộ mà thanh toán đã xác định.


Bạn có thể xóa dữ liệu git của mình trong bảng điều khiển: Control Panel → User Accounts → Credential Manager → Windows Credential Manager. Sau đó nhập lại với tên người dùng và mật khẩu chính xác. Đây là lựa chọn duy nhất phù hợp với tôi.
Sophie Cooperman

3

Bạn có địa phương user.namehay user.emailđang ghi đè lên toàn cầu?

git config --list --global | grep user
  user.name=YOUR NAME
  user.email=YOUR@EMAIL
git config --list --local | grep user
  user.name=YOUR NAME
  user.email=

Nếu vậy, hãy loại bỏ chúng

git config --unset --local user.name
git config --unset --local user.email

Các cài đặt cục bộ là từng bản sao, vì vậy bạn sẽ phải bỏ đặt cục bộ user.nameuser.emailcho từng kho lưu trữ trên máy của mình.


0

Tôi đã gặp sự cố này ngay cả sau khi đặt cấu hình đúng cách. git config

Kịch bản của tôi là phát hành lệnh git thông qua trình giám sát (trong Linux). Khi gỡ lỗi thêm, người giám sát đã không đọc cấu hình git từ thư mục chính. Do đó, tôi phải đặt biến môi trường HOME trong cấu hình trình giám sát để nó có thể định vị cấu hình git một cách chính xác. Thật lạ là người giám sát không thể định vị cấu hình git chỉ từ tên người dùng được định cấu hình trong cấu hình của người giám sát (/etc/supervisor/conf.d).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.