Reset your branch – Đặt lại nhánh
Mục lục
Một trong những tính năng nâng cao của git đó là đặt lại branch của bạn. Để quay trở lại (revert) những lần commit trước. Mặc định sẽ quay lại lần commit gần nhất, nhưng bạn có thể dùng commit hash để quay lại commit cụ thể. Lệnh này có 2 tuỳ chọn khác nhau; –hard và –sort.
git reset --hard <#commit hash>
Lệnh này sẽ đưa branch của bạn về những lần commit cụ thể. Tất cả commit thực hiện sau sẽ được hoàn tác. Dự án của bạn sẽ quay lại chính xác như thời điểm này.
git reset --sort <#commit hash>
Lệnh này cũng sẽ đưa branch của bạn về những lần commit cụ thể, nhưng sẽ giữ tất cả thay đổi của bạn ở local.
Từ thời điểm này, nếu bạn thay đổi bất kỳ điều gì trong tệp đó, thì sẽ được đối chiếu trong Git status.
Git rebase
Một trong những tính năng của git hữu dụng nhất, Git rebase sẽ fetch lần commit cuối từ branch master và đặt code của bạn vào đầu branch master.
-
Lưu ý: Việc này có thể tạo ra vấn đề:
-
Ví dụ: Nếu branch của bạn đang hoạt động, tách branch master trong 1 thời gian dài sau đó bạn muốn rebase nó với branch master, điều này có thể gây sự cố, bởi vì sau 1 khoảng thời gian, sẽ có nhiều thay đổi trong branch master gây ảnh hương lên branch của bạn, hoặc phá vỡ các tính năng của ứng dụng.
-
Để khắc phục tình trạng này, bạn cần rebase thường xuyên với branch master.
-
Git log
Để xem lại thay đổi trên code của bạn. Git log sẽ chỉ ra commit logs. Lệnh này giúp bạn có thể xem
lại những hành động trước đó. Nếu bạn gõ “git log” vào termial trong dự án của bạn, bạn sẽ xem 1 danh sách logs như hình bên dưới.
-
Ngoài ra bạn cũng có thể xem 5 commit gần nhất bằng lệnh sau:
git log -5
bạn có thể thay 5 bằng bất kì số nào
git log --oneline --graph
lệnh này để xem log trên từng dòng:
-
Hoặc để xem riêng hoạt động của một người dùng:
git log --author <#author name>
-
Bạn có thể xem commit theo format:
git log --pretty=format:"The commit %h is applied by %cn"
Git stash
Git stash có thể dùng để lưu code của bạn mà không cần thực hiện commit. Khi bạn chạy lệnh:
git stash
code sẽ được lưu local commit tạm thời vào branch của bạn. Nó chỉ được sử dụng cho mục đích cá nhân vì không thể push một stash lên remote respository.
Khi bạn thực hiện nhiều lần thay đổi trên code và sử dụng git stash để lưu, sử dụng:
git stash list
để xem danh sách, có thể trông giống như:
Bạn có thể dễ dàng thực hiện việc lựa chọn những stash cụ thể trong danh sách (nếu bạn có nhiều hơn 1 stash) bằng cách sử dụng:
git stash apply stash stash@{1}
-
Số 1 biểu thị cho stash cũ nhất, mới nhất là số 0.
Nếu bạn không muốn sử dụng code đã apply bằng stash. Bạn có thể dùng lệnh:
git checkout .
để resets tất cả code chưa được commit.
-
Lưu ý, bạn có thể xoá từng stash trong danh sách bằng cách sử dụng:
git stash drop stash@{2}
hoặc:
git stash clear
để xoá tất cả.
Sử dụng .gitignore global
Khi tạo một dự án mới bạn phải khai báo các file/ folder không cần upload lên server trong file .gitignore.
Nếu các file/ folder này không nằm trong project mà tự động sinh ra từ máy hay phần mềm bạn đang dùng, ví dụ bạn dùng MacOs hay có file .DS_STORE, Thumbs.db, .Spotlight-V100… sinh ra:
nếu bạn code android thường sinh ra những file .gradle hay thư mục /build thường rất nặng.
lúc này bạn nên dùng .gitignore global.
Để sử dụng .gitignore global, bạn cần mở termial lên và gõ lệnh sau:
-
Dành cho macOS, Linux, Windows dùng git bash:
git config --global core.excludesfile '~/.gitignore'
-
Dành cho Windows dùng cmd, powershell:
git config --global core.excludesfile "%USERPROFILE%\.gitignore"
Sửa file .gitignore vừa sinh ra và lưu lại. File .gitignore tham khảo:
# Mac OS X hidden files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
#Vim swap files
.*.sw?
#PhpStorm
.idea
#vs code
.vscode
#Sublime Text
*.sublime-project
#Node
node_modules
npm-debug.log
yarn-error.log
.phpunit-watcher-cache.php
Lưu ý:
-
Khi bạn tạo 1 project mới, rất có thể IDE sẽ tự tạo file .gitignore cấu hình sẵn với project.
-
Việc tạo .gitignore phù hợp sử dụng cá nhân.
Tổng kết
Thank for watching!
Leave a Reply