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

Châm ngôn của mình là học để kiếm tiền.

Vì thế mình build các khóa học của mình để giúp anh em tiến bộ nhanh hơn x10 lần , để kiếm được nhiều tiền hơn

  • 🏆 React.js Super: Trở thành React.js Developer trong 7 ngày với mức thu nhập 20 triệu/tháng
  • 🏆 Node.js Super: Giúp bạn học cách phân tích, thiết kế, deploy 1 API Backend bằng Node.js
  • 🏆 Next.js Super: Mình sẽ chia sẻ từ A-Z kiến thức về Next.js, thứ giúp mình kiếm hơn 1 tỉ/năm

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.

bash
git config --global user.name "Du Thanh Duoc"
git config --global user.email "duthanhduoc@gmail.com"

Để xem các config thì

bash
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

bash
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

bash
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

bash
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

bash
git remote add origin git@github.com:duthanhduoc/123.git

Các bạn thay thế git@github.com:duthanhduoc/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.

bash
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

bash
git clone git@github.com:duthanhduoc/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

bash
git status

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

bash
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

bash
git checkout -b TenBranchMoi

🥇Chuyển sang branch khác

Cứ checkout mà phang

bash
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à

bash
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à

bash
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.

bash
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.

💡 Mẹo:

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
bash
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.
bash
git branch backup-master
  1. Nhảy để commit mới nhất của origin/master.
bash
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

bash
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

bash
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.

bash
git checkout feature/Login

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

bash
git stash apply stash@{0}

Kiến thức trong khóa học Next.js này đã giúp mình kiếm hơn 1 tỉ đồng/năm

Phew! Cuối cùng bạn cũng đã đọc xong. Bài viết này có hơi dài một tí vì mình muốn nó đầy đủ nhất có thể 😅

Website bạn đang đọc được viết bằng Next.js TypeScript và tối ưu từng chi tiết nhỏ như SEO, hiệu suất, nội dung để đảm bảo bạn có trải nghiệm tốt nhất.

Với lượt view trung bình là 30k/tháng (dù website rất ít bài viết). Website này đem lại doanh thu 1 năm vừa qua là hơn 1 tỉ đồng

Đó chính là sức mạnh của SEO, sức mạnh của Next.js.

Mình luôn tin rằng kiến thức là chìa khóa giúp chúng ta đi nhanh nhất.

Mình đã dành hơn 6 tháng để phát triển khóa học Next.js Super | Dự án quản lý quán ăn & gọi món bằng QR Code. Trong khóa này các bạn sẽ được học mọi thứ về framework Next.js, các kiến thức từ cơ bản cho đến nâng cao nhất, mục đích của mình là giúp bạn chinh phục mức lương 25 - 30 triêu/tháng

Nếu bạn cảm thấy bài viết này của mình hữu ích, mình nghĩ bạn sẽ thích hợp với phong cách dạy của mình. Không như bài viết này, khóa học là sự kết hợp giữa các bài viết, video, bài tập nhỏ và dự án lớn có thể xin việc được ngay. Học xong mình đảm bảo bạn sẽ lên tay ngay. 💪🏻

Avatar Dư Thanh Được

Dư Thanh Được

Một developer thích nghiên cứu và chia sẻ kiến thức về lập trình, blockchain, marketing. Chuyên code và dạy lập trình website