Cách di chuyển các thay đổi sang nhánh khác trong Git

Tác giả Starlink, T.M.Hai 14, 2024, 03:43:54 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Trong khi Git theo dõi những thay đổi hàng ngày của bạn, nó cũng có các hệ thống như nhánh giúp bạn sắp xếp.

  • Git giúp sắp xếp các thay đổi bằng các nhánh, nhưng việc cam kết sai có thể gây ra vấn đề.
  • Để di chuyển các thay đổi, hãy chuyển nhánh bằng lệnh "git checkout <branch>".
  • Để sửa lỗi đã mắc phải, hãy thiết lập lại nhẹ trước khi chuyển đổi để những thay đổi của bạn chưa được xác nhận.


Trong khi Git theo dõi những thay đổi hàng ngày của bạn, nó cũng có các hệ thống như nhánh giúp bạn sắp xếp. Tuy nhiên, nếu bạn không cẩn thận, bạn có thể gặp phải các vấn đề như commit và thay đổi được thực hiện ở nhánh sai, có thể khó giải quyết nếu không có lệnh phù hợp.

1. Di chuyển những thay đổi (Nếu bạn chưa cam kết)

Git giám sát toàn bộ thư mục của bạn, nhưng những thay đổi bạn thực hiện đối với các tệp không bị ràng buộc với một nhánh Git cụ thể cho đến khi bạn commit chúng. Bạn có thể di chuyển các nhánh và mang những thay đổi đó theo bạn.

Lựa chọn đơn giản nhất là chỉ cần chuyển đổi nhánh, nhưng điều này chỉ hiệu quả nếu hai nhánh bạn nhắm tới có lịch sử trùng khớp :

Mã nguồn [Chọn]
git checkout feature
Bạn có thể giải quyết vấn đề này theo một số cách. Cách đầu tiên là tạo một nhánh mới, sau đó hợp nhất các lịch sử phân kỳ:

Mã nguồn [Chọn]
git checkout -b tempfeature

git checkout feature

git merge tempfeature

Bạn cũng có thể sử dụng git stash để lưu trữ các thay đổi để sử dụng sau và áp dụng lại chúng trên một nhánh mới:

Mã nguồn [Chọn]
git stash

git switch feature

git stash apply

2. Di chuyển cam kết (Nếu bạn đã cam kết)

Nếu bạn đã cam kết, đừng lo lắng; bạn luôn có thể thiết lập lại mềm, do đó các cam kết không phải là cuối cùng cho đến khi được đẩy lên kiểm soát nguồn từ xa. Nếu bạn đã làm điều đó, bạn vẫn có thể khắc phục sự cố, nhưng hồ sơ về lỗi của bạn sẽ tồn tại trong lịch sử Git của bạn, vì vậy tốt nhất là thực hiện cục bộ trước khi đồng nghiệp của bạn nhìn thấy.

Để hoàn tác các cam kết, bạn có thể chỉ cần thiết lập lại mềm, thường chỉ cần hoàn tác cam kết cuối cùng đã thực hiện, nhưng bạn cũng có thể truyền tham chiếu đến ID cam kết:

Mã nguồn [Chọn]
git reset HEAD~1
Điều này sẽ đưa bạn đến trạng thái "chưa cam kết", sau đó bạn có thể sử dụng các phương pháp trên để khắc phục sự cố.

Ngoài ra, bạn có thể sử dụnggit cherry-pick. Lệnh này sao chép các commit từ nhánh này sang nhánh khác và là một cách hay để chọn ra các commit và di chuyển chúng đến các nhánh mới một cách gọn gàng.

Chạy git logđể tìm ID của cam kết bạn muốn hoàn nguyên:

Mã nguồn [Chọn]
git log
Sau đó kiểm tra nhánh tính năng, giả sử những thay đổi của bạn đã được cam kết và chạy cherry-pick:

Mã nguồn [Chọn]
git switch feature

git cherry-pick

Sau đó, vẫn sẽ có một commit trùng lặp trên nhánh chính. Bạn có thể đặt lại commit này và hủy bỏ các thay đổi nếu nhánh tính năng có thứ tự phù hợp hoặc giữ nguyên và để Git sắp xếp sau khi bạn hợp nhất.

Nếu bạn muốn tìm hiểu thêm về cách sử dụng Git, hãy đọc về cách để biết bạn đang ở nhánh nào hoặc xem bạn có biết tất cả các lệnh Git cơ bản hay không.