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_branchchuyển sang nhánh.
Nếu another_branchkhông tồn tại nhưng origin/another_branchkhông, thì git checkout another_branchtương đương với git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch. Đó là để tạo another_branchtừ origin/another_branchvà thiết lập origin/another_branchnhư là thượng nguồn của another_branch.
Nếu không tồn tại, git checkout another_branchtrả về lỗi.
git checkout origin another_branchtrả về lỗi trong hầu hết các trường hợp. Nếu originlà bản sửa đổi và another_branchlà 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. originchủ yếu được sử dụng trong git fetch, git pullvà git pushnhư một điều khiển từ xa, một bí danh của url vào kho từ xa.
git checkout origin/another_branchthành công nếu origin/another_branchtồ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 footồn tại, hãy thử chuyển sang foo:
git switch foo
Nếu fookhông tồn tại và origin/footồn tại, hãy thử tạo footừ origin/foorồi chuyển sang foo:
git switch -c foo origin/foo
# or simply
git switch foo
Nói chung, nếu fookhông tồn tại, hãy thử tạo footừ 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ụ, origincho Gitlab và githubcho Github. Trong trường hợp này, kho lưu trữ có origin/foovà github/foo. git switch foosẽ khiếu nại fatal: invalid reference: foo, bởi vì nó không biết từ đó ref, origin/foohoặc github/foo, để tạo foo. Chúng ta cần chỉ định nó với git switch -c foo origin/foohoặc git switch -c foo github/footheo 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 footồn tại, hãy thử tạo lại / buộc tạo footừ (hoặc đặt lại foothà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 branchthay 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 checkoutlệ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 checkoutthay 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 --listgit config --unset remote.origin.fetch git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*depthparam) 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 gitbằ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