Các lệnh Git cơ bản (phần 1)

5/5 - (1 bình chọn)

Trong bài viết trước về SourceTree, mình đã chia sẻ khá ngắn gọn về việc sử dụng Git cơ bản với giao diện UI thông qua phần mềm này. Tuy vậy, việc sử dụng Git Bash thông qua câu lệnh sẽ là rất cần thiết trong phần lớn trường hợp của developer.Code Tốt xin tổng hợp một số câu lệnh Git cơ bản và rất thông dụng mà có lẽ các developer đã từng dùng Git đều sẽ gõ hoặc thực thi một lúc nào đó.

Tải code từ Git Reposity

Đây là câu lệnh cơ bản:

git clone <link hoặc path repository>

Trường hợp này tuy đơn giản như vậy nhưng cần lưu ý các tình huống sau đây:

Link hoặc path repository là gì?

Chẳng hạn như với tài khoản Github @khoipro của mình ở đây, bạn sẽ thấy danh sách các repository (source) mà mình tự build, hoặc clone từ các project khác về.

Bạn chọn 1 project và có thể nhìn thấy button Clone or Download, trong đó sẽ có path của repository của mình.

Clone hoặc tải source bằng Git trên Github

Bạn sẽ copy path này và gõ ví dụ git clone https://github.com/khoipro/scss-mixins.git thì code sẽ được tải về.

Tải code từ Repository về và đổi tên

Có đến 90% các project về chúng ta sẽ có thói quen đổi tên. Thật may là Git Bash khi bạn chạy clone sẽ có 1 option để bạn đổi tên luôn.

Bạn chỉ cần gõ: git clone <tên repo> <tên thư mục cần đổi tên>, thì ngay sau khi tải code xuống bạn sẽ thấy code nằm trong thư mục do bạn đặt tên. Mẹo nhỏ này sẽ giúp bạn tiết kiệm thời gian lắm đấy!

Làm việc với Branches

Branches (Nhánh) là một khái niệm liền mạch với Git, và đóng vai trò vô cùng quan trọng. Hãy tưởng tượng bạn trồng một cây, và nếu cây đó không có nhánh, cành, thì khả năng cây đó còn sống rất khó. Tương tự như vậy, Branches trong Git bao gồm không chỉ các nhánh, mà còn được tính là cả trụ cột (còn được gọi là branch master).

Xem danh mục branch hiện tại trên máy

Câu lệnh: git branch

Lệnh này cần thiết trong trường hợp bạn cần chuyển đổi qua lại giữa các branch, chúng ta cần biết trước trên máy tính hiện tại đang có những branch nào.

Việc này cũng quan trọng khi bạn muốn ghi đè lên 1 branch remote (online) bằng 1 branch local. Hãy nhớ phân biệt thật kĩ khái niệm branch remote và branch local nhé, vì nó hoàn toàn có thể độc lập cho tới khi nào bạn đẩy code lên cơ đấy!

Như trong SourceTree, bạn có thể thấy cả hai phần Remotes và Branches đều đang hiện hữu trong Sidebar:

Quan sát được cả local và remotes branches trên SourceTree

Tạo 1 branch trên máy

Kiểm tra trạng thái của Git hiện tại trên máy

Ta hãy bắt đầu bằng việc tạo 1 branch mới trên máy. Điều này sẽ cần bạn kiểm tra:

  1. Branch hiện tại trên máy của bạn là branch nào
  2. Branch sắp tạo đã có trên remote hay chưa

Tại sao lại cần đặt ra hai câu hỏi như trên?

Thứ nhất, branch hiện tại trên máy sẽ là nơi xuất phát điểm để bạn tạo Branch mới, tức như kiểu ta cần biết nguồn gốc của các commit cũ (như gốc rễ của cây) trước khi ta nối tiếp các phần sửa chữa code tiếp theo vào.

Ta có thể dùng lệnh git status để xem tình trạng (State) hiện tại của Git bạn đang ở trên.

Thông thường nếu bạn chỉ chạy git clone, bạn sẽ nằm trên Branch Master. Các branch Master gốc thường hạn chế người truy cập và push code lên trừ khi bạn có quyền ghi lên nó.

Thứ hai, nếu branch đã trùng tên trên Remote Branches, thì rất có thể bạn sẽ phải ghi đè lên Branch này khi đẩy code lên và có thể mất code cũ.

Việc ghi đè lên 1 branch là rất hạn hữu, không khuyến khích trừ trường hợp bạn buộc phải giữ 1 nhánh để đảm bảo merge code của các thành viên trong nhóm.

Tạo Git branch

Nếu bạn đã chắc chắn về việc tạo branch, ta thực hiện dòng lệnh:

git branch <tên branch>

Xóa 1 branch hiện tại trên máy

Việc xóa 1 branch trên remote cần quyền từ người quản trị Git, nhưng nếu bạn cần xóa 1 branch trên máy, điều đó rất đơn giản.

Chẳng hạn vào đầu tháng mình tạo 1 branch tên là dev-march, và tới đầu tháng 04 mình tạo 1 branch tên là dev-april. Tất nhiên, mình đã có hết code của dev-march rồi. Như vậy, mình có thể xóa branch dev-march bằng câu lệnh:

git branch -d dev-march

Tuy nhiên, trong một tình huống khác, mình được yêu cầu sử dụng branch master để ghi đè lên branch develop chẳng hạn, như vậy mình sẽ cần làm các thao tác sau đây:

  • Xóa branch develop cũ trên máy mà không cần quan tâm code đã đẩy lên hết Remote Branch develop hay chưa.
  • Checkout branch master và tạo 1 branch tên develop mới (branch này sẽ có ở local trước, và mình ghi đè lên branch develop online).

Như vậy, câu lệnh ở bước 1 (trong tình huống xóa branch develop cũ và bỏ qua mọi thay đổi mình đang làm dở trên branch này), câu lệnh sẽ là:

git branch -D develop

Bạn có thấy sự khác giữa -d-D không?

git branch -d chỉ xóa branch được chỉ định NẾU đã push hết các commit lên.

git branch -D xóa branch chỉ định bất kể có hay không file chưa commit.

<còn tiếp>

Viết một bình luận


Chuyên gia về Web
Bạn muốn làm việc với dịch vụ website do chúng tôi triển khai?
Gọi tư vấn 0982.90.4343
Chuyên gia về Web
Bài viết liên quan

02/01/2024

Fix lỗi npm không thể cài các package devDependencies
Khi cài đặt dự án,  có lúc bạn sẽ cài mãi cũng không đủ các package npm, đặc biệt là...
Gọi file PHP trong WordPress

19/09/2023

Cài đặt và sử dụng WP-CLI trên môi trường Linux
Trên một số môi trường Hosting có thể cung cấp SSH hoặc Terminal access, song không có sẵn WP-CLI để...
Import database MySQL lớn trên môi trường Docker

06/08/2023

Import database MySQL lớn trên môi trường Docker
Mình sử dụng EasyPanel để quản lý các Docker và build môi trường app. Nay gặp tình huống phải import...

28/01/2023

Hướng dẫn cài đặt php extension mongodb trên Mac OS M1
Khi bạn muốn hỗ trợ MongoDB trên dòng Mac M1, phần cài đặt sẽ cần một chút lưu ý. Hướng...