[Công nghệ Thông tin] -- [Web] -- [Công nghệ phần mềm] -- [PhoThong] -- [Đăng ký các khóa học] -- [Langbiang's Portfolio] -- [Học viên cũ] -- [10.000 giờ]
--------------- <> -----------------
---  KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM --->>>  CÁC KHÓA HỌC...
---  Nhận làm website, web app, chạy quảng cáo, digital marketing --->>>  LIÊN HỆ...

Tìm kiếm trong Blog

Git thực hành (3) - Cấu hình định danh người dùng

Bài trước: Git thực hành (2) - Tổng quan về Git
----- 
3. Cấu hình định danh người dùng
3.1 Định danh người dùng

Đến thời điểm này, bạn đã làm quen với khái niệm Hệ thống quản lý phiên bản phân tán, cài đặt thành công Git và khởi tạo kho lưu trữ (.git) cho dự án của mình. Trong quá trình phát triển phần mềm, đặc biệt là khi làm việc nhóm, việc theo dõi và quản lý các thay đổi là vô cùng quan trọng.

Để đảm bảo tính minh bạch và trách nhiệm, Git yêu cầu mỗi commit (bản ghi thay đổi) đều phải gắn liền với thông tin người thực hiện. Điều này cho phép chúng ta:

- Xác định tác giả: dễ dàng biết được ai là người viết hoặc chỉnh sửa một đoạn mã cụ thể.

- Theo dõi đóng góp: nắm bắt được lịch sử đóng góp của từng thành viên trong dự án. 

- Phân công trách nhiệm: quy trách nhiệm cho từng thành viên đối với những thay đổi mà họ thực hiện.

Để thực hiện điều này, chúng ta cần tiến hành cấu hình định danh người dùng cho Git. Quá trình này sẽ thiết lập thông tin cá nhân, bao gồm tên và địa chỉ email, được sử dụng để gắn vào các commit. Nhờ đó, mỗi thay đổi trong dự án sẽ được gắn với một cá nhân cụ thể, tạo nên một lịch sử làm việc rõ ràng và dễ theo dõi.

Bạn sẽ không thể thực hiện commit nếu chưa thiết lập thông tin cá nhân trong hệ thống Git.

Cấu hình thông tin cá nhân với lệnh git config

Lệnh git config được sử dụng để đọc, ghi hoặc cập nhật các thiết lập cấu hình của Git. Git cho phép bạn cấu hình ở ba phạm vi khác nhau: system, globallocal, mỗi phạm vi có mức độ ảnh hưởng và ưu tiên riêng.

- system (phạm vi hệ thống):

  + Phạm vi này áp dụng cho tất cả người dùng và tất cả kho lưu trữ trên hệ thống.

  + Tập tin cấu hình được lưu tại C:\Program Files\Git\etc (trên Windows).

  + Cần quyền quản trị hệ thống để thực hiện cấu hình ở mức này.

  + Để cấu hình, sử dụng tham số --system với lệnh git config

Ví dụ: git config --system user.name "Van Teo"

Chạy lệnh trên ở cửa sổ CMD bình thường, bạn sẽ nhận được thông báo lỗi:

C:\Users\Teo>git config --system user.name "Van Teo"

error: could not lock config file C:/Program Files/Git/etc/gitconfig: Permission denied

Bạn phải chạy với quyền administrator. Cách làm: mở menu Start của Windows > gõ vào ô tìm kiếm cmd > Bấm chuột phải vào tiện ích Command Prompt > Chọn Run as administrator. Nhập lại lệnh git config sẽ chạy thành công.

C:\Users\Teo>git config --system user.name "Van Teo"

Mở tập tin gitconfig trong C:\Program Files\Git\etc sẽ thấy thông tin Van Teo đã được ghi lại.

[gitconfig]

[user]

    name = Van Teo

- global (phạm vi người dùng)

  + Phạm vi này áp dụng cho tài khoản người dùng hiện tại và cho tất cả kho lưu trữ mà người dùng đó làm việc.

  + Tập tin cấu hình được lưu tại C:\Users\<tên_người_dùng>\.gitconfig (trên Windows).

  + Đây là phạm vi cấu hình được sử dụng nhiều nhất.

  + Để cấu hình, sử dụng tham số --global với lệnh git config. 

Ví dụ: git config --global user.name "Le Van Teo"

Mở tập tin .gitconfig trong C:\Users\<tên_người_dùng> sẽ thấy thông tin Le Van Teo đã được ghi lại.

[.gitconfig]

[user]

    name = Le Van Teo

- local (phạm vi kho lưu trữ, repo)

  + Phạm vi này áp dụng cho một kho lưu trữ cụ thể.

  + Tập tin cấu hình được lưu tại .git/config trong thư mục gốc của kho lưu trữ.

  + Để cấu hình, sử dụng lệnh git config mà không có tham số --system hoặc --global. Tất nhiên, bạn phải di chuyển dấu nhắc chuột vào thư mục gốc của kho lưu trữ, để gõ lệnh.

Ví dụ: E:\TeoShop>git config user.name "Tran Le Van Teo"

Mở tập tin config trong .git sẽ thấy thông tin Tran Le Van Teo đã được ghi lại.

[config]

[user]

    name = Tran Le Van Teo

Xem thông tin cấu hình

Để xem thông tin cấu hình, sử dụng lệnh:

git config --list

Tùy thuộc vào vị trí dấu nhắc chuột bạn sẽ xem được thông tin cấu hinh ở các phạm vi khác nhau (system, global hay local).

Khi xem thông tin cấu hình trong CMD, nếu thông tin cấu hình nhiều hơn một màn hình, bạn sẽ thấy dấu nhắc (:), bấm enter để xem thêm thông tin. Khi hết thông tin sẽ có chữ (END). Để thoát màn hình, bấm dấu hai chấm (:) kèm theo chữ q.

core.logallrefupdates=true

core.symlinks=false

core.ignorecase=true

user.name=Tran Le Van Teo

(END)

:q

Độ ưu tiên của cấu hình

Khi có cấu hình ở cả ba phạm vi, Git sẽ sử dụng cấu hình có độ ưu tiên cao nhất. Thứ tự ưu tiên là: local > global > system. Nghĩa là cấu hình ở local có độ ưu tiên cao nhất, sau đó đến global và cuối cùng là system. Điều này cho phép bạn ghi đè các cấu hình chung bằng các cấu hình cụ thể cho từng dự án.

Kinh nghiệm thực tế

- Trước khi thực hiện bất kỳ commit nào, bạn cần kiểm tra cấu hình tên và địa chỉ email của mình. Git sẽ sử dụng thông tin này để gắn với mỗi commit, giúp xác định tác giả của các thay đổi.

- Nên cấu hình danh tính ở phạm vi global để áp dụng cho tất cả dự án.

- Nếu cần sử dụng thông tin khác cho một dự án cụ thể, hãy cấu hình ở phạm vi local cho dự án đó.

Cấu hình địa chỉ email

Để cấu hình địa chỉ email, bạn thực hiện tương tự như cấu hình tên. Chỉ việc thay đổi tham số user.name thành user.email.

Ví dụ, cấu hình địa chỉ email ở phạm vi global sử dụng lệnh sau:

git config --global user.email "levanteo@gmail.com"

3.2 Xóa hoặc thay đổi định danh

Xóa định danh người dùng

Nếu bạn muốn xóa hoàn toàn định danh người dùng đã cấu hình (ở phạm vi global), bạn có thể sử dụng lệnh:

git config --global --unset user.name

git config --global --unset user.email

Tương tự, bạn có thể xóa cấu hình ở phạm vi local hoặc system bằng cách bỏ qua hoặc thay thế --global bằng --local hoặc --system.

Thay đổi định danh người dùng
Nếu bạn muốn thay đổi định danh người dùng đã cấu hình (ở phạm vi global), bạn có thể sử dụng lệnh:

git config --global user.name "Tên mới của bạn"

git config --global user.email "email_mới@example.com"

Lệnh này sẽ ghi đè lên cấu hình cũ.

Tương tự, bạn có thể thay đổi cấu hình ở mức local hoặc system bằng cách bỏ qua hoặc thay thế --global bằng --local hoặc --system.

3.4 Bài tập

Bài tập 3.1 Bài tập tình huống “Quản lý cấu hình Git cho nhiều dự án”

Giả sử bạn là Nguyễn Văn Tèo, một lập trình viên đang làm việc tại công ty TeoTech. Ngoài công việc chính, bạn còn tham gia phát triển một dự án mang tên VienVong (viển vông) cùng với một nhóm bạn vào thời gian rảnh.

Để quản lý mã nguồn hiệu quả, bạn sử dụng Git cho cả hai dự án. Tuy nhiên, bạn muốn đảm bảo rằng:

- Khi làm việc tại công ty TeoTech, các commit của bạn sẽ được gắn với thông tin định danh của công ty (tên và email công ty).

- Khi làm việc với dự án "viển vông", các commit của bạn sẽ được gắn với thông tin định danh cá nhân.

Yêu cầu:

- Tạo hai thư mục dự án riêng biệt: TeoTechProject (cho dự án công ty). VienVongProject (cho dự án cá nhân)

- Khởi tạo kho lưu trữ Git trong mỗi thư mục dự án.

- Cấu hình Git sao cho: 

  + Khi commit trong dự án TeoTechProject, Git sử dụng thông tin định danh: Tên: "Nguyen Van Teo"; Email: nvteo@teotech.com

  + Trong commit trong dự án VienVongProject, Git sử dụng thông tin định danh: Tên: "Nguyen Van Teo"; Email: nvteo@gmail.com

Mục tiêu:

Bài tập này giúp các bạn hiểu rõ hơn về cách cấu hình Git cho nhiều dự án với các thông tin định danh khác nhau, đồng thời rèn luyện kỹ năng làm việc với Git trong môi trường thực tế.

Câu 3.2 Phạm vi cấu hình định danh trong Git là gì? Phát biểu nào sau đây không đúng?

A. Phạm vi system áp dụng cho tất cả người dùng và kho lưu trữ trên hệ thống.

B. Phạm vi global áp dụng cho tài khoản người dùng hiện tại và tất cả kho lưu trữ mà người dùng đó làm việc.

C. Phạm vi local áp dụng cho một kho lưu trữ cụ thể và có độ ưu tiên thấp nhất.

D. Phạm vi local áp dụng cho một kho lưu trữ cụ thể và có độ ưu tiên cao nhất.

-----
Cập nhật: 13/3/2025
-----
Bài sau: Git thực hành (4) - Các khu vực làm việc của Git