Top những câu lệnh Git dùng trong thực tế

Top những câu lệnh Git dùng trong thực tế

Không dài dòng, chỉ cần nhớ những câu lệnh này là làm việc với Git được rồi. Tất nhiên sẽ có những câu lệnh tương tự nhưng không cần thiết phải nhớ những câu lệnh đó. Vì nhớ thêm chỉ làm bạn đâu đầu thôi.

Để có thể dễ dàng hiểu rõ các câu lệnh dưới cũng như là thuận tiện cho việc học thì mình khuyên anh em nên đọc 2 bài mình đã viết trước đó.


🥇 Cài đặt Git

Windows và Mac thì cài thông qua link này: https://git-scm.com/

Còn anh em Linux thì đã đã được cài sẵn rồi!


🥇 Cấu hình git

Tên và email của bạn sẽ đại diện cho bạn khi bạn commit cũng như là push code. Đây là bắt buộc nếu như bạn mới cài đặt Git lần đầu.

git config --global user.name "Pham Hong Duc"
git config --global user.email "nroduc.contact@gmail.com"

Để xem các config thì

git config --global --list

Muốn config chỉ riêng một repository thôi thì dùng --local


🥇 Khởi tạo repository ở local và push lên remote

Khởi tạo một Git repository

git init

Tạo file, rồi code các kiểu trong Git repository. Bây giờ chúng ta sẽ tiến hành commit

git add .
git commit -m 'init'

Mặc định thì mới khởi tạo Git Repository ở local, nhánh mặc định sẽ là master, nếu anh em muốn đổi tên sang nhánh khác, ví dụ main thì dùng câu lệnh

git branch -M main

Nhánh đầu tiên push lên Git chính là nhánh mặc định của Git Repository đó trên remote

Bây giờ chúng ta sẽ tạo một mối liên kết giữa local và remote để có thể push code lên

git remote add origin git@github.com:phamhongduc-dev/123.git

Các bạn thay thế git@github.com:phamhongduc-dev/123.git thành URL SSH Git Repository của các bạn nhé

Bước cuối cùng là push lên thôi. Dưới đây là mình push lên với tư cách là nhánh main.

git push -u origin main

Mình thêm -u để những lần sau thì chỉ cần git push thôi là nó cũng hiểu là mình push ở nhánh hiện tại trên local, khỏi cần phải origin main cho mệt.


🥇 Clone Repository ở remote về

Quá dễ, chúng ta sẽ clone bằng giao thức SSH, ai đang dùng HTTPS thì cũng nên đổi sang SSH đi cho tiện và bảo mật

git clone git@github.com:phamhongduc-dev/123.git

🥇 Kiểm tra đang ở branch nào

Câu lệnh dưới sẽ show branch hiện tại, các file mà bạn modify trong các trạng thái của git

git status

Show hết tất cả branch có ở máy bạn.

git branch -a

À mà nếu anh em thấy thiếu hay dư branch nào thì cứ git fetch -p rồi chạy lại git branch -a là được.


🥇 Tạo một branch mới từ branch hiện tại

Cứ câu lệnh dưới đây mà phang

git checkout -b TenBranchMoi

🥇 Chuyển sang branch khác

Cứ checkout mà phang

git checkout TenBranch

Nếu branch đó không có trên local thì dùng git fetch để nó update các branch trên local là được


🥇 Kiểm tra lịch sử commit

Phổ biến nhất là

git log --oneline

À mà nếu muốn thoát ra khỏi cái Editor trên terminal thì nhấn q, muốn xem trang tiếp theo thì w, trang trước đó thì space

Nhưng mình thường dùng Git UI trên VS Code cho trực quan 🤣


🥇 Kéo code từ remote về để cập nhập code dưới local

Ví dụ bạn đang code ở branch feature/Login, anh Leader bảo bạn kéo code nhánh feature/Register về nhánh feature/Login của bạn đi, vì ảnh mới cập nhật trên đó.

Công việc của bạn chỉ là

git pull origin feature/Register

Điều này cũng áp dụng cho nhánh của bạn được, ví dụ có ai đó cập nhật code nhánh feature/Login trên remote, bây giờ bảo bạn kéo code mới về rồi code tiếp chứ code trên local bạn cũ rồi.

git pull

Không cần phải thêm origin feature/Login vì mặc định nó tự hiểu

Code xong thì cứ git push lên thôi.

Đơn giản mà đúng không!

git pull là sự kết hợp của git fetchgit merge, tức là mà đang dùng merge để gộp branch.

Còn cách dùng rebase nữa, nhưng nó khá nguy hiểm nếu không biết dùng đúng cách, vậy nên nhiều team còn cấm anh em dùng git rebase.

Anh em nào muốn tìm hiểu về git rebase thì cứ đọc bài này của mình: Tôi học git lại từ đầu


🥇 Cập nhật code ở local giống hệt trên remote

Hay còn gọi là pull force, nghĩa là nhánh ở local anh em quá cũ rồi, giờ anh em muốn xóa code ở local và đem code ở remote về làm?

Anh em thực hiện pull code về ư? Không phải là lựa chọn hay, vì nếu như local của anh em có một số file thay đổi hoặc edit dở, nó bắt anh em phải commit rồi mới được phép pull cơ. Chưa kể pull về còn có khả năng bị conflict 😳.

Khổ vãi, tôi chỉ muốn code trên remote thôi mà 🥲

Cách nhanh nhất là

  1. Cập nhật tất cả các origin/branch ở local
git fetch --all
  1. Backup branch hiện tại cho an toàn (ví dụ master). Cái này là optional thôi, anh em tự tin thì khỏi cần backup.
git branch backup-master
  1. Nhảy để commit mới nhất của origin/master.
git reset --hard origin/master

🥇 Cập nhật commit trước đó

Ví dụ vừa commit, bổng nhiên nhận ra là chúng ta commit thiếu một số file hoặc cần update thêm. Chúng ta có thể thêm vào commit trước đó một cách dễ dàng bằng

git commit --amend --no-edit

--no-edit là cho nó git khỏi hỏi bạn có edit message commit không, nếu không có thì nó sẽ hiển thị cái editor cho bạn edit message.

À mà cập nhật commit thì sẽ làm thay đổi hash commit, nếu anh em đã push lên remote rồi thì muốn push lại thì phải git push -f mới được nhé.


🥇 Lưu lại trạng thái branch hiện tại với git stash

Khi anh em đang làm dỡ branch feature/Login, sếp bảo là "feature/Register đang có bug, em kéo code về mà sửa rồi push lên lại cho anh!"

Bây giờ thì anh em cần lưu toàn bộ thay đổi trên nhánh featuer/Login

git stash

Tiếp theo cứ git checkout feature/Register để sang làm việc bên branch đó. Sau khi làm việc xong chúng ta chuyển qua lại branch feature/Login.

git checkout feature/Login

Apply cái stash lưu trước đó

git stash apply stash@{0}

Nguồn bài viết: https://duthanhduoc.com

Phạm Hồng Đức
Phạm Hồng Đức
Một developer thích nghiên cứu và chia sẻ kiến thức lập trình, phần mềm mã nguồn mở (open-source), và cuộc sống.