Không có sự khác biệt nào cả!
1) git checkout -b branch origin/branch
Nếu không có --trackvà 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, --trackmà không có -bngụ ý -bvà đố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/branchnế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 mergevà 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 statuscho 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=originvà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ó.