Git nâng cao

Git nâng cao

Reset your branch – Đặt lại nhánh

Một trong những tính năng nâng cao của git đó là đặt lại nhánh 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 một 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ề 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.

git rebase
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 chạy lệnh git log trong dự án của bạn, bạn sẽ xem 1 danh sách logs như hình bên dưới

git log
git log

Ngoài ra bạn cũng có thể xem n commit gần nhất bằng lệnh sau:

git log -n

Xem log trên từng dòng

git log --oneline --graph
git log oneline

Xem riêng hoạt động của một người dùng

git log --author <#author name>
git log author

Xem commit theo format

git log --pretty=format:"The commit %h is applied by %cn"
git log format

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 vào 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

git stash
git stash

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

git stash list
git stash list

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 lệnh

git stash apply stash stash@{1}

số 1 biểu thị cho stash cũ nhất, mới nhất là số 0

git stash apply

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.

git checkout .

Bạn có thể xoá từng stash trong danh sách bằng cách sử dụng

git stash drop stash@{2}
git stash drop

hoặc git stash clear để xóa tất cả

git stash clear
git stash clear

Sử dụng .gitignore

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:

gitignore

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

android

Dưới đây là 1 file .gitignore mẫu, cho một dự án thực tế

# Mac OS X hidden files

.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

#Vim swap files
.*.sw?

#PhpStorm
.idea

#vscode
.vscode

#Sublime Text
*.sublime-project

#Node
node_modules
npm-debug.log
yarn-error.log
.phpunit-watcher-cache.php
  • 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

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *