Đẩy một chi nhánh cục bộ lên GitHub


117

Tôi đã định cấu hình Git để khi tôi 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 chi nhánh chính.

Tuy nhiên, bây giờ tôi đã tạo một chi nhánh cục bộ và cam kết với nó bằng cách sử dụng:

git checkout -b my_new_branch
git commit

Điều tôi muốn làm bây giờ là đẩy các thay đổi của tôi trên nhánh này lên GitHub. Tôi chỉ thực hiện một cú đẩy git?

Khi tôi lần đầu tiên thiết lập nó, tôi đã chạy:

git config push.default current

Chính xác câu hỏi của bạn là gì? Với push.defaultthiết lập theo cách đó, vâng, git pushsẽ đẩy nhánh hiện tại về nguồn 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 điều khiển từ xa khác branch.my_new_branch.remotenếu bạn muốn.) Vì vậy, bạn đã thử điều này và 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 chi nhánh từ xa tương tự, hãy rõ ràng: git ĐẦU đẩy xuất xứ: remote_branch
Ustaman Sangat

Câu trả lời:


221

Tôi tin rằng bạn đang tìm kiếm git push origin my_new_branch, giả sử điều khiển từ xa gốc của bạn được định cấu hình để truy cập kho lưu trữ github của bạn.


git push <remote> <branch> theo atlassian.com/git/tutorials/syncing/git-push
vikramvi

3
Nếu sau đó bạn muốn làm việc trên chi 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

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à chi nhánh bạn đã nhân bản hoặc một chi nhánh tồn tại nơi bạn đang cố gắng đẩy, git sẽ không đẩy chi nhánh cục bộ của bạn.

Đây là thông điệp mà nó cung cấp:

cảnh báo: push.default chưa được đặt; giá trị ngầm định của nó đã thay đổi trong Git 2.0 từ 'so khớp' thành 'đơn giản'. Để lọc thông báo này và duy trì hành vi truyền thống, hãy sử dụng:

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

Để bỏ qua thông báo này và áp dụng hành vi mới ngay bây giờ, hãy sử dụng:

git config --global push.default đơn giản

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

Kể từ Git 2.0, Git mặc định có hành vi 'đơn giản' hơn, chỉ đẩy nhánh hiện tại đến nhánh từ xa tương ứng 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ự 'hiện tại' thay vì 'đơn giản' nếu đôi khi bạn sử dụng các phiên bản cũ hơn của Git)

gây tử vong: Nhánh hiện tại MyLocalBranchkhông có nhánh ngược dòng. Để đẩy nhánh hiện tại và đặt điều khiển từ xa làm ngược dòng, hãy sử dụng

git push --set-upstream origin MyLocalBranch


-12

Nếu bạn đã định cấu hình git của mình để đẩy đến repo chính GitHub, bất kể bạn đang ở chi nhánh nào, nó sẽ đẩy đến repo chính GitHub của bạn.

Hãy nhớ 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ể gặp xung đột.


Tôi đã chạy git config push.default current
Noam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.