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_branch
sudah ada secara lokal dan Anda tidak berada di cabang ini, kemudian git checkout another_branch
beralih ke cabang.
Jika another_branch
tidak ada tetapi origin/another_branch
tidak ada, maka git checkout another_branch
sama dengan git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. Itu untuk membuat another_branch
dari origin/another_branch
dan ditetapkan origin/another_branch
sebagai hulu another_branch
.
Jika tidak ada, git checkout another_branch
mengembalikan kesalahan.
git checkout origin another_branch
mengembalikan kesalahan dalam banyak kasus. Jika origin
revisi dan another_branch
file, maka memeriksa file revisi itu tetapi kemungkinan besar bukan itu yang Anda harapkan. origin
sebagian besar digunakan di git fetch
, git pull
dan git push
sebagai remote, alias dari url ke repositori jarak jauh.
git checkout origin/another_branch
berhasil jika origin/another_branch
ada. 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 switch
untuk membuat dan mengganti cabang.
Jika foo
ada, cobalah untuk beralih ke foo
:
git switch foo
Jika foo
tidak ada dan origin/foo
ada, coba buat foo
dari origin/foo
dan kemudian beralih ke foo
:
git switch -c foo origin/foo
# or simply
git switch foo
Secara umum, jika foo
tidak ada, coba buat foo
dari 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, origin
untuk Gitlab dan github
untuk Github. Dalam hal ini repositori memiliki origin/foo
dan github/foo
. git switch foo
akan mengeluh fatal: invalid reference: foo
, karena tidak diketahui dari mana referensi, origin/foo
atau github/foo
, untuk membuat foo
. Kita perlu menentukannya dengan git switch -c foo origin/foo
atau git switch -c foo github/foo
sesuai 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 foo
ada, cobalah untuk membuat ulang / memaksa-membuat foo
dari (atau mengatur ulang foo
ke) 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 branch
saja. Cobalah untuk membuat cabang dari referensi atau komit yang diketahui:
git branch foo <ref>
git branch foo <commit>
git checkout
perintahnya melakukan terlalu banyak hal, menurut saya. Itu sebabnya ada begitu banyak mode operasi di sini. Jika satu-satunya hal yang git checkout
dilakukan adalah beralih cabang, jawabannya akan sederhana, tetapi juga dapat membuat cabang, dan bahkan mengekstrak file dari komit tertentu tanpa berpindah cabang.
git switch
untuk beralih ke cabang.
git checkout
sebagai 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 --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
param) 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 git
menggunakan 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