push.default
được bao phủ tốt nhất trong man page của git config (man git config
).
Để hiểu sự khác biệt giữa “ngược dòng” và “hiện tại” cho push.default
, bạn nên biết thuật ngữ thượng nguồn:
Upstream là một con trỏ địa phương từ một chi nhánh địa phương bình thường đến một chi nhánh từ xa theo dõi địa phương. (Vâng, đây là tất cả địa phương.) Ví dụ:
- chi nhánh blabla đã nguồn gốc/blabla cấu hình như thượng nguồn (rất phổ biến)
- chi nhánh blabla có nguồn gốc/foo như thượng nguồn (Chi nhánh có tên địa phương khác nhau; không quá phổ biến)
- chi nhánh blabla có origin2/foo như thượng nguồn
Lưu ý rằng nguồn gốc/* chi nhánh là địa phương và (lại) được đặt trên mỗi lần tìm nạp gốc. Chúng được gọi là "các nhánh theo dõi từ xa cục bộ". Chúng đại diện cho trạng thái của các nhánh trên “nguồn gốc” từ xa tại thời điểm tìm nạp lần cuối.
Mỗi chi nhánh địa phương (bình thường) có thể có cấu hình ngược dòng, nhưng điều này không nhất thiết phải: cấu hình của mối quan hệ ngược dòng chỉ thuận tiện cho một số lệnh git!
Nếu bạn thực hiện ví dụ git status
, git sẽ cho bạn biết "x commit phía sau/phía trước" nếu nó biết thượng nguồn (để git có thể so sánh với nó).
Bình thường ban đầu git checkout blabla
thường thiết lập cấu hình ngược dòng cho bạn (nếu xuất xứ/blabla tồn tại, nó được kiểm tra và thiết lập như ngược dòng - nếu không thanh toán không thành công).
git push
cũng có thể sử dụng cấu hình ngược dòng của chi nhánh, tức là sao chép các cam kết mới của bạn sang chi nhánh từ xa đại diện cho thượng nguồn. (Đây là push.default = upstream
.)
push.default = current
phép một git push
sao chép các cam kết mới hơn để điều khiển từ xa dưới cùng tên. Nó hoàn toàn bỏ qua cấu hình ngược dòng. - Nếu tên chi nhánh địa phương của bạn luôn giống với tên nhánh ở xa, cả hai cấu hình đều có cùng tác dụng, ngoại trừ git push
với push.default = upstream
sẽ không thành công, nếu ngược dòng chưa được định cấu hình.
PD: Có, *
ở đầu ra của git branch
hiển thị nhánh hiện tại.
Nguồn
2015-04-01 13:15:04
'push.default' không ảnh hưởng đến' pull'! - Phải nói rằng cấu hình của một nhánh thượng nguồn có ảnh hưởng đến những gì được kéo. Nhưng cả hai thứ (upstream và push.default) là hai thứ khác nhau. –