Git cheat sheet for beginer

Các lệnh git cần nhớ để khỏi ăn hành với git

Git configuration

  1. Tạo ssh key

    1
    $ ssh-keygen -t rsa -b 4096 -C "[email protected]"
  2. Cấu hình user và email

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

Day-to-day Work

  • Xem danh sách thay đổi mà bạn cần add hoặc commit. Branch hiện tại đang đứng là gì.
    1
    $ git status

Tips: Khuyến khích thường xuyên xem git status để đỡ ngậm hành.

  • Thêm file vào staging.
    1
    $ git add <file>

Tips: git add . để thêm toàn bộ các thay đổi ở thư mục hiện tại.

  • Lỡ tay add file, giờ cần gỡ ra khỏi staging

    1
    $ git reset <file>
  • Commit file đã được staging.

    1
    $ git commit -m "vừa làm gì thì viết vào"

Tips: Commit toàn bộ thay đổi git commit -am "message có tâm"

  • Lỡ tay commit, redo để commit lại cho cẩn thận

    1
    $ git reset HEAD~
  • Commit sử dụng tên tuổi người khác

    1
    $ git commit -am "message có tâm" --author="Victim <[email protected]>"

Tips: nên thông báo cho khổ chủ trước, hạn chế sử dụng để tránh đổ vỡ tình anh em về sau.

  • Đẩy toàn bộ file đang dở tay sửa vào stash

    1
    $ git stash
  • Kéo lại thay đổi từ stash

    1
    $ git stash pop

Tips: quên mất có những cái gì trong stash, gõ: git stash list

  • Clear stash

    1
    $ git stash drop
  • Sửa file chán chê, giờ muốn quay lại trạng thái ban đầu

    1
    $ git checkout -- <file>

Tips: checkout file từ branch khác: git checkout <branch> -- <file>

  • Xoá toàn bộ file chưa được track bởi git
    1
    $ git clean -df

Tips: nắn tay 3 lần trước khi gõ. Để xem nó sẽ xoá file gì cho chắc ăn: git clean -dn

  • Reset files về lại mốc commit nào đó. Toàn bộ thay đổi giữ nguyên như chưa từng commit.
    1
    $ git reset <branch>

Tips: Muốn reset về master của server: git reset origin/master. Xài cái này để làm thành 1 commit đẹp chuẩn bị merge vào master.

  • Reset về mốc commit nào đó. Xoá hết toàn bộ thay đổi.
    1
    $ git reset --hard

Tips: cực kỳ cẩn thận khi gõ. Chỉ dùng khi muốn xoá hết làm lại từ đầu.

  • Xoá tất cả branches ở local mà đã được merge vào master
    1
    $ git branch --merged >/tmp/merged-branches && vi /tmp/merged-branches && xargs git branch -d </tmp/merged-branches

Tips: cái này có thể sẽ xoá cả master ở local. Khi editor hiển thị ra muốn giữ không xoá branch nào thì sửa.

Command Chức năng Lưu ý
git clone path-to-repository Tạo clone của một repository lên thư mục đang đứng Nên config ssh key cho để sử dụng git thuận tiện hơn
git push Đẩy những commit sau lần push trước lên branch ở origin Nên pull trước để update thay đổi ở origin branch. Hạn chế sử dụng git push -f. Thao tác này sẽ thay đổi toàn bộ branch ở trên server giống với branch ở local.
git pull Update toàn bộ những thay đổi của branch ở trên server
git checkout -b branch-foo Tạo mới branch tên là branch-foo từ branch đang đứng và chuyển sang branch-foo Những thay đổi chưa commit sẽ chuyển sang branch-foo
git checkout branch-foo Chuyển sang branch có tên là branch-foo
git branch Liệt kê ra toàn bộ branch trên repository và chỉ ra branch mình đang đứng
git branch -d branch-foo Xoá branch có tên là branch-foo
git push origin branch-foo Đẩy branch có tên là branch-foo lên remote repository
git fetch origin Cập nhật origin ở remote
git reset origin/master Reset toàn bộ commit ở branch hiện tại giống với trạng thái của branch master Nhưng thay đổi vẫn được giữ nguyên nhưng chưa được add và commit vào
git merge branch-foo Merge branch hiện tại với branch có tên là branch-foo Nên sử dụng chức năng merge để solve conflict