Hướng dẫn - Thủ thuật

Git là gì? Giới thiệu lệnh Git cơ bản

Git chính là một hệ thống VCS cho dự án của bạn. Chính vì là một VCS ở trên nên Git cũng ghi nhớ lại toàn bộ lịch sử thay đổi của source code trong dự án. Bạn sửa file nào, thêm dòng code nào, xóa dòng code nào, bỏ thừa dấu ở đâu .etc. Tất tần tật đều được Git ghi lại.

Lời mở đầu


Mình gặp rất nhiều bạn newBie, mới vào nghề, chưa có kinh nghiệm làm việc nhiều nên hầu hết các bạn này rất lúng túng khi làm việc với Git (Git cơ bản thôi nhé), hoặc thậm chí có bạn còn chưa biết Git là gì, chưa biết làm việc với nó như thế nào. Trên quan điểm của mình, việc này không phải lỗi của bạn ấy, chẳng qua các bạn ấy chưa có cơ hội để sử dụng Git, nên chưa tìm hiểu. Nhưng, sẽ là lỗi của các bạn ấy, nếu trong dự án sử dụng Git mà lại không tìm hiểu. Vì thế mình muốn viết một chút chia sẻ về cách sử dụng git cơ bản cùng với Gitlab.com - một platform cung cấp dịch vụ Git repository mình rất ưa chuộng.

Git là gì?

Git chính là một hệ thống VCS cho dự án của bạn. Chính vì là một VCS ở trên nên Git cũng ghi nhớ lại toàn bộ lịch sử thay đổi của source code trong dự án. Bạn sửa file nào, thêm dòng code nào, xóa dòng code nào, bỏ thừa dấu ở đâu .etc. Tất tần tật đều được Git ghi lại.

Điểm khác biệt của Git so với các VCS khác (như Subversion…) chính là “cách Git nghĩ về dữ liệu”. Phần lớn các hệ thống khác coi thông tin được lưu trữ như là một tập hợp các file kèm theo các thay đổi được thực hiện trên mỗi file theo thời gian, như hình bên dưới.

Tuy nhiên ở Git, lại coi thông tin được lưu trữ là một tập hợp các snapshot (ảnh chụp toàn bộ nội dung tất cả các file tại thời điểm). Mỗi khi bạn “commit”, Git sẽ “chụp” và tạo ra một snapshot cùng một tham chiếu tới snapshot đó, như này:

Đó là cách Git nghĩ về dữ liệu. Để cài đặt Git, vui lòng truy cập trang Download của Git để tải về và làm theo hướng dẫn cài đặt.

Thêm ssh key vào Gitlab.com

1) Bạn đăng ký một tài khoản tại Gitlab.com






Cài đặt Git cho window https://git-scm.com/download/win

 

2) Tạo ssh-key từ command-line

Tạo ssh-key từ command-line trên Windows:
- Truy cập git-bash
- Gõ lệnh: 
ssh-keygen -t rsa và ấn enter liên tiếp để tạo file
- Truy cập vào thư mục như hình dưới để xem file được tạo ra



Tạo ssh-key từ command-line trên linux:
- Từ command line của Linux gõ lệnh 
ssh-keygen -t rsa
Dùng lệnh sau để lấy thông tin public key: cat /home/username/.ssh/id_rsa.pub

3) Thêm public key vào Gitlab.com

Khi lấy được public key, trông public key sẽ có dạng:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwcBEUBBjWUB0g+7cw5ncM1H+R+/PK8QmG1rDHNUDIn1pcv6eVjZnztlpnImsGRtFT4957urIUUn91RRuMZrLBB5Eq4qRq3LgUy1fNpqH3xPqtC+9G9jXrUBuy4NQksNL2JG3fefknwnHuPGG9ohMshuhQz5B/47FzXL+X5MzdEuPNGL2bai/RtvjOVFNf3te3LHek/zN34u2+cV7WNMnS8I5q5aLXJ3o+n+SYbwb/vlaJbz48vci3XmfB3qTUEzWRo/BMKrWhgqUZ+eXZQlqb5vIidS/rrvAUFwDhKy3gMKQqpr0xGYvB0Ss/VJhXFv2gE1EItX6ALcYaLyG01E/tPFGkp5F6FhKjyM14K3dk0IhKzQ0pfjwed8uX6lR0TahmD6XFFKq/rc7K63t9pTVCw5v9hWge3A7QKDMahAsh7tcWCphaGOONJh3BZuUU88by5shVxAGZluTDCQDnUBH5eN0EVHh6TCZKxHszPh3GamCjQUNAejXoK5irmYx41zz= longfullstack@DESKTOP-VRLQQIO
Vào Gitlab.com, vào trong mục Settings
 

Tiếp theo vào mục SSH Keys



Nhập public key vào ô 



Nhấp vào Add key để thêm key vào Gitlab

Các lệnh git cơ bản

1) git config

Tác dụng : Để set user name và email của bạn trong main configuration file.
Cách xài : Để kiểm tra tên và kiểu email trong cấu hình dùng git config -- global user.name và git config -- global user.email. Để set email hoặc tên mới git config -- global user.name = “Long Nguyễn” và git config -- global user.email = “tieulonglanh@gmail.com”

2) git init

Tác dụng : Khởi tạo 1 git repository 1 project mới hoặc đã có.

Cách xài: git init trong thư mục gốc của dự án.

3) git clone

Tác dụng: Copy 1 git repository từ remote source.

Cách xài: git clone <:clone git url:>

4) git status

Tác dụng: Để check trạng thái của những file bạn đã thay đổi trong thư mục làm việc. VD: Tất cả các thay đổi cuối cùng từ lần commit cuối cùng.

Cách xài: git status trong thư mục làm việc.

5) git add

Tác dụng: Thêm thay đổi đến stage/index trong thư mục làm việc.

Cách xài: git add

6) git commit

Tác dụng: commit nghĩa là một action để Git lưu lại một snapshot của các sự thay đổi trong thư mục làm việc. Và các tập tin, thư mục được thay đổi đã phải nằm trong Staging Area. Mỗi lần commit nó sẽ được lưu lại lịch sử chỉnh sửa của code kèm theo tên và địa chỉ email của người commit. Ngoài ra trong Git bạn cũng có thể khôi phục lại tập tin trong lịch sử commit của nó để chia cho một branch khác, vì vậy bạn sẽ dễ dàng khôi phục lại các thay đổi trước đó.

Cách dùng: git commit -m ”Đây là message, bạn dùng để note những thay đổi để sau này dễ dò lại”

7) git push/git pull

Tác dụng: Push hoặc Pull các thay đổi đến remote. Nếu bạn đã added và committed các thay đổi và bạn muốn đẩy nó lên hoặc remote của bạn đã update và bạn apply tất cả thay đổi đó trên code của mình.

Cách dùng: git pull <:remote:> <:branch:> and git push <:remote:> <:branch:>

8) git branch

Tác dụng: liệt kê tất cả các branch (nhánh).

Cách dùng: git branch hoặc git branch -a

9) git checkout

Tác dụng: Chuyển sang branch khác

Cách dùng: git checkout <: branch:> hoặc ** _ git checkout -b <: branch:> nếu bạn muốn tạo và chuyển sang một chi nhánh mới.

10) git stash

Tác dụng: Lưu thay đổi mà bạn không muốn commit ngay lập tức.

Cách dùng: git stash trong thư mục làm việc của bạn.

11) git merge

Tác dụng: Merge 2 branch lại với nahu.

Cách dùng: Chuyển tới branch bạn muốn merge rồi  dùng git merge <:branch_ban_muon_merge:>

12) git reset

Tác dụng: Bạn đã đưa một tập tin nào đó vào Staging Area nhưng bây giờ bạn muốn loại bỏ nó ra khỏi đây để không phải bị commit theo.

Cách dùng: git reset HEAD tên_file

13) git remote

Tác dụng: Để check remote/source bạn có hoặc add thêm remote

Cách dùng: git remote để kiểm tra và liệt kê. Và git remote add <: remote_url:> để thêm.

14) git add

Tác dụng: Để đưa một tập tin vào Staging Area

Cách dùng: git add tên_file hoặc muốn thêm hết file của thư mục thì git add all

Sử dụng Git như thế nào?

Sau khi cài đặt, Git được sử dụng thông qua cửa sổ dòng lệnh với terminal (command-line). Ví dụ như này:

Ngoài ra cũng có một số GUI tool giúp bạn dùng mà không phải dùng lệnh. Nhưng mà mình thấy nó chẳng cần thiết chút nào. Dùng terminal là xong hết, mà lại đơn giản. Dùng tool lại phải cài đặt, rồi phải học cách dùng, bla bla… 


Git VCS Gitlab