Mà một trong những dòng này là chính xác?
git checkout 'another_branch'
Hoặc là
git checkout origin 'another_branch'
Hoặc là
git checkout origin/'another_branch'
git checkout 'another_branch'
Hoặc là
git checkout origin 'another_branch'
Hoặc là
git checkout origin/'another_branch'
Câu trả lời:
Nếu another_branch
đã tồn tại cục bộ và bạn không ở trong nhánh này, thì hãy git checkout another_branch
chuyển sang nhánh.
Nếu another_branch
không tồn tại nhưng origin/another_branch
không, thì git checkout another_branch
tương đương với git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. Đó là để tạo another_branch
từ origin/another_branch
và thiết lập origin/another_branch
như là thượng nguồn của another_branch
.
Nếu không tồn tại, git checkout another_branch
trả về lỗi.
git checkout origin another_branch
trả về lỗi trong hầu hết các trường hợp. Nếu origin
là bản sửa đổi và another_branch
là một tệp, thì nó sẽ kiểm tra tệp của bản sửa đổi đó nhưng có lẽ đó không phải là điều bạn mong đợi. origin
chủ yếu được sử dụng trong git fetch
, git pull
và git push
như một điều khiển từ xa, một bí danh của url vào kho từ xa.
git checkout origin/another_branch
thành công nếu origin/another_branch
tồn tại Nó dẫn đến trạng thái CHÍNH tách ra, không phải trên bất kỳ chi nhánh nào. Nếu bạn thực hiện các cam kết mới, các cam kết mới không thể truy cập được từ bất kỳ chi nhánh hiện có nào và không có chi nhánh nào sẽ được cập nhật.
CẬP NHẬT :
Vì 2.23.0 đã được phát hành, với nó, chúng ta cũng có thể sử dụng git switch
để tạo và chuyển đổi các nhánh.
Nếu foo
tồn tại, hãy thử chuyển sang foo
:
git switch foo
Nếu foo
không tồn tại và origin/foo
tồn tại, hãy thử tạo foo
từ origin/foo
rồi chuyển sang foo
:
git switch -c foo origin/foo
# or simply
git switch foo
Nói chung, nếu foo
không tồn tại, hãy thử tạo foo
từ một ref hoặc cam kết đã biết và sau đó chuyển sang foo
:
git switch -c foo <ref>
git switch -c foo <commit>
Nếu chúng tôi duy trì một kho lưu trữ trong Gitlab và Github cùng một lúc, kho lưu trữ cục bộ có thể có hai điều khiển từ xa, ví dụ, origin
cho Gitlab và github
cho Github. Trong trường hợp này, kho lưu trữ có origin/foo
và github/foo
. git switch foo
sẽ khiếu nại fatal: invalid reference: foo
, bởi vì nó không biết từ đó ref, origin/foo
hoặc github/foo
, để tạo foo
. Chúng ta cần chỉ định nó với git switch -c foo origin/foo
hoặc git switch -c foo github/foo
theo nhu cầu. Nếu chúng ta muốn tạo các nhánh từ cả hai nhánh từ xa, tốt hơn là sử dụng tên phân biệt cho các nhánh mới:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
Nếu foo
tồn tại, hãy thử tạo lại / buộc tạo foo
từ (hoặc đặt lại foo
thành) một tham chiếu hoặc cam kết đã biết và sau đó chuyển sang foo
:
git switch -C foo <ref>
git switch -C foo <commit>
tương đương với:
git switch foo
git reset [<ref>|<commit>] --hard
Hãy thử chuyển sang một ĐẦU tách rời của một giới thiệu hoặc cam kết đã biết:
git switch -d <ref>
git switch -d <commit>
Nếu bạn chỉ muốn tạo một nhánh nhưng không chuyển sang nó, hãy sử dụng git branch
thay thế. Cố gắng tạo một nhánh từ một ref hoặc commit đã biết:
git branch foo <ref>
git branch foo <commit>
git checkout
lệnh này có quá nhiều thứ. Đó là lý do tại sao có rất nhiều chế độ hoạt động ở đây. Nếu điều duy nhất git checkout
đã làm là chuyển nhánh, câu trả lời sẽ đơn giản, nhưng nó cũng có thể tạo các nhánh và thậm chí trích xuất các tệp từ các xác nhận cụ thể mà không cần chuyển nhánh.
git switch
để chuyển sang một chi nhánh.
git checkout
thay cho các phiên bản cũ, cũng hoạt động trong các phiên bản hiện đại.
Chuyển sang một chi nhánh khác trong git. Câu trả lời thẳng thắn,
git-checkout - Chuyển nhánh hoặc khôi phục tập tin cây làm việc
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Trước khi chuyển đổi chi nhánh, đảm bảo bạn không có bất kỳ tệp sửa đổi nào, trong trường hợp đó, bạn có thể cam kết thay đổi hoặc bạn có thể bỏ qua nó.
[ git checkout "branch_name"
]
là một cách khác để nói:
[ git checkout -b branch_name origin/branch_name
]
trong trường hợp "Branch_name" chỉ tồn tại từ xa.
[ git checkout -b branch_name origin/branch_name
] là hữu ích trong trường hợp bạn có nhiều điều khiển từ xa.
Về [ git checkout origin 'another_branch'
] Tôi không chắc điều này là có thể, AFAK bạn có thể thực hiện việc này bằng cách sử dụng lệnh "tìm nạp" - [ git fetch origin 'another_branch'
]
Những gì làm việc cho tôi là như sau:
Chuyển sang nhánh cần thiết:
git checkout -b BranchName
Và sau đó tôi kéo "chủ" bằng cách:
git pull origin master
Các lệnh hữu ích để làm việc trong cuộc sống hàng ngày:
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
Nếu bạn muốn chi nhánh theo dõi chi nhánh từ xa, rất nhập nếu bạn muốn thực hiện thay đổi cho chi nhánh và kéo thay đổi, v.v., bạn cần sử dụng thêm một -t cho thanh toán thực tế, ví dụ:
git checkout -t branchname
Kiểm tra : git branch -a
Nếu bạn chỉ nhận được một chi nhánh. Sau đó làm các bước dưới đây.
git config --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
param) trước đây và bây giờ tự hỏi tại sao bạn không thể tìm nạp các nhánh từ xa khác error: pathspec 'another_branch' did not match any file(s) known to git
bằng cách sử dụng các lệnh được đề xuất ở trên. Nó chắc chắn không phải là những gì câu hỏi ban đầu là về nhưng nó có thể giúp những người khác gãi đầu ở đây.
Tôi đang sử dụng điều này để chuyển đổi một chi nhánh sang bất kỳ ai khác mà bạn có thể sử dụng nó làm việc cho tôi như sự quyến rũ.
git switch [BranchName] HOẶC kiểm tra git [BranchName]
ví dụ: git switch phát triển HOẶC
kiểm tra git phát triển
git checkout [branch]
đối với hầu hết người dùng đến với câu hỏi này