2011-01-20 47 views
110

Tôi đã định cấu hình Git để khi chạy git push, nó sẽ đẩy các thay đổi vào repo GitHub của tôi. Cho đến bây giờ tôi chỉ có một nhánh chính.Đẩy chi nhánh địa phương lên GitHub

Tuy nhiên, bây giờ tôi đã tạo ra một chi nhánh địa phương và cam kết nó bằng cách sử:

git checkout -b my_new_branch 
git commit 

Những gì tôi muốn làm bây giờ là đẩy những thay đổi của tôi trên chi nhánh này để GitHub. Tôi chỉ cần đẩy git?

Khi lần đầu tiên tôi đặt nó lên tôi đã chạy:

git config push.default current 
+0

gì chính xác là câu hỏi của bạn? Với 'push.default' được thiết lập theo cách đó, vâng,' git push' sẽ đẩy nhánh hiện tại ra gốc, đó là repo github của bạn, giả sử bạn nhân bản từ đó. (Bạn có thể chỉ định một remote khác với 'branch.my_new_branch.remote' nếu bạn muốn.) Vì vậy, bạn đã thử này và có nó không hoạt động? – Cascabel

+1

Nếu bạn muốn tất cả các chi nhánh địa phương của bạn đẩy đến cùng một chi nhánh từ xa, hãy rõ ràng: git push origin HEAD: remote_branch –

Trả lời

216

Tôi tin rằng bạn đang tìm kiếm git push origin my_new_branch, giả sử từ xa nguồn gốc của bạn được cấu hình để đạt kho github của bạn.

+0

git push theo https://www.atlassian.com/git/tutorials/syncing/git- đẩy – vikramvi

+0

Tuyệt vời, đơn giản và chính xác! –

+2

Nếu sau đó bạn muốn làm việc trên nhánh này với những người khác và do đó làm git pull bạn sẽ muốn đặt thông tin theo dõi cho chi nhánh mới của bạn: 'git branch --set-upstream-to = origin/my_new_branch my_new_branch' – gloriphobia

-9

Nếu bạn đã định cấu hình git để đẩy tới kho lưu trữ chính GitHub của bạn, bất kể bạn đang ở nhánh nào, nó sẽ đẩy tới kho lưu trữ chính GitHub của bạn.

Lưu ý rằng, nếu nhiều nhà phát triển đang làm việc trong cùng một kho lưu trữ, bạn có thể bị xung đột.

+0

Tôi đã chạy git config push.default current – Noam

8

Tùy thuộc vào cài đặt git cục bộ của bạn, nếu bạn đã kiểm tra chi nhánh không phải là nhánh bạn đã nhân bản hoặc một nhánh tồn tại nơi bạn đang cố gắng đẩy, git sẽ không đẩy chi nhánh địa phương của bạn.

Dưới đây là thông điệp nó cung cấp:

cảnh báo: push.default là unset; giá trị tiềm ẩn của nó đã thay đổi trong Git 2.0 từ 'trùng khớp' thành 'đơn giản'. Để dập tắt tin nhắn này và duy trì các hành vi truyền thống, sử dụng:

git config --global push.default phù hợp với

để đè bẹp thông điệp này và thông qua hành vi mới hiện nay, sử dụng:

git config - push.default toàn cục đơn giản

Khi push.default được đặt thành 'trùng khớp', git sẽ đẩy các nhánh cục bộ đến các nhánh xa đã tồn tại có cùng tên.

Kể từ Git 2.0, Git mặc định hoạt động bảo mật 'đơn giản' , chỉ đẩy chi nhánh hiện tại đến chi nhánh từ xa tương ứng từ xa mà 'git pull' sử dụng để cập nhật nhánh hiện tại.

Xem 'cấu hình trợ giúp git' và tìm kiếm 'push.default' để biết thêm thông tin . (Chế độ 'đơn giản' đã được giới thiệu trong Git 1.7.11 Sử dụng chế độ tương tự như 'hiện tại' thay vì 'đơn giản' nếu bạn thỉnh thoảng sử dụng phiên bản cũ của Git.)

gây tử vong: Các chi nhánh hiện tại MyLocalBranch không có thượng nguồn chi nhánh. Để đẩy chi nhánh hiện tại và thiết lập điều khiển từ xa như thượng nguồn, sử dụng

git push --set-upstream origin MyLocalBranch 
Các vấn đề liên quan