2011-07-07 30 views
5

Tôi muốn tạo một gói git chỉ chứa các cam kết trong stash của tôi mà không phải là điểm mà stash dựa trên. Tôi muốn làm điều này trái ngược với việc gửi mọi cam kết đơn lẻ từng được thực hiện, vì tôi biết người nhận đã có mọi cam kết và bao gồm cả điểm phân kỳ.git bó từ điểm phân kỳ stash lên đến stash

Tôi nhận được điều này:

$ git bundle create ehhh stash...master^1 
fatal: Refusing to create empty bundle. 

... mà làm cho không có ý nghĩa, như git rev-list stash...master^1 lợi nhuận hai cam kết.

Tôi không hiểu công cụ này hay đây có phải là hạn chế không?

Trả lời

1

Vấn đề là gốc cây ... chủ^1 không được diễn giải chính xác theo gói. Một cách giải quyết là tạo ra một tag:

git tag bundle_end master^1 
git bundle create ehhh stash...bundle_end 

Lưu ý rằng treeish specifiers phạm vi lấy tất cả các cam kết từ đầu, không bao gồm đầu tự cam kết.

+0

Điều đó không có tác dụng, cùng một vấn đề. Tôi nghĩ rằng bạn đã biết nhưng chỉ cần đảm bảo: cha mẹ của stash là bậc thầy ^. git rev-list stash ... bundle_end liệt kê stash và chỉ mục của nó như mong đợi. Tôi đã kết thúc việc áp dụng stash của tôi cho một chi nhánh công trên repo (con đường không an toàn của kháng cự ít nhất), mặc dù kế hoạch của tôi để tiếp quản thế giới đã ở đó (đây là lý do tại sao tôi muốn gói, để thông tin đó là riêng tư cho người nhận). Xin lỗi nếu thế giới bị phá hủy bởi vì ai đó có được kế hoạch của tôi bây giờ. – GNUnit

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