2012-05-02 19 views
8

Tôi đã thực hiện một thao tác kéo và thấy rằng một trong các tệp của tôi cần được hợp nhất.Làm thế nào để cất giấu mã chưa được tích hợp trong git?

Tôi thực sự không muốn hợp nhất tệp đó ngay bây giờ - Tôi có một nhánh khác mà tôi cần phải làm việc và sau này tôi sẽ quay lại nhánh này để giải quyết việc hợp nhất.

Hành động tốt nhất cho tôi để "hoàn tác" thao tác kéo này là gì? Hoặc làm thế nào tôi có thể giữ hợp nhất này cho đến khi tôi đã sẵn sàng để đối phó với nó? Tôi cần làm gì để có thể thay đổi các chi nhánh, nhưng sau đó trở về trạng thái chưa được nhúng này trong mã của tôi?

Trả lời

10

Đây là một ví dụ điển hình về lý do tại sao tôi tính toán tìm nạp thay vì kéo là một ý tưởng hay.

Những gì bạn có thể làm là chỉ cần đặt lại chi nhánh của bạn để nó về trạng thái trước ..

git reset --hard HEAD~1 

hoặc nếu bạn đã ở giữa việc hợp nhất (giải quyết xung đột), chỉ cần hủy bỏ nó ..

git merge --abort 

kết thúc thay đổi của bạn và sau đó ...

git fetch 
...have a look at what's changed 
git merge origin/branch 

Một cách dễ dàng để xem những gì đã thay đổi là để làm

git cherry branch origin/branch -v --abbrev=6 

Điều đó sẽ cung cấp cho bạn một danh sách các cam kết đó là tại các chi nhánh gốc nhưng không phải trong chi nhánh của bạn ... nếu bạn cần các chi tiết về những gì đã thay đổi trong đó cam kết sau đó

git show commit --name-status 
1

Nếu bạn đang muốn thổi bay các thay đổi trên HEAD hiện tại, git reset --hard là vé của bạn. Điều này sẽ cho phép bạn trao đổi các chi nhánh và quay lại nhánh này và làm lại quá trình hợp nhất này vào một ngày sau đó.

Nếu bạn đang rebasing, git rebase --abort cũng sẽ hủy hoạt động.

Các vấn đề liên quan