Yang mana dari baris-baris ini yang benar?
git checkout 'another_branch'
Atau
git checkout origin 'another_branch'
Atau
git checkout origin/'another_branch'
git checkout 'another_branch'
Atau
git checkout origin 'another_branch'
Atau
git checkout origin/'another_branch'
Jawaban:
Jika another_branchsudah ada secara lokal dan Anda tidak berada di cabang ini, kemudian git checkout another_branchberalih ke cabang.
Jika another_branchtidak ada tetapi origin/another_branchtidak ada, maka git checkout another_branchsama dengan git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch. Itu untuk membuat another_branchdari origin/another_branchdan ditetapkan origin/another_branchsebagai hulu another_branch.
Jika tidak ada, git checkout another_branchmengembalikan kesalahan.
git checkout origin another_branchmengembalikan kesalahan dalam banyak kasus. Jika originrevisi dan another_branchfile, maka memeriksa file revisi itu tetapi kemungkinan besar bukan itu yang Anda harapkan. originsebagian besar digunakan di git fetch, git pulldan git pushsebagai remote, alias dari url ke repositori jarak jauh.
git checkout origin/another_branchberhasil jika origin/another_branchada. Itu mengarah ke dalam kondisi KEPALA terpisah, bukan pada cabang apa pun. Jika Anda membuat komit baru, komit baru tidak dapat dijangkau dari cabang mana pun yang ada dan tidak ada cabang yang akan diperbarui.
PEMBARUAN :
Seperti 2.23.0 telah dirilis, dengan itu kita juga dapat menggunakan git switchuntuk membuat dan mengganti cabang.
Jika fooada, cobalah untuk beralih ke foo:
git switch foo
Jika footidak ada dan origin/fooada, coba buat foodari origin/foodan kemudian beralih ke foo:
git switch -c foo origin/foo
# or simply
git switch foo
Secara umum, jika footidak ada, coba buat foodari referensi atau komit yang dikenal dan kemudian beralih ke foo:
git switch -c foo <ref>
git switch -c foo <commit>
Jika kami mempertahankan repositori di Gitlab dan Github secara bersamaan, repositori lokal mungkin memiliki dua remote, misalnya, originuntuk Gitlab dan githubuntuk Github. Dalam hal ini repositori memiliki origin/foodan github/foo. git switch fooakan mengeluh fatal: invalid reference: foo, karena tidak diketahui dari mana referensi, origin/fooatau github/foo, untuk membuat foo. Kita perlu menentukannya dengan git switch -c foo origin/fooatau git switch -c foo github/foosesuai kebutuhan. Jika kami ingin membuat cabang dari kedua cabang jarak jauh, lebih baik menggunakan nama pembeda untuk cabang baru:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
Jika fooada, cobalah untuk membuat ulang / memaksa-membuat foodari (atau mengatur ulang fooke) referensi atau komit yang diketahui dan kemudian beralih ke foo:
git switch -C foo <ref>
git switch -C foo <commit>
yang setara dengan:
git switch foo
git reset [<ref>|<commit>] --hard
Cobalah untuk beralih ke KEPALA yang terlepas dari referensi atau komit yang diketahui:
git switch -d <ref>
git switch -d <commit>
Jika Anda hanya ingin membuat cabang tetapi tidak beralih, gunakan git branchsaja. Cobalah untuk membuat cabang dari referensi atau komit yang diketahui:
git branch foo <ref>
git branch foo <commit>
git checkoutperintahnya melakukan terlalu banyak hal, menurut saya. Itu sebabnya ada begitu banyak mode operasi di sini. Jika satu-satunya hal yang git checkoutdilakukan adalah beralih cabang, jawabannya akan sederhana, tetapi juga dapat membuat cabang, dan bahkan mengekstrak file dari komit tertentu tanpa berpindah cabang.
git switchuntuk beralih ke cabang.
git checkoutsebagai gantinya untuk versi lama, yang juga berfungsi dalam versi modern.
Beralih ke cabang lain di git. Jawaban langsung,
git-checkout - Beralih cabang atau mengembalikan file pohon yang berfungsi
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Sebelum beralih cabang pastikan Anda tidak memiliki file yang dimodifikasi, dalam hal ini, Anda dapat melakukan perubahan atau Anda dapat menyimpannya.
[ git checkout "branch_name"]
adalah cara lain untuk mengatakan:
[ git checkout -b branch_name origin/branch_name]
dalam kasus "branch_name" hanya ada jarak jauh.
[ git checkout -b branch_name origin/branch_name] berguna jika Anda memiliki beberapa remote.
Mengenai [ git checkout origin 'another_branch'] Saya tidak yakin ini mungkin, AFAK Anda dapat melakukan ini menggunakan perintah "ambil" - [ git fetch origin 'another_branch']
Apa yang berhasil untuk saya adalah sebagai berikut:
Beralih ke cabang yang dibutuhkan:
git checkout -b BranchName
Dan kemudian saya menarik "tuan" dengan:
git pull origin master
Perintah yang berguna untuk bekerja dalam kehidupan sehari-hari:
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
Jika Anda ingin cabang untuk melacak cabang jarak jauh, yang sangat impor jika Anda akan melakukan perubahan pada cabang dan menarik perubahan dll, Anda perlu menggunakan add -t untuk checkout aktual misalnya:
git checkout -t branchname
Periksa: git branch -a
Jika Anda hanya mendapatkan satu cabang. Kemudian lakukan langkah-langkah di bawah ini.
git config --listgit config --unset remote.origin.fetch git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*depthparam) sebelumnya dan sekarang bertanya-tanya mengapa Anda tidak dapat mengambil cabang remote lain untuk mendapatkan error: pathspec 'another_branch' did not match any file(s) known to gitmenggunakan perintah yang disarankan di atas. Tentu saja bukan itu pertanyaan awal tetapi dapat membantu orang lain menggaruk-garuk kepala di sini.
Saya menggunakan ini untuk memindahkan satu cabang ke cabang lain yang dapat Anda gunakan berfungsi baik untuk saya.
git switch [branchName] ATAU git checkout [branchName]
mis: git switch berkembang ATAU
git checkout berkembang
git checkout [branch]untuk sebagian besar pengguna yang datang ke pertanyaan ini