15/05/2024

Git là gì và bắt đầu sử dụng Git như thế nào?

Git là công cụ giúp quản lý phiên bản phần mềm. Chuyên DEV đã giới thiệu quy trình Git Workflow dành cho các bạn tham khảo để giúp xây dựng quy trình quản lý dự án code. Tuy nhiên, nếu bạn chỉ mới biết đến Git và băn khoăn cách làm thế nào để sử dụng nó, đây là bài viết hướng dẫn cơ bản nhất theo từng bước dành cho level cơ bản làm quen với Git.

Cài đặt phần mềm Git trên máy tính

Bạn vào git-scm.com để tải về phần mềm theo hệ điều hành của mình (Mac, Win hay Linux).

Git có cung cấp cả giao diện Terminal (dạng dòng lệnh) và Visual (dạng trực quan hơn), nhưng các anh em DEV kinh nghiệm thì hầu như sử dụng chính là Terminal. Trường hợp bạn muốn quan sát cấu trúc Git tốt hơn, hãy sử dụng SourceTree – một phần mềm quản lý Git trực quan và miễn phí nhé (chính mình cũng dùng nó hàng ngày để dễ theo dõi hơn).

Một video mình tìm thấy về cài Git trên Windows 10

Cấu hình Git trên máy tính

Với việc quản lý phiên bản và làm việc teamwork nhiều, Git sẽ cần đồng bộ lên đâu đó online. Bạn có thể sử dụng GitHub hoặc GitLab hoặc BitBucket, tất cả đều miễn phí. Mình thì sử dụng GitHub, vì có thể tận dụng được cho việc kết hợp DevOps trên GitHub Actions CI/CD.

Để sử dụng Terminal với Git, khi cài đặt trên Windows, bạn sẽ có ứng dụng tên là “Git Bash”.

Cấu hình chung Commit Author

Các dòng lệnh sau khi mở lên bằng Terminal sẽ cấu hình:

git config --global user.name "Khôi Nguyễn (Chuyên DEV)"
git config --global user.email "[email protected]"

Tạo SSH key trên máy

Chìa khoá để khi bạn đồng bộ code từ máy lên GitHub hay ngược lại chính là SSH Key.

GitHub đã sử dụng mã ed25519 thay mã RSA 4096 ngày trước, nên bạn chạy dòng lệnh sau để tạo ra key (private + public) trên máy. Lưu ý phần passphrase bạn bỏ qua không nhập nhé.

ssh-keygen -t ed25519 -b 4096 -C "[email protected]"

Chạy lệnh sau để kiểm tra ssh-agent có chạy trên máy không

eval "$(ssh-agent -s)"

Đăng ký key vào agent

ssh-add ~/.ssh/id_ed25519

Đăng ký key SSH vào tài khoản GitHub

Thêm key SSH vào tài khoản GitHub

Đăng nhập vào tài khoản GitHub và truy cập mục Settings > SSH and GPG Keys.

Sau đó, bạn thêm SSH Key mới. Khi thêm key sẽ cần nhập mật khẩu GitHub xác nhận một lần (hoặc nhập mã Authentication từ app).

Key trên máy tính của bạn sẽ có đuôi .pub, bạn mở lên đọc để copy nội dung key.

~/.ssh/id_ed25519.pub

Lưu ý một xíu là với máy tính sử dụng Windows, thường sẽ nhìn thấy ở thư mục:

C:/Users/<User của bạn>/.ssh/

Kiểm tra kết nối tới GitHub

Sau khi bạn đã thêm SSH Key thành công, hãy thử kết nối với GitHub bằng cách chạy dòng lệnh:

ssh -T github.com

Tạo dự án từ GitHub trên máy

Mình có tạo một repository public để các bạn thử nhé:

https://github.com/khoipro/wp-ebook-theme

Chọn thư mục sẽ lưu dự án. Trên máy tính Windows, nên chọn ổ D, ổ E, tạo 1 folder Projects. Trên máy tính Mac, mình hay tạo ở root ~/Projects/.

Tạo dự án bằng câu lệnh Git clone để lấy dự án về:

git clone [email protected]:khoipro/wp-ebook-theme.git

Sau đó truy cập vào thư mục wp-ebook-theme mới được tạo để quan sát code.

Kiểm tra trạng thái Git của dự án

Mỗi dự án, trong quá trình làm việc, thường xuyên cần kiểm tra với câu lệnh sau.

git status

Nó sẽ có nhiều trạng thái để quan sát và đưa ra hướng xử lý

  • Có file thay đổi (màu đỏ)
  • Có file cho vào commit, nhưng
  • Có commit trên máy, nhưng chưa cho lên GitHub
  • Bị xung đột khi merge (conflict)
  • Bị xung đột khi rebase (conflict)

Ví dụ trạng thái sạch (không có chỉnh sửa gì cả, đồng bộ với GitHub ok):

On branch develop
Your branch is up to date with 'origin/develop'.

nothing to commit, working tree clean

Khi có file mới sửa, nhưng chưa commit

On branch develop
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
      modified:   src/postcss/blocks/mega-menu.css
Untracked files:
  assets/css/frontend.css
  assets/js/frontend.js
no changes added to commit (use "git add" and/or "git commit -a")

Những phần kế tiếp khi sử dụng Git

  • Lấy code mới nhất về hàng ngày hoặc theo yêu cầu
  • Chỉnh sửa file và commit file
  • Tạo nhánh (branch), đẩy nhánh lên
  • Xử lý xung đột (conflict) khi rebase hoặc merge lên nhánh

Chuyên DEV sẽ cập nhật lần lượt từng vấn đề trên trong các bài viết khác.

Đánh giá bài viết này

You may also like