Chỉnh sửa lại commit gần nhất (override)
git commit --amend
log
Xem lịch sử các commit
git log
diff
Xem sự khác nhau giữa đoạn code hiện tại (working tree) với commit gần nhất (HEAD)
git diff HEAD <file_name>
Xem sự khác nhau giữa 2 branch
git diff <branch_name1> gif diff <branch_name2>
Checkout 1 file
Reset file về commit gần nhất đối với working tree.
`git checkout --
Git list command 4: reset, git revert, git log --oneline
reset
Back local repo về 1 commit cũ (index & working tree)
git reset --hard HEAD~<numbers_of_commit>
Undo commit
git reset --soft HEAD~<numbers_of_commit>
Back local repo về 1 commit cũ (index)
git reset HEAD~<numbers_of_commit> ~ git reset --mixed HEAD~<numbers_of_commit>
revert
Back local repo về 1 commit cũ (SHA_commit) và tạo ra 1 commit mới
git revert <SHA_commit>
log --oneline
Xem lịch sử commit với mỗi commit được show trong 1 dòng
git log --oneline
Git list command 5: git fetch, git pull, git push
git push
Đẩy dữ liệu từ local lên remote theo tên nhánh
git push <remote_repo_alias> <branch_name>
git fetch
Tiến hành lấy lịch sử mới nhất từ remote về và đồng bộ với ref_remote trên local
git fetch
git pull
Đồng bộ dữ liệu từ remote về local với 1 nhánh xác định
git pull <remote_alias> <branch_name>
Git list command 6: conflict và resolve conflict
Making conflict
Tạo nội dung trong cùng file abc.html nhưng ở 2 nhánh với phần cuối thì nội dung khác nhau
Sau đó push cả 2 branch tử local lên remote và thực hiên pull_request từ develop đến master, sẽ xuất hiện conflict
Resolve conflict
Kéo nội dung từ master trên remote về nhánh develop
và tiến hành resolve conflict
Ở đây, nội dung từ <<<HEAD đến ==== chỉ ra content hiện tại ở nhánh đang đứng, và sau === đến <<<sha_commit chỉ ra content vừa được bổ sung vào, có thể giữ lại 1 phần hoặc giữ lại cả 2 phần.
sau khi fix thì commit & push lên lại remote
Done!
Git list command 7: Git stash
Git stash được sử dụng khi muốn lưu lại các thay đổi chưa commit, thường rất hữu dụng khi muốn đổi sang 1 branch khác mà lại đang làm dở ở branch hiện tại.
git stash save
Dòng 5 vừa được thêm vào
git stash apply Lưu toàn bộ nội dung công việc đang làm dở
Workspace trở về trạng thái sau lần commit cuối cùng, (dòng 5 không còn xuất hiện)
git stash list
Xem lại danh sách các lần lưu thay đổi
git stash list
git stash apply
lấy lại thay đổi đã lưu stack
git stash apply stash@{number_of_stack}
Các câu lệnh khác
git stash pop stash@{number_of_stack} xoá nội dung thay đổi lưu trong stack
git stash clear xoá toàn bộ stack
Bài tập GIT buổi 1
Git list command 1: init, clone, add remote, branch
Init
Khởi tạo git ở local.
git init
Clone
Tạo bản sao git trên remote về local theo url
git clone <url>
Remote add
Thêm một tham chiếu từ xa đến local
git remote add <alias_name_for_remote> <url>
Show branch
Xem các nhánh đang có trên local, tham số -a cho phép xem các nhánh đang có trên alias_remote
git branch
Git list command 2: Create branch, delete branch, Create & checkout branch, Add file, Commit
create branch
Tạo 1 nhánh
git branch <new_branch_name>
delete branch
Xóa 1 nhánh
git branch -d <branch_name>
Create & checkout branch
Tạo 1 nhánh và chuyển qua nhánh vừa tạo
git checkout -b name-branch
add file to stage
Stage 1 file trước khi commit `git add
commit
Lưu lại các chỉnh sửa vào local repo với 1 message
git commit -m "message"
Git list command 3: commit --amend, git log, git diff (git diff file, git diff 2 branch), lệnh checkout 1 file
commit --amend
Chỉnh sửa lại commit gần nhất (override)
git commit --amend
log
Xem lịch sử các commit
git log
diff
Xem sự khác nhau giữa đoạn code hiện tại (working tree) với commit gần nhất (HEAD)
git diff HEAD <file_name>
Xem sự khác nhau giữa 2 branchgit diff <branch_name1> gif diff <branch_name2>
Checkout 1 file
Reset file về commit gần nhất đối với working tree. `git checkout --
Git list command 4: reset, git revert, git log --oneline
reset
Back local repo về 1 commit cũ (index & working tree)
git reset --hard HEAD~<numbers_of_commit>
Undo commitgit reset --soft HEAD~<numbers_of_commit>
Back local repo về 1 commit cũ (index)git reset HEAD~<numbers_of_commit>
~git reset --mixed HEAD~<numbers_of_commit>
revert
Back local repo về 1 commit cũ (SHA_commit) và tạo ra 1 commit mới
git revert <SHA_commit>
log --oneline
Xem lịch sử commit với mỗi commit được show trong 1 dòng
git log --oneline
Git list command 5: git fetch, git pull, git push
git push
Đẩy dữ liệu từ local lên remote theo tên nhánh
git push <remote_repo_alias> <branch_name>
git fetch
Tiến hành lấy lịch sử mới nhất từ remote về và đồng bộ với ref_remote trên local
git fetch
git pull
Đồng bộ dữ liệu từ remote về local với 1 nhánh xác định
git pull <remote_alias> <branch_name>
Git list command 6: conflict và resolve conflict
Making conflict
Tạo nội dung trong cùng file abc.html nhưng ở 2 nhánh với phần cuối thì nội dung khác nhau Sau đó push cả 2 branch tử local lên remote và thực hiên pull_request từ develop đến master, sẽ xuất hiện conflict
Resolve conflict
Kéo nội dung từ master trên remote về nhánh develop và tiến hành resolve conflict Ở đây, nội dung từ <<<HEAD đến ==== chỉ ra content hiện tại ở nhánh đang đứng, và sau === đến <<<sha_commit chỉ ra content vừa được bổ sung vào, có thể giữ lại 1 phần hoặc giữ lại cả 2 phần. sau khi fix thì commit & push lên lại remote Done!
Git list command 7: Git stash
Git stash
được sử dụng khi muốn lưu lại các thay đổi chưa commit, thường rất hữu dụng khi muốn đổi sang 1 branch khác mà lại đang làm dở ở branch hiện tại.git stash save
Dòng 5 vừa được thêm vào
git stash apply
Lưu toàn bộ nội dung công việc đang làm dở Workspace trở về trạng thái sau lần commit cuối cùng, (dòng 5 không còn xuất hiện)git stash list
Xem lại danh sách các lần lưu thay đổi
git stash list
git stash apply
lấy lại thay đổi đã lưu stack
git stash apply stash@{number_of_stack}
Các câu lệnh khác
git stash pop stash@{number_of_stack}
xoá nội dung thay đổi lưu trong stackgit stash clear
xoá toàn bộ stack