Kadang-kadang checkout akan gagal karena perubahan Anda bertentangan dengan cabang itu. Anda dapat mencoba checkout -m untuk bergabung.
Jouni K. Seppänen
2
Saya mencoba ini tetapi saya mendapat kesalahan: kesalahan: Perubahan lokal Anda ke file berikut akan ditimpa oleh checkout. Tolong, komit perubahan Anda atau sembunyikan sebelum Anda bisa berganti cabang.
ishwr
Meskipun ini akan berhasil, jawaban yang mengatakan menggunakan simpanan harus lebih disukai, IMO. Mungkin hanya pilihan pribadi, tetapi ini adalah alur kerja yang lebih bersih, secara logis dan memperkenalkan STASH yang merupakan perintah yang berguna.
Patrick
Opsi "-b" tidak ada, karena tajuk utama menyarankan bahwa pertanyaannya adalah mengenai cabang "baru".
Guntram
195
Anda juga dapat membuat cabang baru dan beralih ke sana dengan melakukan:
git checkout -b new_branch
git add .
Saya menggunakan ini sepanjang waktu karena saya selalu lupa untuk memulai cabang baru sebelum saya mulai mengedit kode.
masalah yang sama seperti @jouni dicatat untuk jawaban lainnya - Anda dapat mengalami kesulitan menggabungkan cabang kembali ke master jika perubahan tambahan bertentangan dengan perubahan asli. IMO utas ini menjawab pertanyaan dengan lebih baik: stackoverflow.com/questions/556923/…
jpw
Singkat, manis dan meyakinkan ... "Saya menggunakan ini sepanjang waktu ..."
ϹοδεMεδιϲ
1
Jangan lupa untuk melakukan commit di new_branch. Jika Anda beralih kembali ke cabang master dan mengembalikan file yang diubah, Anda akan kehilangan mereka di new_branch juga.
petrsyn
36
Mengapa tidak menggunakan simpanan git saja. Saya pikir ini lebih intuitif seperti salin dan tempel.
$ git branch
develop
* master
feature1
TEST
$
Anda memiliki beberapa file di cabang Anda saat ini yang ingin Anda pindahkan.
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: awesome.py
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: linez.py
#
$
$ git stash
Saved working directory and index state \
"WIP on master: 934beef added the index file"
HEAD is now at 934beef added the index file
(To restore them type "git stash apply")
$
$ git status
# On branch master
nothing to commit (working directory clean)
$
$
$ git stash list
stash@{0}: WIP on master: 934beef ...great changes
$
Pindah ke cabang lain.
$ git checkout TEST
Dan melamar
$ git stash apply
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: awesome.py
# modified: linez.py
#
Saya juga suka git stashkarena saya menggunakan git flow, yang mengeluh ketika Anda ingin menyelesaikan cabang fitur sementara masih ada perubahan di direktori kerja Anda.
Sama seperti @Mike Bethany, ini terjadi pada saya sepanjang waktu karena saya mengerjakan masalah baru sambil lupa bahwa saya masih di cabang lain. Jadi, Anda dapat menyimpan pekerjaan Anda git flow feature finish...,, dan git stash applyke git flow feature start ...cabang baru .
git stashadalah cara yang saya sukai untuk berurusan dengan perubahan yang tidak dikomit. Ini tentu metode yang intuitif ketika Anda menganggapnya memotong dan menempel.
Matius Mitchell
Ini sepertinya pendekatan yang bagus untuk saya. Itu bekerja tanpa masalah.
Yunus Nedim Mehel
Tidak tahu Anda bisa melakukan ini dan itu bekerja dengan baik. Terasa sedikit lebih intuitif daripada metode lainnya.
glaucon
Saya pikir menyembunyikan itu cara yang lebih profesional, daripada menggunakan git checkout dan kemudian tambahkan. Saya pikir jawaban Anda harus 100+ suara.
Jawaban:
Anda bisa checkout ke cabang tes dan kemudian melakukan. Anda tidak kehilangan perubahan tanpa komitmen saat pindah ke cabang lain.
Andaikata Anda berada di cabang utama:
Saya tidak begitu yakin tentang file yang dihapus, tapi saya kira mereka tidak termasuk ketika Anda menggunakan
git add .
sumber
Anda juga dapat membuat cabang baru dan beralih ke sana dengan melakukan:
Saya menggunakan ini sepanjang waktu karena saya selalu lupa untuk memulai cabang baru sebelum saya mulai mengedit kode.
sumber
Mengapa tidak menggunakan simpanan git saja. Saya pikir ini lebih intuitif seperti salin dan tempel.
Anda memiliki beberapa file di cabang Anda saat ini yang ingin Anda pindahkan.
Pindah ke cabang lain.
Dan melamar
Saya juga suka
git stash
karena saya menggunakangit flow
, yang mengeluh ketika Anda ingin menyelesaikan cabang fitur sementara masih ada perubahan di direktori kerja Anda.Sama seperti @Mike Bethany, ini terjadi pada saya sepanjang waktu karena saya mengerjakan masalah baru sambil lupa bahwa saya masih di cabang lain. Jadi, Anda dapat menyimpan pekerjaan Anda
git flow feature finish...
,, dangit stash apply
kegit flow feature start ...
cabang baru .sumber
git stash
adalah cara yang saya sukai untuk berurusan dengan perubahan yang tidak dikomit. Ini tentu metode yang intuitif ketika Anda menganggapnya memotong dan menempel.git stash --include-untracked
sumber