H??ng d?n git – c?c l?nh git c? b?n th??ng d?ng

H??ng d?n git – c?c l?nh git c? b?n th??ng d?ng

Git là gì?

Git là h? th?ng ki?m soát qu?n lý phiên b?n phân tán th??ng ???c s? d?ng qu?n lý source code trong các d? án phát tri?n ph?n m?m. S? d?ng Git s? giúp nhi?u thành viên có th? làm vi?c trong cùng 1 d? án, x? lý ???c các xung ??t source code gi?a các dev, t?o ???c nhi?u phiên b?n, phân nhánh… Bài vi?t này s? h??ng d?n git c? b?n và các l?nh th??ng dùng trong quá trình làm vi?c.

Cài ??t git và c?u hình c? b?n trên windows, Mac và Linux

N?u dùng windows, Mac:

T?i git t?i: https://git-scm.com/downloads

Tùy theo h? ?i?u hành Windows Mac hay Linux, b?n ch?n b?n phù h?p. Quá trình cài ??t c?ng r?t d? dàng, b?n ch? c?n ?? nguyên các tùy ch?n m?c ??nh r?i next next finish.

??i v?i Ubuntu Linux:

 sudo apt install git

??i v?i Centos Linux:

sudo yum install git

Ki?m tra git ?ã cài ??t hay ch?a:

git --version

C?u hình git c? b?n

Sau khi cài ??t xong chúng ta s? thi?t l?p thông tin cá nhân:

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

check thông tin:

git config --list

?? thoát git config thì: nh?n Esc , nh?p :q và enter (gi?ng khi dùng trình so?n th?o vi vim)

H??ng d?n git – các câu l?nh th??ng dùng

Git init

T?o local repository b?ng cách t?o 1 th? m?c ch?a d? án, cd vào th? m?c ?ó r?i ch?y l?nh:

git init

Git Remote

L?nh này tr? local repository c?a b?n ??n repository chung:

git remote add origin repository-url

Git Clone

Sao chép t?i t? repository online v? máy:

git clone repository-url

clone t? 1 nhánh c? th?:

git clone --branch <branchname> <remote-repo-url>

or

git clone -b <branchname> <remote-repo-url>

vd:

git clone -b mybranch https://mygit.com/demo/demo-project.git

Git Pull

Trong làm vi?c nhóm thì các thành viên s? th??ng xuyên push code c?a h? lên repository chung, và ?? t?i v? nh?ng ph?n m?i c?p nh?t ?ó thì chúng ta s? dùng câu l?nh git pull. Câu l?nh này dùng ?? c?p nh?t nh?ng thay ??i trên repository chung v? local repository:

git pull origin master

git fetch

L?nh này ???c s? d?ng ?? t?i xu?ng các s? thay ??i t? Remote repository mà không làm thay ??i tr?ng thái c?a Local repository. M?c ?ích ?? theo dõi các commit nh?ng thành viên khác ?ã c?p nh?t lên remote repository, ?? có ???c thông thông tin khác nhau gi?a remote và local. Sau ?ó, b?n có th? thay ??i c?p nh?t vào local repo d? li?u t?i v? b?ng l?nh git pull ho?c git merge, vd: git merge origin/master

Khu v?c chu?n b? Staging

Staging là khu v?c t?m ch?a source code ?? chu?n b? commit vào local repository:

Chúng ta có th? thêm 1 file

git add test.txt

Ho?c nhi?u file:

git add file1 file2 file3

Ho?c thêm t?t c? nh?ng thay ??i source code vào staging:

git add .

Remove file n?u add nh?m:

git rm [file]

Commit

câu l?nh commit s? ??a source code t? khu v?c chu?n b? vào local repository:

git commit -m "Comment"

commit mà ko c?n thông qua l?nh add lên staging:

git commit -a -m "test comment"

commit b? xung và g?p chung v?i commit tr??c ?ó:

git commit --amend

thay ??i comment cho commit th?c hi?n tr??c ?ó:

git commit --amend -m "new message"

Git Push

??y source code t? local repository lên repository online, ví d? ??y vào repository nhánh master:

git push origin master

git status

câu l?nh này s? hi?n th? cho chúng ta các ph?n source ?ã ???c thay ??i, nh?ng file trong staging…

git log

log ra các commit ?ã th?c hi?n

Nhánh

Chúng ta có th? phân nhánh ?? phát tri?n các tính n?ng riêng, ho?c các thành viên t?o nhánh riêng ?? làm vi?c r?i sau ?ó merger vào nhánh chính.

Li?t kê các nhánh:

git branch

T?o nhánh m?i:

git branch new-branch-name

#new-branch-name là tên nhánh m?i

Chuy?n sang nhánh khác:

git checkout branch-name

T?o và chuy?n sang nhánh m?i t?o trong cùng 1 l?nh:

git checkout -b branch-name

Xóa nhánh:

git branch -D branch-name

G?p nhánh:

Ví d? g?p nhánh Test vào nhánh master:

quay l?i nhánh master:

git checkout master

ch?y l?nh g?p 1 nhánh vào nhánh hi?n t?i:

git merge test

M?t s? l?nh git khác

git diff

ki?m tra s? thay ??i

git reset

H?y git add:

git reset

H?y commit cu?i ch?a push, không ??a tr? l?i staging:

git reset --hard HEAD~1

git revert

undo commit cu?i ?ã push:

git revert <commit_hash>

git checkout .
Xóa t?t c? nh?ng gì v?a thay ??i trong nhánh ?? ??a v? tr?ng thái ??ng b? v?i nhánh trên repo

git checkout .

git stash

l?nh trên có tác d?ng t?m c?t gi?u ?n nh?ng thay ??i

??a nh?ng th? ?ã c?t tr? l?i:

git stash apply

git tag

?ánh d?u commit quan tr?ng b?ng tag

Check git repository remote URL

git config --get remote.origin.url

ho?c:

git remote -v

Các nhà cung c?p d?ch v? l?u tr? git repository ph? bi?n

Chúng ta có th? t? t?o Repository Server, ho?c s? d?ng d?ch v? t? các nhà cung c?p:

Github: https://github.com/

Bitbucket: https://bitbucket.org/

Gitlab: https://about.gitlab.com/

L?i k?t

Nh? v?y v?i bài vi?t này, chúng ta ?ã hi?u ???c nh?ng gì c? b?n v? Git. N?u b?n có gì c?n b? xung thì hãy cùng chia s? qua ph?n bình lu?n nhé.

5 6 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

3 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Linh Nguy?n
Linh Nguy?n
2 năm trước

Bài vi?t r?t h?u ích và d? hi?u ?.
C?m ?n anh nhi?u.

Duy Phan
Duy Phan
1 năm trước

Cám ?n anh, th?t s? e ?ã dùng git m?t th?i gian r?i nh?ng nh? bài vi?t c?a a mà e bi?t thêm nhi?u th? v? git 😀

Lucy Ph?m
Lucy Ph?m
9 tháng trước

??y ?? quá, tuy?t v?i 😀