Vấn đề là một stash bao gồm hai hoặc ba cam kết. Khi stashing, cây làm việc được sửa đổi được lưu trữ trong một cam kết, chỉ mục trong một cam kết, và (nếu sử dụng cờ --include-untracked
) bất kỳ tệp nào không được theo dõi trong cam kết thứ ba.
Bạn có thể thấy điều này nếu bạn sử dụng gitk --all
và thực hiện stash.

[email protected]{0}
điểm để cam kết có chứa các cây làm việc.
Bạn có thể tuy nhiên anh đào-pick từ đó cam kết nếu bạn làm
git cherry-pick "[email protected]{0}" -m 1
Lý do mà cherry-pick
nghĩ rằng stash là một hợp nhất, và do đó cần tham số -m 1
là stash cam kết có cha mẹ multpile, như bạn thấy trong biểu đồ.
Tôi không chắc chắn chính xác những gì bạn muốn đạt được bằng cách chọn hoa anh đào. Một giải pháp thay thế có thể là tạo một nhánh từ stash. Cam kết thay đổi ở đó và hợp nhất chúng vào nhánh hiện tại của bạn.
git stash branch stashchanges
git commit -a -m "changes that were stashed"
git checkout master
git merge stashchanges
Nguồn
2013-05-31 17:05:11
>> Tôi không chắc chắn chính xác những gì bạn muốn đạt được bằng cách chọn cherry? - Trong trường hợp của tôi, một hợp nhất đơn giản sẽ là tốt bằng cách làm stash áp dụng/pop. Nhưng, tôi đã tự hỏi liệu tôi có thể chọn một vài thay đổi từ những thay đổi được lưu trữ không. Cảm ơn bạn đã trả lời. –