Tôi thích sử dụng chỉ đơn giản là git push
để đẩy (chỉ) nhánh hiện tại tới luồng được cấu hình. Đối với điều đó tôi đặt git config push.default upstream
làm chính xác điều đúng.Đẩy nhánh hiện tại vào Gerrit
Bây giờ tôi đã cố gắng thiết lập điều khiển từ xa phù hợp cho Gerrit, điều này tự động đẩy tới refs/for/*
.
Ý tưởng này được thực hiện nó theo cách này:
[remote "gerrit"]
url = ssh://host:port/repo
push = refs/heads/*:refs/for/*
Tôi muốn gõ git push gerrit
và mong đợi git để đẩy chỉ chi nhánh hiện tại để các ref chính xác.
Thật không may bây giờ git cố gắng đẩy tất cả chi nhánh địa phương cho Gerrit. - Có cách nào để nói với git chỉ đẩy nhánh hiện tại như với số push.default
ở trên không?
Cập nhật:
- Git đẩy chỉ có thể sử dụng một refspec duy nhất.
- Nếu một refspec rõ ràng được đưa ra trên dòng lệnh này được sử dụng.
- Nếu không có gì được đưa ra trên dòng lệnh, được xác định bằng điều khiển từ xa.
- Nếu không có gì được cung cấp với điều khiển từ xa, quá, chỉ khi đó push.default được xem xét.
Đối với Gerrit tôi cần một refspec như 'branch: refs/for/branch' với chi nhánh là nhánh hiện tại.
Câu hỏi:
- Có tương đương refspec rõ ràng với những gì push.default = thượng nguồn đang làm gì?
- Có cách nào để định cấu hình git để tạo đồng bằng
git push
tự động đẩy đến đúng ref/ref?
Hiện tại cách tốt nhất tôi tìm được là gói tất cả mọi thứ trong một tập lệnh riêng biệt như được đề xuất here. Nhưng tôi vẫn không tin rằng nó không phải là có thể chỉ với một refspec phù hợp.
Ok. Chỉ cần kiểm tra các tùy chọn khác nhau tại đây. Tôi đã học được rằng 'push.default' chỉ được xem xét nếu không có refspec được đưa ra. Và nếu bạn cung cấp một refspec (như 'HEAD') thông qua dòng lệnh, điều này sẽ ghi đè refspec được cung cấp với điều khiển từ xa. Do đó nó sẽ chỉ đẩy đến 'ref/heads', mà không phải là những gì bạn muốn. Hấp dẫn. – VonC