Saya seorang pemula yang git dan saya terus membaca tentang cabang "master". Apakah "master" hanya nama konvensional yang digunakan orang atau memiliki arti khusus HEAD
?
Ketika saya melakukan git branch
klon yang saya miliki, saya hanya melihat 1 cabang tunggal - yang saya gunakan. Tidak ada "master" sama sekali. Jika saya mengetik git checkout master
(seperti yang saya lihat di banyak tutorial atau panduan), saya mengerti
error: pathspec 'master' did not match any file(s) known to git.
Saya hanya bingung mengapa klon saya tidak memiliki master
yang semua orang menyiratkan bahwa itu selalu ada.
git add .
,git commit -m "Test"
, kemudiangit push -u origin master
.git ls-remote origin master
tidak menunjukkan apa-apa.Untuk memeriksa cabang yang tidak ada secara lokal tetapi dalam repo jarak jauh Anda dapat menggunakan perintah ini:
sumber
fatal: Cannot update paths and switch to branch 'master' at the same time.
master
hanyalah nama sebuah cabang, tidak ada keajaiban tentangnya kecuali itu dibuat secara default ketika repositori baru dibuat.Anda dapat menambahkannya kembali dengan
git checkout -b master
.sumber
git checkout -b master
hanya menambahkan cabang baru dari yang sekarang untuk saya.git checkout -b master
akan membuatmaster
cabang dari apa punHEAD
- jadi jika Anda berada di cabang lain, itu akan membuatmaster
cabang dari itu. Kecuali jika Anda sudah memilikimaster
cabang (yang akan Anda lakukan, kecuali misalnya Anda telah menghapusnya atau tidak pernah berkomitmen padanya). Jika Anda sudah memilikimaster
cabang, perintah ini hanya akan memberi Anda kesalahan.master
hanyalah sebuah cabang, yang dapat dihapus dengangit branch -d master
. Meskipun git akan melindungi Anda dari menghapus cabang tempat Anda berada, tidak ada yang khusus melindungimaster
cabang tersebut. Lebih khusus dari itu, sulit untuk mengatakan bagaimana Anda melakukannya. Mungkin Anda menggunakanhistory
perintah shell Anda untuk melihatnya?git checkout -b master
hanya akan bekerja jika HEAD disetel ke origin / master. Dalam kasus lain (misalnya Anda sedang 'mengembangkan'),git checkout -b master
akan membuat cabang bernama 'master' yang didasarkan pada posisi HEAD saat ini (misalnya dari 'berkembang'). Anda juga perlu menyatakan cabang mana yang akan menjadi kulit pohon untuk yang baru. @Bunyk memiliki jawaban yang benar di utas ini: stackoverflow.com/a/21330943/287109Saya sebenarnya memiliki masalah yang sama dengan repositori yang benar-benar baru. Saya bahkan telah mencoba
git checkout -b master
membuatnya dengan , tetapi itu tidak membuat cabang. Saya kemudian menyadari jika saya membuat beberapa perubahan dan melakukannya, git membuat cabang master saya.sumber
Dalam kasus saya, ada cabang yang berkembang tetapi tidak ada cabang induk . Oleh karena itu saya mengkloning repositori yang menunjuk HEAD yang baru dibuat ke cabang yang ada. Kemudian saya membuat cabang master yang hilang dan memperbarui HEAD agar mengarah ke cabang master baru.
sumber
jika ini adalah repo baru yang telah Anda kloning, mungkin masih kosong, dalam hal ini:
git push -u origin master
kemungkinan besar harus menyelesaikannya.
(lakukan dalam kasus saya. tidak yakin ini adalah masalah yang sama, saya pikir saya harus memposting ini hanya memetikan. mungkin membantu orang lain.)
sumber
Saya mengalami masalah yang sama dan menemukan masalahnya. Saat Anda menginisialisasi repositori sebenarnya tidak ada cabang apa pun. Ketika Anda memulai proyek, jalankan
git add .
dan kemudiangit commit
cabang master akan dibuat.Tanpa memeriksa apa pun, Anda tidak memiliki cabang master. Dalam hal ini, Anda perlu mengikuti langkah-langkah yang disarankan orang lain di sini.
sumber
Tampaknya setidaknya harus ada satu komit lokal di cabang master yang harus dilakukan:
Jadi jika Anda melakukannya
git init .
dan kemudiangit remote add origin ...
, Anda masih perlu melakukan:sumber