fbpx

Mất Mã Nguồn? Cách Dùng Git Để Khôi Phục (Cho Người Mới Bắt Đầu)

Khoi phục mã nguồn với Git

Trong khi lập trình, chắc chắn bạn sẽ không thể tránh khỏi những sự cố như xoá nhầm file, commit sai hoặc thậm chí là làm mất mã nguồn của một phần dự án.

Đừng lo lắng, trong bài viết này, mình sẽ hướng dẫn bạn sử dụng các câu lệnh Git để khôi phục mã nguồn về trạng thái ban đầu.

Git là gì? Tại sao lập trình viên nào cũng cần PHẢI biết!

1. Git Restore

Trước tiên, chúng ta sẽ cùng nhau tìm hiểu câu lệnh git restore.

Giả sử, bạn vô tình sửa đổi file index.html và muốn quay lại trạng thái trước khi chỉnh sửa, bạn có thể sử dụng lệnh:

git restore index.html

Lệnh git restore được sử dụng để khôi phục file index.html về trạng thái tại commit gần nhất của nhánh hiện tại.

Lệnh git restore

Tuy nhiên, bạn cần lưu ý là lệnh git restore chỉ khôi phục file index.html tại khu vực Working Directory và không có tạo thêm hoặc xoá đi bất kỳ commit nào khác.

Miễn Phí: Đột Phá Nền Tảng Git Từ Con Số 0

Bên cạnh đó, nếu bạn muốn khôi phục file index.html về trạng thái tại một commit cụ thể do bạn tự chỉ định, thì bạn có thể sử dụng lệnh git restore với tuỳ chọn --source để chỉ định mã hash của commit:

git restore --source=<mã hash của commit> index.html

Trong trường hợp khác, nếu bạn thêm file index.html vào khu vực Staging, nhưng sau đó đổi ý và muốn xoá nó khỏi khu vực Staging.

Bạn có thể sử dụng lệnh git restore với tuỳ chọn --staged, theo sau là tên file mà bạn muốn xoá khỏi khu vực Staging:

git restore --staged index.html

2. Git Reset

Tiếp theo, chúng ta hãy cùng nhau tìm hiểu lệnh git reset.

Lệnh git reset giúp bạn khôi phục mã nguồn quay về trạng thái của commit được chỉ định.

Ví dụ, bạn đang ở nhánh chuc-nang-1 và bạn đã thực hiện 4 commit trên nhánh này.

Bạn muốn quay lại commit B và loại bỏ các sự thay đổi trong commit C và D, bạn có thể sử dụng lệnh git reset theo sau là mã hash của commit B:

git reset <mã hash của B>

Lúc này, con trỏ HEAD và nhánh chuc-nang-1 sẽ trỏ về commit B. Tuy nhiên, các sự thay đổi trong commit C và D không toàn toàn bị mất đi mà vẫn được bảo tồn tại khu vực Working Directory.

Lệnh git reset

Trong trường hợp nếu bạn không muốn bảo tồn các sự thay đổi trong commit C và D của khu vực Working Directory thì bạn có thể sử dụng thêm tuỳ chọn --hard cho lệnh git reset:

git reset --hard <mã hash của B>

Tuy nhiên, bạn hãy cẩn thận khi sử dụng tuỳ chọn này, tại vì những thay đổi trong commit C và D sẽ bị xoá vĩnh viễn và không thể khôi phục lại được.

3. Git Revert

Cuối cùng là lệnh git revert.

Lệnh git revert có chức năng khá tương đồng với lệnh git reset, là giúp bạn khôi phục mã nguồn quay lại trạng thái của commit được chỉ định.

Tuy nhiên, có một sự khác biệt quan trọng giữa lệnh git revert và lệnh git reset mà bạn cần lưu ý:

Lệnh git revert tạo ra một commit mới để đảo ngược các sự thay đổi:

Lệnh git revert

Trong khi lệnh git reset thì di chuyển con trỏ HEAD và nhánh hiện tại, điều này có thể làm thay đổi lịch sử commit.

4. Khi nào nên sử dụng lệnh git revert và git reset?

Nếu bạn muốn khôi phục một commit đã được đẩy lên GitHub, bạn nên sử dụng lệnh git revert để tránh bị xung đột với những thành viên khác trong nhóm.

Tại vì lệnh git revert không làm thay đổi lịch sử commit trước đó.

Còn nếu bạn muốn khôi phục một commit chưa được đẩy lên GitHub, bạn có thể sử dụng lệnh git reset.

5. Miễn Phí: Học Git Bài Bản Từ Con Số 0

Việc thành thạo các câu lệnh GIT sẽ giúp bạn tiết kiệm thời gian rất nhiều khi làm việc trong các dự án thực tế.

Nếu bạn muốn có một hệ thống kiến thức GIT bài bản từ con số 0, bạn có thể bắt đầu ngay hoàn toàn miễn phí với khoá học GIT của LetDiv nhé!

https://letdiv.com/git-video/

Tùng ViO

Tùng ViO

Mình là Tùng ViO, hiện tại đang là Founder và cũng là giảng viên tại LetDiv. Rất hân hạnh được làm quen với bạn!