Đây là chiến lược của tôi để giải quyết vấn đề.
Báo cáo vấn đề
Chúng tôi cần thực hiện thay đổi trong hơn 10 tệp. Chúng tôi đã cố gắng PULL (git pull origin master)
, nhưng Git hét lên:
lỗi: Thay đổi cục bộ của bạn đối với các tệp sau sẽ bị ghi đè bằng cách hợp nhất: Vui lòng, cam kết thay đổi của bạn hoặc bỏ qua chúng trước khi bạn có thể hợp nhất.
Chúng tôi đã cố gắng thực hiện commit
và sau đó pull
, nhưng họ cũng không làm việc.
Giải pháp
Chúng tôi thực sự đang ở giai đoạn bẩn , vì các tệp nằm trong "Khu vực tổ chức" hay còn gọi là "Khu vực chỉ mục" và một số nằm trong "Khu vực đầu" hay còn gọi là "thư mục Git cục bộ". Và chúng tôi muốn lấy các thay đổi từ máy chủ.
Kiểm tra liên kết này để biết thông tin về các giai đoạn khác nhau của Git một cách rõ ràng: Các giai đoạn GIT
Chúng tôi đã làm theo các bước sau
git stash
(điều này làm cho thư mục làm việc của chúng tôi sạch sẽ. Các thay đổi của bạn được lưu trữ trên ngăn xếp bởi Git).
git pull origin master
(Kéo các thay đổi từ máy chủ)
git stash apply
(Áp dụng tất cả các thay đổi từ ngăn xếp)
git commit -m 'message'
(Cam kết thay đổi)
git push origin master
(Đã đẩy các thay đổi đến máy chủ)
git stash drop
(Thả chồng)
Hãy hiểu khi nào và tại sao bạn cần stashing
Nếu bạn ở trạng thái bẩn , có nghĩa là bạn đang thực hiện thay đổi trong tệp của mình và sau đó bạn bị ép buộc, vì bất kỳ lý do gì, phải kéo hoặc chuyển sang chi nhánh khác cho một số công việc rất khẩn cấp, vì vậy tại thời điểm này, bạn không thể kéo hoặc chuyển đổi cho đến khi bạn cam kết thay đổi của bạn. Các stash
lệnh là ở đây như một bàn tay giúp đỡ.
Từ cuốn sách ProGIT , tái bản lần 2:
Thông thường, khi bạn đang làm việc trên một phần của dự án, mọi thứ ở trong tình trạng lộn xộn và bạn muốn chuyển đổi chi nhánh một chút để làm việc khác. Vấn đề là, bạn không muốn thực hiện một công việc nửa vời chỉ để bạn có thể quay lại điểm này sau. Câu trả lời cho vấn đề này là lệnh git stash. Stashing có trạng thái bẩn trong thư mục làm việc của bạn - nghĩa là, các tệp được theo dõi đã sửa đổi của bạn và thay đổi theo giai đoạn - và lưu nó vào một đống các thay đổi chưa hoàn thành mà bạn có thể áp dụng lại bất cứ lúc nào.