How to use GIT command line

Git clone: lấy một project mới về

Git checkout -b (branh-name): tách và tạo nhánh mới

Git checkout (branch-name): chuyển nhánh

Git pull: lấy code từ remote về local branch

Git add .  or Git add -A: chấp nhận các thay đổi trong code

Git commit -m “meassage”: đưa code lên local

Git push: đẩy code từ local lên remote branch

Git fetch: lấy code về remote/origin branch, khi khi đang trên bất kỳ nhánh nào.

Git merge (branch-name): gộp nhánh bất kỳ vào nhánh hiện tại (đang được checkout)

Thay đổi commit mới nhất:

git commit --amend -m "New commit message."

Xóa nhánh ở local

Git branch -d <branch_name>: xóa an toàn, chỉ xóa được khi đã được merge

Git branch -D <branch_name>: hard delete, xóa bất kể branch đã được merge hay chưa.

Xóa nhánh trên remote

git push –delete <remote_name> <branch_name>

Ex: git push –delete origin kiditran_branch

Lưu lại thay đổi khi có một việc dở dang xen ngang, mà chưa muốn tạo commit

Git stash save: lưu thay đổi

Git stash list: xem lại danh sách các thay đổi đã lưu

Git stash apply: Lệnh này cơ bản là sẽ lấy stash cuối cùng (gần nhất) để apply nó vào code của bạn. đúng kiểu stackvào cuối – ra đầu. Trên ví dụ trên thì bạn biết là nó sẽ lấy thằng nào để apply rồi chứ! stash@{0}.

Git stash apply stash@{1}: muốn apply một thằng khác thì thế nào nhỉ? đơn giản lắm lấy thằng id của stash đó ra thôi chứ sao

Git stash pop: Quả này thì cũng như git apply thôi! mỗi tội là thanh niên này rất sạch sẽ rút ra là xoá mọi dấu vết luôn => nó sẽ xoá stash đó khỏi đống stash của bạn thôi. Dưới dây là ví dụ này:

Git stash clear: Xoá toàn bộ stash bạn đang lưu trữ trong repo. nó có thể sẽ không revert lại được nên chú ý nhé!

Xóa bỏ trạng thái của một vài commit

Git revert <commit_id>:  commit_id chỉ định sẽ bị xóa bỏ, các commit mới hơn vẫn được giữ nguyên

Git reset –hard  <commit_id>: đưa head về vị trí commit_id, loạt bỏ tất cả các thay đổi, stage sau thời điểm commit_id reset.

Delete a remote commit after git reset –hard & push to remote

To remove a commit you already pushed to your origin or to another remote repository you have to first delete it locally like in the previous step and then push your changes to the remote.

git push origin +master

Notice the + sign before the name of the branch you are pushing, this tells git to force the push. It is worth to mention that you should be very careful when deleting commits because once you do it they are gone forever. Also, if you are deleting something from a remote repository make sure you coordinate with your team to prevent issues.

 

Xóa untracked files (VD: Những file mới và nhưng file được tạo tự động bởi chương trình)

git clean -f

Xóa untracked directories (VD: Thư mục mới và thư mục được tạo tự động bởi chương trình)

git clean -fd

Merge branch không cần checkout branch đích

git fetch origin branchB:branchB

git fetch <remote> <sourceBranch>:<destinationBranch>

Phân biệt các branch: local, remote & origin

Trước khi push code lên remote cần phải kiểm tra xem trên remote có bất kỳ thay đổi nào ở các nhánh không? Bằng cách dùng Git Fetch.

Git fetch: lấy code từ Remote về nhánh origin/remote trên máy, k cần phải chuyển sang nhánh develop để pull code về.

EX: lấy code từ nhánh Develop trên remote về nhánh orgin/develop. Dùng lệnh Git Fetch.

Bây giờ code của origin/develop trên máy đã GIỐNG với code ở trên Develop remote

Git merge origin/develop: để merge tất cả code từ develop vào branch hiện tại

NOTE: khi này code mới nhất trên develop remote chưa được lấy về develop local, mà chỉ lấy về branch origin/develop, nếu muốn lấy trên local cần phải checkout nhánh develop và git pull origin develop.

Sau khi merge, nếu có bất kỳ conflict nào cần phải xử lý ngay trước khi push lên remote.