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 stack, và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.