Git là một hệ thống quản lý phiên bản phân tán mạnh mẽ và phổ biến. Mặc dù có nhiều công cụ đồ họa để làm việc với Git, nhưng sử dụng Git thông qua dòng lệnh (command line) mang lại sự linh hoạt và kiểm soát tối đa. Để sử dụng Git, trước tiên bạn cần tìm hiểu Git Shell là gì, cách cài đặt, sử dụng các lệnh Git cơ bản và khắc phục lỗi thường gặp.

Đọc bài viết này để hiểu rõ hơn về:

  • Git shell là gì?
  • Cách cài đặt git shell
  • Một số lệnh cơ bản
  • Một số lỗi thường gặp

Git Shell là gì?

Shell là một chương trình phần mềm giúp người dùng tương tác với hệ điều hành thông qua giao diện dòng lệnh. Shell cho phép người dùng thực hiện các thao tác quản lý hệ thống, cài đặt phần mềm và xử lý các tệp dữ liệu bằng cách nhập các lệnh vào giao diện dòng lệnh, đồng thời hiển thị kết quả cho người dùng. Các shell phổ biến bao gồm Bash (trên Linux/Unix), Command Prompt (trên Windows) và Zsh.

Git Shell là một môi trường dòng lệnh được sử dụng để tương tác với Git. Git Shell cung cấp một giao diện dòng lệnh (CLI) cho phép người dùng thực hiện các thao tác như commit, push, pull, clone và quản lý kho Git từ xa. 

Ngoài ra, Git Shell còn hỗ trợ các câu lệnh Unix và Windows, giúp người dùng dễ dàng tích hợp và sử dụng Git trong các dự án phần mềm. Nó có thể được sử dụng để thay thế các giao diện đồ họa như Git GUI hoặc các công cụ khác, giúp làm việc trực tiếp với kho Git nhanh chóng và hiệu quả hơn.

Đọc thêm: Git Bash Shell: Hướng dẫn sử dụng Git Bash hiệu quả A-Z

Cách cài đặt Git Shell trên Windows

Bước 1: Cài git

Truy cập trang web chính thức Git SCM, và làm theo hướng dẫn cài đặt tương ứng cho từng nền tảng Windows, macOS và Linux:

  • Windows: Tải và chạy tệp cài đặt.
  • MacOS: Tải và làm theo hướng dẫn.
  • Linux: Cài đặt thông qua các công cụ quản lý gói như apt, dnf hoặc yum, tùy thuộc vào bản phân phối mà bạn đang sử dụng.

Bước 2: Tùy chọn cấu hình được khuyến nghị trên Windows

Khi mở trình cài đặt Git trên Windows, bạn sẽ thấy một số tùy chọn cấu hình. Các lựa chọn sau đây được khuyến nghị:

  • Chỉnh sửa PATH: Chọn “Use Git Bash only” để sử dụng một PATH không bị thay đổi, giúp Git Bash hoạt động một cách độc lập và không ảnh hưởng đến các ứng dụng khác trong hệ thống.
  • Cấu hình Line Ending: Chọn “Checkout Windows-style, commit Unix-style line endings” để đảm bảo sự tương thích giữa các hệ điều hành khác nhau.
  • Tạo Shortcut trên Desktop: Chọn “Create a desktop shortcut” để dễ dàng truy cập Git Bash sau này.
  • SSH Client: Sử dụng OpenSSH nếu người dùng cần làm việc với kho lưu trữ từ xa qua SSH

Với tất cả các cài đặt còn lại, bạn có thể giữ nguyên tùy chọn mặc định.

Bước 3: Sau khi cài đặt Git

  • Sau khi cài đặt, bạn có thể mở Git Bash (trên Windows) hoặc Terminal (trên macOS) để sử dụng Git. Có thể chạy thử lệnh sau để kiểm tra xem đã cài đặt thành công hay chưa. Lệnh này sẽ in ra version của Git nếu bạn đã cài đặt thành công.
git --version

Bước 4: Cấu hình Git sau khi cài đặt

Để cấu hình thông tin người dùng cho Git, mở Git Bash hoặc Terminal và sử dụng các lệnh sau:

git config --global user.name "Tên của bạn"
git config --global user.email "Email của bạn"

Đảm bảo email bạn nhập trùng với email bạn đã đăng ký trên GitHub để đảm bảo sự đồng bộ. Sau khi cấu hình, bạn có thể kiểm tra lại thông tin bằng lệnh:

git config –list

Ngoài ra còn một số cấu hình Git mà bạn nên biết như:

  • Thiết lập editor mặc định:
git config --global core.editor "notepad"
  • Lưu thông tin đăng nhập để không phải nhập mật khẩu mỗi lần:
git config --global credential.helper store
  • Cấu hình nhánh mặc định là “main” thay vì “master”:
git config --global init.defaultBranch main

Các lệnh Git shell cơ bản

1. Khởi tạo một Git Repository

Repository là nơi Git lưu trữ tất cả các thay đổi của dự án, bao gồm lịch sử commit và các nhánh. Để bắt đầu sử dụng Git trong thư mục dự án, bạn cần khởi tạo một repository mới bằng lệnh:

git init

2. Thêm các tệp vào Staging Area

Staging area là nơi tạm thời chứa các thay đổi đã được chọn trước khi được commit vào repository chính thức. Để thêm tệp cụ thể vào staging area, ta sử dụng lệnh:

# Thêm 1 tệp cụ thể vào staging area
git add <file_name>
# Thêm tất cả các thay đổi trong thư mục hiện tại
git add .

3. Commit 

Commit là hành động ghi lại các thay đổi từ staging area vào lịch sử dự án, mỗi commit có một mã ID duy nhất. Sau khi thêm tệp vào staging area, bạn cần commit các thay đổi này vào Git với một thông điệp mô tả các thay đổi đó:

git commit -m "commit message"

4. Xem lịch sử commit

Để xem lại các commit đã thực hiện trong kho Git, ta sử dụng lệnh:

git log

5. Tạo nhánh mới

Để tạo một nhánh (branch) mới trong kho Git, sử dụng lệnh:

git branch <branch_name>

6. Chuyển đổi giữa các nhánh

Khi muốn chuyển sang làm việc trên một nhánh khác, ta dùng lệnh:

git checkout <branch_name>

7. Gộp các nhánh

Để merge (gộp) các thay đổi từ một nhánh khác vào nhánh hiện tại, sử dụng lệnh:

git merge <branch_name>

8. Đẩy thay đổi lên kho từ xa (Remote Repository)

Để đẩy các thay đổi của bạn lên kho Git từ xa (như trên GitHub hoặc GitLab), sử dụng lệnh:

git push <remote_name> <branch_name>

9. Lấy các thay đổi từ xa

Nếu bạn muốn tải về và tích hợp các thay đổi mới nhất từ kho Git từ xa vào nhánh hiện tại, sử dụng lệnh:

git pull <remote_name> <branch_name>

10. Kiểm tra trạng thái hiện tại của kho Git

Để kiểm tra trạng thái kho Git, xem tệp nào đã được thay đổi hoặc đang ở trong staging area, sử dụng lệnh:

git status

11. Lệnh git clone

Lệnh để sao chép kho lưu trữ từ xa:

git clone <repository_url>

12. Lệnh git fetch

Lệnh lấy thông tin từ kho từ xa mà không merge:

git fetch <remote_name>

13. Lệnh git stash

Lệnh lưu trữ tạm thời thay đổi:
git stash 
git stash pop

Đọc thêm: Tổng hợp 20+ các lệnh Git cơ bản cần biết

Một số lỗi thường gặp khi dùng Git Shell

“fatal: not a git repository”

Lỗi này xuất hiện khi bạn chạy các lệnh Git trong một thư mục không phải là một Git repository. 

Cách khắc phục:

  • Đảm bảo rằng bạn đang ở trong thư mục chứa kho Git (thư mục có thư mục con .git).
  • Hoặc chạy lệnh git init để khởi tạo một repository mới.

“error: failed to push some refs”

Lỗi này xảy ra khi bạn cố gắng đẩy (push) các thay đổi lên kho từ xa, nhưng có sự khác biệt giữa kho Git local và kho từ xa. Điều này thường xảy ra khi có các thay đổi mới trên kho từ xa mà bạn chưa tải về (pull). 

Cách khắc phục:

  • Chạy lệnh git pull để tải các thay đổi mới từ kho từ xa về.
  • Giải quyết xung đột (nếu có), rồi thử lại lệnh git push.

“Merge conflict”

Khi có hai hoặc nhiều người cùng thay đổi cùng một tệp ở các nhánh khác nhau, Git sẽ không tự động hợp nhất chúng và yêu cầu bạn giải quyết xung đột (merge conflict). 

Cách khắc phục:

  • Mở các tệp bị xung đột và chỉnh sửa để hợp nhất các thay đổi.
  • Dùng lệnh git add <file_name>git merge —continue để hoàn tất.

“Permission denied” (Public key)

Lỗi này xảy ra khi Git không thể kết nối với kho từ xa do vấn đề với SSH keys. 

Cách khắc phục:

  • Đảm bảo đã thiết lập SSH keys đúng cách và thêm chúng vào tài khoản GitHub hoặc GitLab của mình. 

Ví dụ với github bạn có thể kiểm tra cấu hình SSH bằng lệnh:

ssh -T git@github.com.

Câu hỏi thường gặp về Git shell

Phân biệt Bash và Shell?

Shell là một giao diện dòng lệnh cho phép người dùng tương tác với hệ điều hành thông qua các lệnh. Shell cung cấp một môi trường để thực thi các câu lệnh và quản lý các tác vụ hệ thống.

Còn bash (Bourne Again Shell) là một loại shell phổ biến, đặc biệt trên các hệ điều hành Unix-like như Linux và macOS. Bash cung cấp nhiều tính năng mở rộng, chẳng hạn như scripting, tự động hoàn thành lệnh và quản lý biến môi trường, giúp người dùng làm việc hiệu quả hơn. Ngoài ra còn có một số loại shell khác như Zsh, Fish, Ksh,…

Đọc thêm: Bash Shell là gì? Các tính năng chính của Bash Shell

Phân biệt Git Shell và Git Bash?

Git Bash là một công cụ dòng lệnh dành cho người dùng Windows, cung cấp môi trường giống như Unix để chạy các lệnh Git. Nó sử dụng bash shell, cho phép người dùng chạy các lệnh Git cùng các tính năng shell của Unix.

Trong khi đó, Git Shell là một công cụ dòng lệnh khác trên Windows, chỉ tập trung vào các lệnh Git mà không hỗ trợ đầy đủ các tính năng của bash như Git Bash. Vì vậy, Git Bash là sự lựa chọn linh hoạt hơn khi làm việc với Git trên Windows.

Làm thế nào để mở Git Shell trên MacOS/Linux?

Trên macOS/Linux, bạn có thể mở Git Shell thông qua Terminal, vì Git đã tích hợp sẵn vào các hệ điều hành này. Chỉ cần mở Terminal và gõ các lệnh Git như bình thường để bắt đầu sử dụng.

Tổng kết

Git Shell không chỉ là một công cụ mạnh mẽ mà còn là một phần quan trọng trong quy trình làm việc của các lập trình viên. Việc nắm được các lệnh cơ bản và các vấn đề có thể gặp phải khi sử dụng Git sẽ giúp bạn làm việc hiệu quả và nhanh chóng hơn. 

ITViec hy vọng bài viết trên đã giúp bạn có cái nhìn tổng quan về cách cài đặt Git cũng như một số khái niệm căn bản.