Câu trả lời nhanh: Cách đặt Git Username
Đây là hai lệnh bạn cần:
# Set Git username globally (all repos)
git config --global user.name "Your Name"
# Set Git username for the current repo only
git config user.name "Your Name"
Cấu hình toàn cục áp dụng cho mọi kho trên máy của bạn trừ khi một kho cụ thể ghi đè nó.
Lệnh git config thuần (không có --global) chỉ ảnh hưởng đến kho mà bạn đang ở.
Chạy lệnh này để kiểm tra Git sẽ dùng gì cho commit tiếp theo của bạn:
git config user.name
Lệnh này hiển thị username đang hoạt động tại vị trí hiện tại của bạn - hoặc thiết lập cục bộ của repo, hoặc rơi về toàn cục nếu không có cục bộ.
git config user.name
Lệnh này hiển thị username đang hoạt động tại vị trí hiện tại của bạn - hoặc thiết lập cục bộ của repo, hoặc rơi về toàn cục nếu không có cục bộ.

Về Git Username và danh tính
Git đưa hai thông tin vào mỗi commit bạn tạo: một tên tác giả và một email tác giả.
Chúng đến trực tiếp từ user.name và user.email trong cấu hình Git của bạn. Khi bạn chạy git commit, Git lấy các giá trị đang đặt và đóng dấu vĩnh viễn vào siêu dữ liệu của commit đó. Đồng đội của bạn sẽ thấy thông tin này trong git log, chế độ blame và pull request.
Git không xác thực bất kỳ điều gì trong số này.
Bạn có thể đặt tên thành “Batman”, “Linus Torvalds”, hoặc chỉ tên kèm chữ cái đầu của họ. Những nhà phát triển chú trọng quyền riêng tư thường dùng bút danh hoặc nickname thay vì tên pháp lý đầy đủ, nhất là khi làm việc mã nguồn mở công khai. Git đơn giản là không bận tâm. Nó chỉ ghi lại những gì bạn cung cấp.
Điều duy nhất cần nhớ là Git username của bạn không giống với GitHub username.
Git username của bạn (user.name) là bất cứ thứ gì bạn cấu hình cục bộ. GitHub username là tay cầm tài khoản của bạn, hay thứ xuất hiện trong URL như github.com/your-handle. Chúng là hai hệ thống hoàn toàn tách biệt và không cần khớp nhau.
Các nền tảng lưu trữ như GitHub và GitLab dùng địa chỉ email của bạn để liên kết commit với tài khoản. Tên chỉ để hiển thị. Nếu email trong commit trùng với một email trên tài khoản GitHub của bạn, GitHub sẽ hiển thị ảnh hồ sơ và liên kết tới tài khoản của bạn. Tên bạn đặt trong user.name xuất hiện dưới dạng văn bản, còn email mới là thứ thực sự gắn commit với bạn.
Thay đổi user.name chỉ ảnh hưởng đến các commit bạn tạo về sau. Những commit cũ bạn đã đẩy vẫn giữ nguyên tên tác giả ban đầu.
Cách git config hoạt động với user.name
Git lưu các thiết lập cấu hình ở ba nơi khác nhau. Giờ tôi sẽ chỉ cho bạn đó là gì, để bạn không gặp phải các tên ngoài ý muốn.
-
Cấu hình cấp hệ thống (
--system) áp dụng cho mọi người dùng trên máy. Trên thực tế hiếm dùng và hầu hết lập trình viên không đụng tới. -
Cấu hình toàn cục (
--global) áp dụng cho tài khoản người dùng hệ điều hành của bạn và bao phủ mọi kho. -
Cấu hình cục bộ (
--local) nằm trong tệp.git/configcủa một kho và chỉ ảnh hưởng đến kho đó.
Git dùng quy tắc ưu tiên để quyết định giá trị nào được dùng.
Thiết lập cục bộ ghi đè thiết lập toàn cục, và toàn cục ghi đè hệ thống. Nếu bạn đặt user.name ở cả ba cấp, Git sẽ dùng giá trị cục bộ khi bạn ở trong kho đó và bỏ qua các giá trị khác.
Giả sử bạn có:
-
Hệ thống:
user.name = "System User" -
Toàn cục:
user.name = "Global User" -
Cục bộ (trong một repo cụ thể):
user.name = "Local User"
Khi bạn commit trong repo đó, Git dùng “Local User” vì cục bộ là cụ thể nhất. Ngoài repo đó, Git sẽ rơi về “Global User” từ cấu hình toàn cục của bạn.
Bạn có thể xem tất cả các giá trị cấu hình và nguồn của chúng:
git config --list
git config --list --show-origin

Cờ --show-origin in đường dẫn tệp cạnh mỗi thiết lập. Đây là cách bạn gỡ lỗi “tại sao Git dùng tên này?” - bạn sẽ thấy chính xác tệp cấu hình nào đang đặt giá trị.
Các tệp cấu hình này ở những vị trí có thể đoán được: ~/.gitconfig cho thiết lập toàn cục và .git/config bên trong mỗi repo cho thiết lập cục bộ. Cấu hình hệ thống thường ở /etc/gitconfig trên Linux và macOS.
Khi bạn chạy git config --global user.name "Your Name", Git ghi vào ~/.gitconfig và giá trị đó trở thành mặc định cho mọi repo trừ khi bạn ghi đè cục bộ.
Cách kiểm tra Git username hiện tại của bạn
Bạn cần biết Git sẽ đóng dấu tên nào lên commit tiếp theo. Tôi sẽ chỉ cho bạn vài lệnh để chạy.
Các lệnh nhanh để xem user.name
Đây là các lệnh hiển thị Git username của bạn:
# Show the active user.name for the current repo (or global if outside a repo)
git config user.name
# Show specifically the global username
git config --global user.name
# Show everything and scan for user.name and user.email
git config --list

Lệnh đầu tiên - git config user.name - là thứ bạn cần hầu hết thời gian. Nó hiển thị giá trị Git sẽ thực sự dùng trong repo đó. Nếu bạn đang ở trong repo có ghi đè cục bộ, bạn sẽ thấy giá trị cục bộ. Nếu không, bạn sẽ thấy giá trị toàn cục.
Nếu bạn muốn lọc danh sách cấu hình đầy đủ, chỉ cần pipe qua grep:
git config --list | grep user.name
git config --list | grep user.name

Cách này hoạt động trên Linux và macOS. Trên Windows, dùng findstr thay cho grep.
Hiểu những gì bạn đang thấy
Nếu git config user.name in ra một giá trị trong repo, đó là thứ Git sẽ dùng khi bạn commit ở đó.
Nhưng git config --global user.name có thể hiển thị giá trị khác. Git bỏ qua giá trị toàn cục nếu tồn tại thiết lập cục bộ. Đây là chỗ mọi người hay nhầm. Họ đổi cấu hình toàn cục và thắc mắc vì sao commit vẫn hiển thị tên cũ.
Dùng git config --list --show-origin để gỡ lỗi điều này:
git config --list --show-origin
git config --list --show-origin

Lệnh này in đường dẫn tệp nơi mỗi thiết lập đến từ - gitconfig cho cục bộ, ~/.gitconfig cho toàn cục, hoặc /etc/gitconfig cho hệ thống. Quét tìm user.name và bạn sẽ thấy chính xác tệp cấu hình nào đang “thắng”.
Từng bước: Đặt Git username của bạn
Hầu hết lập trình viên đặt Git username một lần rồi quên. Tuy nhiên, bạn cũng có thể tùy chỉnh theo dự án khi cần.
Đặt Git username toàn cục
Đây là thiết lập một lần khi bạn dùng máy mới.
- Mở Terminal (macOS/Linux) hoặc Git Bash (Windows)
- Chạy lệnh cấu hình với tên của bạn:
git config --global user.name "Your Name"
3. Xác nhận đã hoạt động:
git config --global user.name
Từ giờ Git sẽ dùng tên này cho mọi commit trong mọi repo trên máy bạn, trừ khi bạn ghi đè cục bộ.
Bạn cũng nên đặt email khi đang ở đây:
git config --global user.email "[email protected]"
Cả hai giá trị cần được đặt để commit hoạt động đúng và liên kết với tài khoản GitHub hoặc GitLab của bạn.
git config --global user.email "[email protected]"
Nếu bạn cần các tên khác nhau cho các dự án khác nhau, ví dụ như tên thật cho repo công việc và bút danh cho mã nguồn mở.
Đây là cách ghi đè thiết lập toàn cục cho một repo:
1. Điều hướng vào kho:
cd /path/to/your/repo
2. Đặt username cục bộ:
git config user.name "Project-Specific Name"
3. Xác nhận Git sẽ dùng nó:
git config user.name
Giá trị này nằm trong .git/config bên trong repo đó và ghi đè user.name toàn cục của bạn chỉ cho repo đó. Các repo khác trên máy vẫn không bị ảnh hưởng.
Mẹo nâng cao: Các username khác nhau cho các thư mục khác nhau với includeIf
Nếu bạn làm nhiều dự án với các danh tính khác nhau, ví dụ mọi repo dưới ~/work/ dùng tên công việc và mọi thứ dưới ~/personal/ dùng bút danh, bạn có thể tự động hóa bằng includeIf.
Thêm vào ~/.gitconfig của bạn:
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
Sau đó tạo các tệp cấu hình riêng như ~/.gitconfig-work:
[user]
name = "Work Name"
email = "[email protected]"
Và ~/.gitconfig-personal:
[user]
name = "Personal Handle"
email = "[email protected]"
Git sẽ tự động chọn đúng danh tính dựa trên nơi repo nằm. Không cần chuyển đổi thủ công.
Các kịch bản thường gặp và thông lệ tốt
Dưới đây là cách xử lý các tình huống Git username thường gặp mà không gây rối.
Giữ tách biệt danh tính công việc và cá nhân
Đặt tên cá nhân ở mức toàn cục, rồi ghi đè cho các dự án công việc. Cách này giúp repo cá nhân mặc định dùng danh tính bạn ưa thích, còn repo công việc dùng tên chuyên nghiệp của bạn.
Cách gọn gàng nhất là dùng includeIf để tự động chuyển danh tính theo thư mục:
# In ~/.gitconfig
[user]
name = "Personal Name"
email = "[email protected]"
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
Sau đó tạo ~/.gitconfig-work với danh tính công việc của bạn. Mọi repo dưới ~/work/ sẽ tự động nhận tên công việc. Tôi đã giải thích ở phần trước.
Bạn cũng có thể đặt cấu hình cục bộ theo repo nếu bạn chỉ có vài dự án công việc, nhưng includeIf mở rộng tốt hơn khi bạn phải xoay sở nhiều danh tính trên nhiều repo.
Dùng bút danh hoặc nickname
Git không bận tâm việc bạn có dùng tên pháp lý hay không.
Bạn có thể đặt user.name thành một nickname, tên kèm chữ cái đầu của họ, hoặc bất cứ thứ gì phù hợp với mức độ riêng tư của bạn. Điều này thường gặp trong công việc mã nguồn mở khi cộng tác viên muốn ẩn danh phần nào. Chỉ cần chọn thứ giúp nhóm của bạn nhận diện commit của bạn.
Danh tính nhóm hoặc bot
Các commit tự động nên dùng tên mô tả như “CI Bot” hoặc “Deploy Script” để nổi bật trong lịch sử.
git config user.name "CI Bot"
git config user.email "[email protected]"
Với cách này, thật rõ ràng commit nào đến từ tự động hóa và commit nào đến từ lập trình viên khi bạn quét git log hoặc xem blame.
Nhớ đồng bộ tên và email trên nền tảng lưu trữ
GitHub và GitLab khớp commit với tài khoản của bạn bằng địa chỉ email, không phải tên. Nếu email trong commit trùng với email trên tài khoản GitHub, GitHub sẽ liên kết commit với hồ sơ của bạn và hiển thị avatar.
Giá trị user.name xuất hiện dưới dạng văn bản trong giao diện - ở pull request, blame và lịch sử commit. Hãy đặt một tên rõ ràng để đồng đội biết ai đã thay đổi.
Khắc phục sự cố git config username
Nếu có bất cứ điều gì liên quan đến git username không hoạt động, rất có thể bạn sẽ tìm thấy nguyên nhân và cách giải quyết tại đây.
Git báo “please tell me who you are” hoặc không thể tự phát hiện danh tính của bạn
Bạn sẽ thấy lỗi như sau khi cố gắng commit:
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
Điều này nghĩa là Git chưa có user.email của bạn, và đôi khi cả user.name cũng thiếu. Sửa bằng cách đặt cả hai ở mức toàn cục:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
Sau đó, commit sẽ hoạt động.
Commit của tôi hiển thị sai tên trên GitHub hoặc GitLab
Kiểm tra Git thực sự đang dùng tên gì trong repo đó:
git config user.name
Nếu hiển thị sai tên, có thể đang có ghi đè cục bộ. Sửa bằng lệnh này:
git config user.name "Correct Name"
Các commit mới sẽ dùng tên đúng, nhưng commit cũ bạn đã đẩy vẫn giữ tên tác giả ban đầu.
Tôi đã cập nhật Git username, nhưng commit cũ vẫn hiển thị tên cũ
Siêu dữ liệu commit được đóng dấu vào lịch sử Git khi bạn tạo commit.
Thay đổi user.name chỉ ảnh hưởng đến các commit tương lai. Nếu cần đổi tên tác giả trên commit cũ, bạn sẽ phải viết lại lịch sử bằng git rebase --interactive hoặc git filter-repo. Đây là thao tác nâng cao, rủi ro trên nhánh chia sẻ và thường không đáng công.
Tôi cứ nhầm danh tính khi chuyển giữa các dự án
Hãy dùng includeIf để tự động chuyển danh tính dựa trên nơi repo nằm.
Thêm vào ~/.gitconfig:
[includeIf "gitdir:~/company/"]
path = ~/.gitconfig-company
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
Sau đó tạo ~/.gitconfig-company với danh tính công việc và ~/.gitconfig-personal với danh tính cá nhân. Git tự động chọn đúng dựa trên vị trí repo — không còn lỡ commit bằng sai tên.
Kết luận
Tóm lại, đặt đúng Git username giúp lịch sử commit sạch sẽ và việc cộng tác dễ dàng hơn.
Khi mỗi commit hiển thị đúng tên tác giả, nhóm của bạn có thể theo dõi ai đã thay đổi gì. Review mã diễn ra nhanh hơn, chú thích blame dễ hiểu hơn và lịch sử dự án dễ đọc hơn. Điều này càng quan trọng khi dự án lớn dần và nhiều người đóng góp.
Nếu bạn chuyển qua lại giữa dự án công việc và cá nhân, hoặc dùng các tên khác nhau cho các khách hàng khác nhau, bạn không cần đổi cấu hình thủ công mỗi lần. Thiết lập một lần với ghi đè cục bộ hoặc includeIf, và Git sẽ luôn chọn đúng.
Nếu bạn sẵn sàng vượt qua mức cơ bản và loại bỏ mọi điểm gây nhầm lẫn về Git và GitHub, các tài nguyên DataCamp sau là điểm dừng chân tiếp theo tốt nhất:

FAQs
Sự khác nhau giữa Git username và GitHub username là gì?
Git username (user.name) là thứ bạn đặt cục bộ trong cấu hình. Nó chỉ là siêu dữ liệu mà Git đóng dấu lên các commit. GitHub username là tay cầm tài khoản của bạn hiển thị trong URL như github.com/your-handle. Chúng hoàn toàn tách biệt và không cần khớp nhau. GitHub dùng địa chỉ email để liên kết commit với tài khoản của bạn, không phải username.
Làm sao kiểm tra Git username tôi đang dùng?
Chạy git config user.name bên trong một repo để xem username đang hoạt động mà Git sẽ dùng cho commit tiếp theo. Nếu bạn đã đặt ghi đè cục bộ, bạn sẽ thấy giá trị đó thay vì mặc định toàn cục. Dùng git config --list --show-origin để xem chính xác tệp cấu hình nào đang đặt giá trị.
Tôi có thể dùng các Git username khác nhau cho các dự án khác nhau không?
Có, và bạn nên làm nếu bạn làm cả dự án cá nhân lẫn công việc. Đặt tên cá nhân ở mức toàn cục với git config --global user.name "Your Name", rồi ghi đè trong các repo cụ thể với git config user.name "Work Name". Để tự động hóa tốt hơn, dùng includeIf trong ~/.gitconfig để tự động chuyển danh tính theo vị trí thư mục.
Vì sao commit cũ vẫn hiển thị sai tên sau khi tôi cập nhật Git username?
Siêu dữ liệu commit được đóng dấu vào lịch sử Git khi bạn tạo commit. Thay đổi user.name chỉ ảnh hưởng đến các commit tương lai. Commit cũ sẽ giữ nguyên tên tác giả ban đầu. Bạn sẽ phải viết lại lịch sử với git rebase --interactive hoặc git filter-repo để đổi tên cũ, điều này rủi ro trên nhánh chia sẻ và thường không đáng thực hiện.
Làm sao tránh vô tình commit với sai danh tính khi chuyển giữa dự án công việc và cá nhân?
Thiết lập includeIf trong ~/.gitconfig để tự động dùng các danh tính khác nhau dựa trên nơi repo nằm. Tạo các tệp cấu hình riêng cho công việc và cá nhân, sau đó Git chọn đúng danh tính dựa trên đường dẫn thư mục của repo. Bằng cách này bạn không bao giờ phải chuyển cấu hình thủ công hay lo lắng về tên đang dùng khi commit.
Các commit của bạn có đang hiển thị sai tên trong lịch sử Git không?
Bạn tạo một commit, đẩy lên kho của nhóm, và đột nhiên đồng nghiệp hỏi “unknown” là ai. Tệ hơn nữa, email cá nhân của bạn lại xuất hiện trong dự án công việc. Đó là lỗi sơ suất mà ai rồi cũng gặp. Git lưu tên và email với mỗi commit để nhóm có thể theo dõi ai đã thay đổi gì, và nếu bạn không thiết lập đúng, các commit sẽ trông như đến từ người khác.
Cách sửa rất đơn giản: Git dùng
user.namevàuser.emailtừ cấu hình của bạn. Khi mọi người nói “git config username”, họ muốn nói đếnuser.name. Và không, nó không giống với username GitHub của bạn.Trong bài viết này, tôi sẽ hướng dẫn bạn đặt Git username ở mức toàn cục hoặc cục bộ, kiểm tra cấu hình hiện tại, dùng các tên khác nhau cho từng dự án và khắc phục các vấn đề thường gặp liên quan đến username.