+14

Một số câu lệnh git không phải ai cũng hay dùng

Xin chào mọi người, hôm nay mình xin chia sẻ một số câu lệnh git hay ho mà không phải ai cũng biết và tận dụng nó. Mình xin bỏ những phần lý thuyết ban đầu về GIT mà đi thằng vào vấn đề chính của bài viết này luôn nhé.

1. Git stash

Lưu lại thay đổi

Câu lệnh git stash sử dụng khi mà bạn muốn lưu lại các thay đổi mà bạn chưa commit, sẽ rất hữu dụng nếu bạn đang làm dở codebranch hiện tại và muốn checkout qua một branch khác.

Để lưu toàn bộ code đang làm dở, các bạn có thể sử dụng lệnh như sau:

git stash save "save 1"

hoặc

git stash save "save 2" -u

Sự khác biệt giữa 2 câu lệnh git stash save ở trên đó là: stash save đầu tiên sẽ chỉ lưu lại những file đã tồn tại trước đó, nếu thêm option -u sẽ lưu luôn những file mới chưa từng tồn tại trong repo.

Bạn có thể git stash bao nhiêu lần tuỳ thích và mỗi lần đó git sẽ lưu toàn bộ lần thay đổi đó như 1 phần tử trong 1 stack.

Lấy lại thay đổi

Để xem danh sách các stash bạn đang lưu chúng ta sử dụng câu lệnh:

git stash list

Nếu bạn muốn xem nội dung của cả thay đổi thì sử dụng thêm option -p:

git stash list -p

Hoặc xem nội dung cụ thể của một thay đổi cụ thể nào đó:

git stash show stash@{index}

Khi muốn apply lại thay đổi từ stash nào đó:

git stash apply stash@{index}

hoặc

git stash pop index

Xoá các thay đổi không cần thiết

Khi bạn muốn lấy lại thay đổi và xoá nội dung thay đổi lưu trong stack:

git stash apply stash@{index}
git stash drop stash@{index}

hoặc

git stash pop stash@{index}

Hay là khi bạn muốn xoá toàn bộ thay đổi đang lưu:

git stash clear

Lưu ý: index là vị trí của stash. Demo thành quả nhé:

2. Git cherry-pick

Vậy câu hỏi git cherry-pick được sử dụng lúc nào?

Khi bạn muốn đưa các thay đổi từ các commit nằm trên branch khác vào branch hiện tại của bạn. Cú pháp đơn giản như sau:

git cherry-pick id_commit

Nếu cherry-pick commit xảy ra conflict, bạn chỉ cần fix conflict và thêm nó vào commit là okay nhé. Và nếu muốn cherry-pick một lần nhiều commit chúng ta chỉ cần thêm vào như sau:

git cherry-pick id_commit_1 id_commit_2 id_commit_n

Sau khi cherry-pick xong thì các bạn push code lên như bình thường nhé.

3. Git rebase -i HEAD~n

Nếu dự án bạn đang làm yêu cầu 1 pull request chỉ được một commit duy nhất trong khi bạn push nhiều commit thì câu lệnh này sẽ giúp bạn làm được điều đó.

Đầu tiên thử log xem hiện tại bạn đang có bao nhiêu commit đã nhé:

git log --oneline

Sau khi quan sát hiện tại có bao nhiêu commit chúng ta thực hiện bước quan trọng này nhé:

git rebase -i HEAD~n // n là số commit mà chúng ta biết được thông qua câu lệnh trên nhé

Sau đó nó sẽ hiển thị màn hình như bên dưới:

Chúng ta sẽ nhấn phím insert, di chuyển đến commit cần gộp, sửa pick thành fixup sau đó chúng ta nhấn phím esc, nhập :wq để lưu thay đổi. Sau đó tiếp hành push lên là okay nhé. Thành quả sau khi gộp:

Trên là những chia sẻ của mình, hy vọng sẽ giúp ích cho các bạn. Nếu ai có câu lệnh nào hay ho nữa comment bên dưới để cùng nhau chia sẻ kiến thức nhé. Cảm ơn các bạn.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí