2011-10-21 12 views
5

Tôi đã thiết lập tên và email của tôi như sauLàm thế nào để cấu hình git để bao gồm tên của tôi trong cam kết

git config --global user.name myname 

Tuy nhiên, khi tôi chạy git log sau khi cam kết, nó cho thấy rõ thay vì myname:

Author: unknown <[email protected]> 

Tôi nên làm gì để có tên của mình được liệt kê bằng lệnh nhật ký?

Edit: đầu ra của cấu hình -l là như sau:

core.symlinks=false 
core.autocrlf=false 
color.diff=auto 
color.status=auto 
color.branch=auto 
color.interactive=true 
pack.packsizelimit=2g 
help.format=html 
http.sslcainfo=/bin/curl-ca-bundle.crt 
sendemail.smtpserver=/bin/msmtp.exe 
diff.astextplain.textconv=astextplain 
rebase.autosquash=true 
gui.recentrepo=C:/Git/MyProject 
core.editor='C:\Program Files (x86)\Notepad++\notepad++.exe' -multiInst -notabbar -nosession -noPlugin 
core.autocrlf=false 
user.name=myalias 
[email protected] 
core.repositoryformatversion=0 
core.filemode=false 
core.bare=false 
core.logallrefupdates=true 
core.symlinks=false 
core.ignorecase=true 
core.hidedotfiles=dotGitOnly 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
[email protected]:myproject.git 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 

Edit: bắt đầu một bounty.

Chỉnh sửa 2: Thực tế, lệnh git commit từ dòng lệnh đã bao gồm tên của tôi, nhưng TortoiseGit không thực hiện được. Đây là vấn đề với TortoiseGit.

+0

Bạn đang xem các cam kết mà bạn đã thực hiện trước khi chạy 'git config'? – jamessan

+0

@jamessan: không, tôi chỉ thực hiện một thử nghiệm khác, và git log vẫn chưa được biết cho lần cuối cùng –

+0

Vui lòng dán đầu ra của 'git config -l' Nếu bạn đã thiết lập cấu hình bằng cách chỉnh sửa các tệp cấu hình, bạn có thể có nhìn nhầm chỗ. Ngoài ra, có vẻ như email của bạn được định cấu hình nhưng tên không đúng, đúng không? Ngoài ra, bạn cam kết như thế nào? Không làm bất cứ điều gì như git commit -C HEAD Điều đó sẽ sử dụng thông tin cũ. –

Trả lời

5

Tạo một thư mục trống không có cha mẹ là kho lưu trữ git và cd ở đó. Thực hiện các lệnh sau.

git init . 
touch foo 
git add foo 
git commit -m "initial" 
git log 
git config -l 

Vui lòng cung cấp đầu ra git loggit config -l trong hai cuộc gọi này.

+0

Trong thực tế, git cam kết từ dòng lệnh đã được bao gồm tên của tôi, nhưng TortoiseGit không làm như vậy. Câu trả lời của bạn đã giúp tôi, cảm ơn! –

+2

Nếu bạn đang sử dụng Tortoise Git, bạn có thể thích Git Extensions. Có thể bạn sẽ có ít vấn đề hơn với nó. Chỉ cần nói điều này bởi vì bạn dường như thích một GUI và tôi đã không có bất kỳ vấn đề với việc thay đổi tên của tôi trên Git Extenstions (http://sourceforge.net/projects/gitextensions/) – Carl

+1

+1 cho @carleeto khuyến nghị của Git Extensions. Trang web của dự án (http://code.google.com/p/gitextensions/) có xu hướng cập nhật hơn. –

3

Bạn có đặt tên người dùng của mình (thành "không xác định") trong địa chỉ .git/config địa phương của bạn không? Điều đó sẽ ghi đè cài đặt chung.

+0

không, nếu tôi chạy git config user.name mà không có --global flag, nó vẫn trả về myname –

3

Xác minh rằng rằng tên người dùng không overriden (để biết) trong các biến môi trường GIT_AUTHOR_NAME và GIT_COMMITTER_NAME và cũng là địa phương .git/config

Nếu đó không phải là trường hợp, chắc chắn rằng bạn đang cam kết và không chỉ nhìn thấy bản ghi cũ của cam kết đã được thực hiện trước khi bạn đặt tên người dùng. (một sai lầm mà mọi người làm là cố gắng cam kết mà không cần dàn dựng tệp, v.v.)

+0

my .git/tệp cấu hình không có các mục bạn đã đề cập. Tôi đã thực hiện một cam kết mới sau khi đặt tên người dùng của mình. –

+0

@ArneLund - Và cam kết không có tên của bạn một lần nữa khi bạn nhìn thấy nó trong git log? – manojlds

+0

chính xác. Tôi chỉ cam kết một lần nữa, cùng một điều. –

4

git config --global user.name myname sẽ chỉ có hiệu lực với các cam kết được thực hiện sau thay đổi này.

cam kết đẩy trước khi bạn đã thay đổi .gitconfig sẽ giữ giá trị cũ của user.name

Bạn đã kiểm tra với các cam kết thời gian gần đây làm gì?