Git và các câu lệnh cần nhớ

Nội dung
Nội dung

1. Git là gì?

Git là tool quản lý source code, version, phân quyền truy xuất mã nguồn. Git có 3 vùng lưu trữ chính gồm :

Working Diretory: folder coding

Staging Area: vùng đệm, dùng review changing  
-> Git Add: add all thay đổi code từ working_directory vào vùng staging 
-> Git commit: add all thay đổi code từ working_directory vào vùng staging  

Repository: lưu lịch sử  thay đổi.

2. Các câu lệnh cần nhớ

2.1 Log

ls -la: hiển thị toàn bộ file hoặc thư mục ẩn.
git log –all -decorate –oneline –graph: tra lịch sử commit.
git status: Kiểm tra lại trạng thái hiện tại của git, vị trí hiện tại của con trỏ.

2.2 Local

git init : Tạo repository local .
git add ‘tenfile.file’|[.] : thêm file tenfile.file vào môi trường staging để sẳn sàng thay đổi HOẶC thêm all file đã thay đổi.
git commit -m ‘message’: lưu thay đổi vào local repo với ghi chú.
git commit –amend: thực hiện commit ghi đè commit trước đó mà không bổ xung commit vào log .
git stash [save ‘message’]: lưu lại các thay đổi của task1 (với mess – nếu dùng save)nhưng chưa commit để chuyển sang việc khác, branch khác, các thay đổi này sẽ được sử dụng tiếp sau đó.
git remote add [alias_name] [remote_url]: mapping local current with remote repo tại remote_url và định danh nó bằng alias_name .
git remote add origin url: join local repo với remote repo với url, origin là alias_name .
git push -u origin master|[local_branch]:[remote_branch]: đẩy thay đổi từ local repo lên remote repo (đã join local with remote) ứng với -u làjoin local_branch tới remote_branch .
git push –force: đẩy thay đổi từ local lên server, ghi đè thay thế hoàn toàn bản local cho remote bỏ qua xung đột phiên bản.
git tag [version] [commit_id] : đánh dấu 1 commit_id với tag phiên bản.

2.3 Remote

git pull: đồng bộ repo từ remote về local, tự động merger nội dung cho local.
git fetch: lấy toàn bộ nội dung từ remote repository, tách riêng thành 1 nhánh có tên FETCH_HEAD, sau đó phải merge tay hoặc pull lại .

2.4 Branching

git branch -a : liệt kê tất cả các nhánh .
git branch [ten_nhanh]: tạo branch mới từ vị trí HEAD hiện tại, có tên là [ten_nhanh], nhưng HEAD vẫn ở nhánh hiện tại.
git branch -f master HEAD~3: Xóa commit ở nhánh master đến vị trí HEAD~3.
git branch –d [ten_branch]: xóa branch local hiện tại.
git push –delete [ten_remote] [ten_branch]: xóa branch remote ứng với branch tại local có tên ten_branch .
git checkout [ten_nhanh]: điều chỉnh contror HEAD tới branch mới .
git checkout -b [ten_nhanh]: tạo branch [ten_nhanh] và điều chỉnh contror HEAD tới branch mới luôn.

2.5 Merge fast forward

git merge [ten_nhanh]: tự động merge nội dung branch ten_nhanh vào nhánh hiện tại, 1 commit mới được sinh, con trỏ HEAD của branch ten_nhanh vẫn ở commit cuối cùng của branch ten_nhanh. Con trỏ HEAD của nhánh hiện tại di chuyển tới commit mới được tạo ra do merge. Khi có conflict thì sửa nội dung, git add + commit [+ push].

2.6 Set 1 nhánh thành master

git rebase master: bạn đang đứng tại nhánh feature_branch, lệnh rebase cắt tất cả commit của feature_branch từ điểm rẽ nhánh, ghép nối tiếp vào nhánh master, trong khi merge chỉ ghép 2 commit cuối cùng của 2 nhánh feature và master thành 1 commit mới của master.

2.7 Khôi phục thay đổi về điểm bắt đầu .

git reset [commit_id]: sử dụng hồi phục nhánh về vị trí commit_id.
git reset –hard [commit_id]: reset về điểm commit thành công gần nhất hoặc điểm commit_id , chỉ dùng cho branch cá nhân. nguy hiểm.
git reset –soft HEAD~n : bỏ n commit bằng cách di chuyển con trỏ HEAD về trước đó n commit, nhưng giữ nguyên hiện trạng(–soft) thay đổi tại các file.
git revert [commit_id] : tạo commit mới bằng việc commit lại ứng phiên bản kề trước nó( hoặc đè lên commit_id bằng một commit_id’), điều chỉnh con trỏ HEAD về vị trí commit mới.
git merge –squash [issue_branch]: gộp tất commit từ nhánh issue_branch thành 1 commit và tích hợp vào nhánh hiện tại.

2.8 Điều chỉnh vị trí.

git cherry-pick [list-commit-id]: chỉ gộp 1 danh sách commits có id trong [list-commit-id] vào nhánh hiện tại, thứ tự thêm vào theo thứ tự trong ds [list-commit-id] .
git rebase -i HEAD~n : đây là lệnh điều chỉnh lại vị trí nhưng mở giao diện con cho phép lựa chọn ds commit.

3 Tool học git

Bắt đầu học Git với tool 

Tham khảo

https://github.com/pcottle/learnGitBranching

Bài viết mới nhất