2011-08-16 44 views
35

Tôi có 2 nhánh git: master và testing.Đổi tên chi nhánh git từ xa

Thử nghiệm trở nên tốt, tôi muốn biến nó thành thạo. Tôi nghĩ rằng tôi sẽ đổi tên để xáo trộn mọi thứ xung quanh, nhưng đây là những gì tôi nhận được:

nutebook:Stuff nathan$ git remote rename master old 
error: Could not rename config section 'remote.master' to 'remote.old' 

Tôi sử dụng GitHub và Git-Tower.

Trả lời

56

Sau đây là hướng dẫn đổi tên nhánh chính của bạn. Nó sẽ hoạt động dễ dàng để đổi tên nhánh thử nghiệm của bạn.

Đây là cách tôi đã đổi tên.

Trước tiên, trong cây đang hoạt động của bạn, hãy đổi tên địa chỉ chính thành một cái gì đó khác.

git branch -m master old-dev 

Đổi tên nhánh nhánh sẽ hoạt động khi bạn đang ở trên chi nhánh, do đó, không cần phải thanh toán thứ gì khác.

Sau đó, tại địa phương đổi tên chi nhánh bảo trì (2.63-chi nhánh) để thạc sĩ:

git branch -m 2.63-branch master 

Bây giờ, thời gian để gây rối với điều khiển từ xa. Trong trường hợp bạn đăng ký, bạn có thể muốn đảm bảo bạn có bản sao lưu hiện tại. Đầu tiên, xóa các bậc thầy từ xa:

git push origin :master 

Và bây giờ, cung cấp cho điều khiển từ xa chủ mới của bạn:

git push origin master:refs/heads/master 

Cập nhật: Khi tạo một chi nhánh mới, refs/heads/prefix là cần thiết trên phía xa. Nếu nhánh đã tồn tại (như master đã làm ở trên) thì chỉ cần tên chi nhánh ở phía xa.

... và bây giờ-đổi tên chủ cũ của mình:

git push origin old-dev:refs/heads/old-dev 

Cuối cùng, xóa tên cũ của chi nhánh bảo trì của bạn để ngăn chặn nhầm lẫn:

git push origin :2.63-branch 

Khách hàng bây giờ sẽ nhận được ' nhánh 'mới chính khi họ kéo.

xem this trang web.

+7

Để thêm vào điều này: khi tôi muốn đổi tên 'master' của mình trên github, trước tiên tôi phải thay đổi nhánh mặc định trong 'settings' trước khi nó cho phép tôi xóa nó (tức là 'git push origin: master'). –

+0

Bạn có thể đổi tên chi nhánh tại địa phương và đẩy nó vào điều khiển từ xa và sau đó xóa cái cũ? –

+1

Tôi thấy cờ -u để đẩy rất đẹp vì nó thiết lập theo dõi ngược dòng của điều khiển từ xa mới cho bạn, ví dụ: 'git push -u origin master' (sử dụng git 1.7 Tôi không cần tiền tố ref/head đầy đủ) –

1

master là chi nhánh, không phải từ xa như origin. nếu bạn muốn có công việc thử nghiệm của mình cho chi nhánh chính của mình, chỉ cần hợp nhất nó vào:

git checkout master 
git merge experimental 
0

Những gì bạn cố gắng làm là đổi tên từ xa "từ gốc" sang "cũ". Để đổi tên chi nhánh trên một repo khác, chỉ cần xóa chi nhánh đó bằng

git push <remote> :<branch name> 

rồi đẩy nó thành thứ khác.

4

Tôi nghĩ cách đơn giản nhất là thanh toán nhánh thử nghiệm, xóa nhánh chủ từ xa, sau đó đẩy nhánh thử nghiệm cục bộ làm nhánh chủ từ xa mới.

// delete the remote master branch by pushing null 
// (the space in front of the semicolon) in this branch 
git push origin :master 
// push local experimental to remote master 
git push origin experimental:master 
1

Nếu bạn là người dùng máy Mac, bạn có thể sử dụng GitHub Mac App (https://mac.github.com/) để đổi tên chi nhánh.

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