Không có sự khác biệt nào cả!
1) git checkout -b branch origin/branch
Nếu không có --track
và không --no-track
, --track
được coi là mặc định. Mặc định có thể được thay đổi với cài đặt branch.autosetupmerge
.
Trong thực tế, 1) hành xử như thế nào git checkout -b branch --track origin/branch
.
2) git checkout --track origin/branch
Càng là một tiện ích, --track
mà không có -b
ngụ ý -b
và đối số -b
được đoán là nhánh nhánh. Việc đoán được điều khiển bởi biến cấu hình remote.origin.fetch
.
Trong thực tế, 2) hành xử như thế nào git checkout -b branch --track origin/branch
.
Như bạn có thể thấy: không có sự khác biệt.
Nhưng nó thậm chí còn tốt hơn:
3) git checkout branch
cũng tương đương với git checkout -b branch --track origin/branch
nếu nhánh nhánh của Cameron không tồn tại nhưng nguồn gốc / nhánh nhánh của Google có 1 .
Cả ba lệnh này đều đặt ra một dòng ngược dòng của nhánh nhánh của nhánh Cameron là nhánh nguồn gốc / nhánh nhánh (hoặc chúng không thành công).
Thượng nguồn được sử dụng như điểm tham chiếu của các đối số-ít git status
, git push
, git merge
và do đó git pull
(nếu cấu hình như thế (đó là mặc định hoặc gần như mặc định)).
Ví dụ, git status
cho bạn biết phía sau hoặc phía trước của bạn là thượng nguồn, nếu một trong số đó được cấu hình.
git push
được cấu hình để đẩy nhánh hiện tại ngược dòng theo mặc định 2 kể từ git 2.0.
1 ... và nếu có nguồn gốc từ hồi thì thì đây là điều khiển từ xa duy nhất có nhánh nhánh của nhánh
2 , mặc định (có tên là đơn giản) cũng bắt buộc cả hai tên nhánh phải bằng nhau
git pull
, trong khi một số chi nhánh sẽ yêu cầu một chi nhánh từ xa để kéo. Nó chỉ ra rằng nếu bạn, trong lần đầu tiên của bạn, đang kiểm tra một nhánh từ xa mà đồng nghiệp của bạn đã tạo, git sẽ tiếp tục và thêmbranch.<BNAME>.remote=origin
vào gitconfig cục bộ. Mà sau đó cho phép bạn phát hànhgit pull
. Tuy nhiên, nếu bạn là người tạo ra chi nhánhgit checkout -b BNAME
, thì git -of dĩ nhiên - không biết. Vì vậy, bạn nên chỉ định từ xa của nó.