2012-10-18 37 views
6

Bộ nhớ git cục bộ của tôi cần lấy từ một máy chủ. Sau đó nó cần phải đẩy một nhánh cụ thể đến một repo xem lại với một tên nhánh khác trên một máy chủ khác.Cách đặt chi nhánh git để chuyển sang điều khiển từ xa có tên chi nhánh khác và kéo từ url hoàn toàn khác

Giống như: Kéo mọi thứ từ PullOnlyRepo trên Server1 (chúng tôi sẽ gọi nguồn gốc đó có thể?) Đẩy nhánh hotfix đến ReivewRepo bằng tên chi nhánh JistChanges trên Server2.

Ngay bây giờ git config show -l:

remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
remote.origin.url=<URL for Server1> 
remote.origin.pushurl=no_push (this shouldn't matter since it is a pull only repo) 
branch.production.remote=origin 
branch.production.merge=refs/heads/production 
remote.review.url=<URL for Server2> 
remote.review.fetch=+refs/heads/*:refs/remotes/review/* 

git pull làm những gì tôi muốn (lấy từ những thay đổi địa điểm chính xác trên Server1 và kết hợp chúng thành cây công việc của tôi).

Tuy nhiên, git push thì không. Để đạt được những gì tôi muốn tôi phải làm

git push review hotfix:JistChanges 

Có cách nào để làm cho git kéo làm điều này mà không cần phải bỏ thêm những thứ khác?

Có một số câu hỏi đã được thiết lập để nhánh địa phương của bạn đẩy tới điều khiển từ xa với tên chi nhánh khác. Tuy nhiên họ cũng thay đổi thượng nguồn và nơi kéo đến.

+0

Bạn đang sử dụng phiên bản nào? Có rất nhiều biến cấu hình ... –

+0

Tôi đang sử dụng phiên bản 1.7.4.1 – Jistanidiot

Trả lời

3

Bạn có thể thiết lập các chi nhánh upstream cho hotfix:

git config push.default upstream 
git config push.default review 
git branch --set-upstream hotfix review/JistChanges 

Xem "How do you make an existing git branch track a remote branch?" Xem "What is the result of git push origin?" về chính sách mặc định push (sớm để được "simple")

Bắt đầu git1.8.0 :

git branch -u review/JistChanges hotfix 

Các OP jistanidiotreports đã đạt được kết quả tương tự với: Câu trả lời

git remote set-url --push origin 
git config remote.origin.push refs/heads/hotfix:JistChanges 
+0

Trên nhánh git - xem lại hotfix cập nhật/JistChanges Tôi gặp lỗi: lỗi: Giá trị không đúng cho push.default: xem xét lỗi: Phải là một trong số không có gì, phù hợp, theo dõi hoặc hiện tại. gây tử vong: dòng tệp cấu hình không hợp lệ 19 trong .git/config – Jistanidiot

+0

@Jistanidiot bạn có thể đặt thành 'khớp' hoặc' dòng ngược' (http://stackoverflow.com/q/12294787/6309). – VonC

1

Ok VonC đã cho tôi đi đúng hướng. Dưới đây là những gì tôi đã làm:

git remote set-url --push origin <review repo URL> 
git config remote.origin.push refs/heads/hotfix:JistChanges 

Vấn đề duy nhất với điều này là bây giờ mọi thứ đều đẩy vào repo đánh giá. Đó là ok vì bây giờ 90% công việc sẽ thuộc nhánh này. 10% còn lại tôi chỉ có thể thực hiện một lệnh git push khác nơi repo gốc khác cùng với cấu hình push chính xác.

+0

Tuyệt vời, +1. Tôi đã cập nhật câu trả lời để phản ánh của bạn. – VonC

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