Đế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, global và local, 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.