[Công cụ] - Các lệnh Git cơ bản (Part 1)
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:
- Branch hiện tại trên máy của bạn là branch nào
- 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 và -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.
Đam mê không phải là thứ có thể đến với bạn, cũng không phải là thứ bạn có thể nghĩ ra, mà đam mê là điều bạn phải dấn thân, tìm kiếm và quan trọng hơn hết là lựa chọn cho mình.
H.wiki mong muốn luôn cập nhật những thông tin hay và hữu ích cho tất cả mọi người.
Nếu bạn thấy bài viết này hay thì hãy like, chia sẻ với bạn bè, người thân và đừng quên ủng hộ blog nhé !