2010-11-05 40 views
14

Xin lỗi nếu câu hỏi này đã được yêu cầu.Định cấu hình chi nhánh địa phương để đẩy chi nhánh cụ thể

Am nhân bản từ một repo có tên là "git_lab" trong đó có một chi nhánh tên là "test" Khi nhân bản tôi sử dụng "-b myname_test" để tạo ra một chi nhánh địa phương đặt tên là "myname_test" và bản sao địa phương được đặt tên "myname_git_lab"

Khi tôi thực hiện "git pull", nó sẽ tự động tìm nạp và kết hợp các thay đổi từ "test" thành "myname_test", nhưng đối với git push, tôi cần phải xác định tên repo và branch.

$> git chương trình từ xa git_lab

chi nhánh địa phương cấu hình cho 'git pull': myname_test kết hợp với kiểm tra từ xa

Có cách nào mà tôi có thể cấu hình "chi nhánh địa phương cấu hình cho 'git push' "để tôi không cần phải chỉ định chi nhánh và tên repo?

Trả lời

26

Có hai điều bạn có thể làm ở đây.

  • Đặt push.default để tracking, do đó nó sẽ đẩy tất cả các chi nhánh đến chi nhánh từ xa họ theo dõi, không phải là những người mà họ có tên giống như, sau đó cấu hình chi nhánh của bạn với thông tin theo dõi thích hợp. (ví dụ: đặt branch.master.remote thành originbranch.master.merge đến refs/heads/foo.)

  • Đẩy theo cách thủ công. git push origin master:foo sẽ đẩy chi nhánh địa phương của bạn master đến chi nhánh foo trên điều khiển từ xa origin.

Tuy nhiên, tôi muốn đề nghị rằng những gì bạn thực sự muốn làm là chỉ cần thực hiện tên chi nhánh giống nhau.

(Bạn có thể thiết lập các thông số cấu hình hoặc với git config, ví dụ như git config push.default tracking, hoặc bằng cách trực tiếp chỉnh sửa .git/file config.)

+2

"git config push.default tracking" làm việc .... cảm ơn một tấn, chỉ tò mò muốn biết .... tại sao chúng ta cần phải xác định thiết lập cấu hình này, tôi nghĩ khi chúng tôi sao chép bằng cách sử dụng tùy chọn -b tất cả mọi thứ được thiết lập. (branch.master.remote và branch.master.merge được thiết lập sau bản sao tự động) –

+1

@ Thứ tư: Các thiết lập đó thực sự được tạo tự động, nhưng hành vi mặc định của push là đẩy * khớp * các nhánh, không theo dõi nhánh. Các thiết lập do đó thường chỉ ảnh hưởng đến tìm nạp/kéo, không đẩy. Xem push.default trong [git config manpage] (http://www.kernel.org/pub/software/scm/git/docs/git-config.html). – Cascabel

+1

Điều gì về git branch --set-upstream? –

0
git checkout --track origin/branchname 

Hoặc, bạn có thể chỉnh sửa tệp cấu hình trong thư mục .git.

+0

Cảm ơn, nhưng thiết lập các url từ xa là để xác định các kho lưu trữ từ xa để đẩy, làm thế nào tôi có thể xác định nhánh từ xa để đẩy tới? Vì tên chi nhánh địa phương của tôi và tên chi nhánh ở xa khác nhau theo số –

+0

sẽ giúp bạn. Đã chỉnh sửa phản hồi. –

+0

Theo dõi không ảnh hưởng đến việc đẩy theo mặc định. Và nếu nhánh đã tồn tại, 'git checkout --track' chắc chắn không phải là cách để thiết lập thông tin theo dõi. – Cascabel

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