Yang mana dari baris-baris ini yang benar?
git checkout 'another_branch'
Atau
git checkout origin 'another_branch'
Atau
git checkout origin/'another_branch'
Dan apa perbedaan antara garis-garis ini?
git
github
version-control
gitlab
git-checkout
Benyamin Jafari
sumber
sumber
git checkout [branch]
untuk sebagian besar pengguna yang datang ke pertanyaan iniJawaban:
Jika
another_branch
sudah ada secara lokal dan Anda tidak berada di cabang ini, kemudiangit checkout another_branch
beralih ke cabang.Jika
another_branch
tidak ada tetapiorigin/another_branch
tidak ada, makagit checkout another_branch
sama dengangit checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. Itu untuk membuatanother_branch
dariorigin/another_branch
dan ditetapkanorigin/another_branch
sebagai huluanother_branch
.Jika tidak ada,
git checkout another_branch
mengembalikan kesalahan.git checkout origin another_branch
mengembalikan kesalahan dalam banyak kasus. Jikaorigin
revisi dananother_branch
file, maka memeriksa file revisi itu tetapi kemungkinan besar bukan itu yang Anda harapkan.origin
sebagian besar digunakan digit fetch
,git pull
dangit push
sebagai remote, alias dari url ke repositori jarak jauh.git checkout origin/another_branch
berhasil jikaorigin/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 kefoo
:Jika
foo
tidak ada danorigin/foo
ada, coba buatfoo
dariorigin/foo
dan kemudian beralih kefoo
:Secara umum, jika
foo
tidak ada, coba buatfoo
dari referensi atau komit yang dikenal dan kemudian beralih kefoo
:Jika kami mempertahankan repositori di Gitlab dan Github secara bersamaan, repositori lokal mungkin memiliki dua remote, misalnya,
origin
untuk Gitlab dangithub
untuk Github. Dalam hal ini repositori memilikiorigin/foo
dangithub/foo
.git switch foo
akan mengeluhfatal: invalid reference: foo
, karena tidak diketahui dari mana referensi,origin/foo
ataugithub/foo
, untuk membuatfoo
. Kita perlu menentukannya dengangit switch -c foo origin/foo
ataugit 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:Jika
foo
ada, cobalah untuk membuat ulang / memaksa-membuatfoo
dari (atau mengatur ulangfoo
ke) referensi atau komit yang diketahui dan kemudian beralih kefoo
:yang setara dengan:
Cobalah untuk beralih ke KEPALA yang terlepas dari referensi atau komit yang diketahui:
Jika Anda hanya ingin membuat cabang tetapi tidak beralih, gunakan
git branch
saja. Cobalah untuk membuat cabang dari referensi atau komit yang diketahui:sumber
git checkout
perintahnya melakukan terlalu banyak hal, menurut saya. Itu sebabnya ada begitu banyak mode operasi di sini. Jika satu-satunya hal yanggit 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
Sebelum beralih cabang pastikan Anda tidak memiliki file yang dimodifikasi, dalam hal ini, Anda dapat melakukan perubahan atau Anda dapat menyimpannya.
sumber
[
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'
]sumber
Dengan Git 2.23 dan seterusnya, seseorang dapat menggunakan
git switch <branch name>
untuk berganti cabang.sumber
Apa yang berhasil untuk saya adalah sebagai berikut:
sumber
Perintah yang berguna untuk bekerja dalam kehidupan sehari-hari:
sumber
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
sumber
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/*
sumber
depth
param) sebelumnya dan sekarang bertanya-tanya mengapa Anda tidak dapat mengambil cabang remote lain untuk mendapatkanerror: 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
sumber