Saya tidak yakin mengapa saya tidak dapat melakukan checkout cabang yang saya kerjakan sebelumnya. Lihat perintah di bawah ini (catatan: co
adalah alias untuk checkout
):
ramon@ramon-desktop:~/source/unstilted$ git branch -a
* develop
feature/datts_right
feature/user_controlled_menu
feature/user_controlled_site_layouts
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/feature/datts_right
remotes/origin/master
ramon@ramon-desktop:~/source/unstilted$ git co feature/user_controlled_site_layouts
error: pathspec 'feature/user_controlled_site_layouts' did not match any file(s) known to git.
Saya tidak yakin apa artinya, dan sepertinya saya tidak dapat menemukan apa pun yang dapat saya mengerti di Google.
Bagaimana cara saya checkout cabang itu, dan apa yang dapat saya lakukan untuk mematahkan ini?
PEMBARUAN :
Saya menemukan pos ini , dan berlari git show-ref
memberi saya:
97e2cb33914e763ff92bbe38531d3fd02408da46 refs/heads/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/heads/feature/datts_right
11a90dae8897ceed318700b9af3019f4b4dceb1e refs/heads/feature/user_controlled_menu
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/heads/master
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/HEAD
e7c17eb40610505eea4e6687e4572191216ad4c6 refs/remotes/origin/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/remotes/origin/feature/datts_right
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/master
23768aa5425cbf29d10ff24274adad42d90d15cc refs/stash
e572cf91e95da03f04a5e51820f58a7306ce01de refs/tags/menu_shows_published_only
429ebaa895d9d41d835a34da72676caa75902e3d refs/tags/slow_dev
UPDATE pada .git
direktori ( user_controlled_site_layouts
ada di refs/heads/feature folder
):
$ ls .git/refs/heads/feature/
datts_right user_controlled_menu user_controlled_site_layouts
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034
DIPERBARUI pada git show 3af84fcf1508c44013844dcd0998a14e61455034
$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <[email protected]>
Date: Thu May 12 19:00:03 2011 +0800
Removed site layouts migration
diff --git a/db/schema.rb b/db/schema.rb
index 1218fc8..2040b9f 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20110511012647) do
+ActiveRecord::Schema.define(:version => 20110503040056) do
create_table "attachments", :force => true do |t|
t.string "name"
@@ -205,15 +205,6 @@ ActiveRecord::Schema.define(:version => 20110511012647) do
t.integer "old_id"
end
- create_table "site_layouts", :force => true do |t|
- t.string "name"
- t.text "description"
- t.text "content"
- t.integer "site_id"
- t.datetime "created_at"
- t.datetime "updated_at"
- end
-
create_table "site_styles", :force => true do |t|
t.text "published"
t.datetime "created_at"
git checkout refs/heads/user_controlled_site_layouts
:?git branch -a
tetapi tidak digit show-ref
. Apakah file tersebut.git/refs/heads/feature/user_controlled_site_layout
benar-benar ada? Jika demikian, apa yangcat .git/refs/heads/feature/user_controlled_site_layout
memberi?Jawaban:
Cobalah
git fetch
agar repositori lokal Anda mendapat semua info baru dari github. Hanya membutuhkan informasi tentang cabang baru dan tidak ada kode aktual. Setelah itugit checkout
harus bekerja dengan baik.sumber
git fetch
berguna ketika Anda perlu menyinkronkan repositori lokal Anda dengan repositori jarak jauh, tetapi Anda tidak ingin menggabungkan perubahan ke dalam folder kerja Anda.git checkout Branch
itu tidak berfungsi. Dengan beberapa remote hanya nama Cabang yang ambigu dan membutuhkan spesifikasi remote / cabang. Perintahgit checkout -b branch remote/branch
berfungsi dalam skenario itu.git fetch
bisa melakukan pekerjaan. Tetapi mungkin gagal untuk mendapatkan semua cabang dari jarak jauh. Anda harus mengatur pola pengambilan pertandingan.git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
lihat: stackoverflow.com/questions/11623862/...Saya mendapatkan kesalahan ini ketika saya mencoba checkout cabang baru:
Ketika saya mencoba
git checkout origin/<BRANCH-NAME>
, saya mendapatkan KEPALA yang terpisah:Akhirnya, saya melakukan yang berikut untuk menyelesaikan masalah :
sumber
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -b
git versi 1.5.6.5git checkout -b staging --track origin/staging
Saya mendapatkan kesalahan ini untuk cabang yang jauh dan tidak memiliki cabang pelacakan lokal. Meskipun saya yakin saya sudah memeriksa cabang jarak jauh melalui sederhana
di masa lalu, untuk mengatasi kesalahan ini saya harus
Saya tidak tahu apa yang saya lakukan untuk membuat diri saya dalam situasi itu juga.
sumber
fetch = +refs/heads/*:refs/remotes/origin/*
baris agar sesuai dengan nama remote baru. LOL. Mungkin ini terjadi pada makandra? karena setelah memperbaikinya, memeriksa cabang sekali lagi mendapatkannya dari asal, meskipun saya memiliki banyak remote.Jika Anda menghapus cabang dengan
git branch -D yourbranchname
dan menarik / mengkloning repo Anda lagi, Anda mungkin perlu membuat cabang lokal lagi.Mencoba:
sumber
Saya memiliki pertanyaan yang sama, dan mendapatkan beberapa informasi dari tautan ini: git fetch tidak mengambil semua cabang
Jadi sekarang, saya mungkin tidak yakin bagaimana situasi ini terjadi, setidaknya kita dapat menyelesaikannya:
Langkah 1. Periksa pengaturan "remote.origin.fetch" Anda, harus seperti ini
Langkah 2. Ubah "remote.origin.fetch" untuk mengambil semuanya
Kemudian, Anda dapat mencoba "git pull" (mungkin "git fetch origin" juga berfungsi tetapi saya tidak mencoba) untuk mendapatkan semua cabang.
sumber
Hati-hati dengan pengguna Windows - tanpa pengaturan
--icase-pathspecs
atauGIT_ICASE_PATHSPECS = 1
env var , git pathspec akan peka huruf besar kecil, dalam hal initidak sama dengan
sumber
--icase-pathspecs
parameter tersebut harus didahulukan atau setidaknya sebelum-C <path>
Jika nama cabang dan Anda tidak memiliki file yang tidak dikomit, maka coba ini
sumber
Saya menghadapi masalah saat mengganti cabang.
Saya melakukan git pull pada cabang saat ini dan kemudian mencoba untuk checkout yang baru dan berhasil
git pull // on your old branch git checkout <new_branch>
sumber
git pull
melakukan lebih dari menarik cabang saat ini?Itu hanya memperbaikinya untuk saya :)
sumber
Saya mendapat masalah yang sama karena saya menggunakan
git clone --depth=1
, yang menyiratkan--single-branch
.Apakah selesai
git clone
akan memperbaikinya.sumber
Saya mendapatkan ini ketika saya melakukan hal berikut:
Ketika saya mencoba memeriksa di direktori, saya mendapatkan kesalahan ini.
Memperbaiki:
Saya membuka repo di ekstensi git. Saya melihat bahwa file (dengan nama lama) dipentaskan. Tetapi karena itu tidak ada lagi, itu tidak dapat dilakukan.
Saya cukup unstaged file ini.
Kemudian saya menambahkan kembali file (kali ini nama yang benar) ke git dan dilakukan tanpa kesalahan.
sumber
Saya memiliki masalah ini hari ini yang saya coba
git checkout foo
dan dapatkanerror: pathspec 'foo' did not match any file(s) known to git.
Ternyata saya salah repo . Jadi pelajaran yang dipetik: periksa repo yang Anda lihat sebelum panik.
sumber
Saya mendapatkan kesalahan ini ketika mencoba checkout cabang melalui:
yang belum saya periksa sebelumnya. Ini hanya berfungsi ketika secara eksplisit menyatakan remote:
Alasan untuk ini adalah, bahwa saya memiliki 2 remote yang berbeda (asal + sth. Lain) dikonfigurasi dalam konfigurasi git. Karena saya tidak memerlukan remote kedua, saya menghapus dan menjalankannya, itu berfungsi. Alternatif untuk mengatur remote default melalui:
tidak bekerja untuk saya
sumber
Pertama, checkout cabang induk. Kemudian ketik
Semoga ini bisa membantu !.
sumber
Saya memperbaikinya dengan memodifikasi file konfigurasi git saya. Periksa file konfigurasi Anda di direktori git Anda -
.git\config
Sebelumnya punya
Saya memperbaikinya dengan memodifikasinya
Perhatikan bahwa kepala hanya menunjuk ke satu cabang, sehingga tidak dapat menemukan referensi ke cabang lain yang ada, saya mengubahnya menjadi * sehingga memeriksa semua yang asli.
sumber
Pada OS Windows secara default git diinstall dengan
Ini berarti bahwa file git repo akan menjadi case-sensitive, untuk mengubah ini Anda perlu menjalankan:
Anda dapat menemukan konfigurasi ini di file .git \ config
sumber
Saya menyalin asal yang jauh
url
dari.git/config
file lain , dengan demikian.git/config
file baru saya tidak ada pada baris berikut di[remote "origin"]
bagian iniMenambahkan baris di atas diperbaiki
error: pathspec 'master' did not match any file(s) known to git.
sumber
Saya memiliki masalah yang sama .. Saya pikir saya memiliki nama cabang
foo
ketika saya mencoba untuk:Saya mendapatkan:
Kemudian saya mencoba nama cabang lengkap:
kemudian bekerja untuk saya.
sumber
Jika itu terjadi pada Windows, itu mungkin masalah nama file.
Saya mengalami kesalahan ini hari ini - Saya telah membuat file baru, ditambahkan ke GIT, kemudian saya mengubah satu huruf dalam nama file dari bawah ke atas dan kemudian saya tidak bisa melakukan apa pun - komit, kembalikan, hapus file dari repo.
Satu-satunya solusi yang saya temukan adalah mengubah nama file kembali ke kasus yang sama ketika saya menambahkan file ini ke GIT, kemudian melakukan GIT kembali untuk menghapus file ini dari GIT, kemudian mengubah nama file lagi seperti yang saya inginkan. Setelah perubahan itu saya bisa berkomitmen untuk repo dan kemudian mendorong tanpa masalah.
sumber
git mv
. Kira Anda sudah melakukannya dengan cara ini, karena melakukannya melalui IDE saya (IntelliJ PhpStorm) gagal untuk saya ...Dalam kasus saya, saya memiliki dua cabang 1) master (yang untuk server hidup) 2) dev (server uji). Saya telah menetapkan beberapa remote untuk mendorong kode pada server masing-masing. Ketika saya mencoba untuk beralih cabang saya mendapat kesalahan seperti
error: pathspec 'master' did not match any file(s) known to git.
Anda dapat melihatnya dengan
git remote -v
. Saya telah menghapus remote lain kecualiorigin
oleh remotegit remote remove <remote-name>
Kemudian
git fetch
Sekarang saya dapat melakukan checkout cabang
git checkout <branch-name>
.sumber
Saya mengalami masalah yang sama ketika saya pertama kali bermain-main dengan git. Saat mencoba komit pertama saya ...
Saya mendapatkan kesalahan yang disebutkan oleh OP ...
Saya pikir saya mungkin membingungkan git dengan menggunakan kata kunci dalam pesan commit, jadi saya mencoba beberapa kata lain dan menerima kesalahan yang sama.
Akhirnya saya menggunakan tanda kutip ganda dalam pesan ...
Ini ternyata berhasil ...
sumber
Saya telah membuat kesalahan konyol karena tidak memberikan -m flag saat melakukan (lol terjadi)
sumber
Saya memiliki akar penyebab yang berbeda
Saya punya skrip yang pada dasarnya mencari semua cabang yang cocok dengan kunci masalah jira di untuk "PRJ-1234" di antara semua cabang untuk menjalankan perintah checkout cabang git pada cabang yang cocok
Masalah dalam kasus saya adalah 2 atau lebih cabang berbagi kunci jira yang sama dan karenanya menyebabkan skrip saya gagal dengan kesalahan yang disebutkan di atas.
Dengan menghapus cabang lama yang tidak terpakai dan memastikan hanya satu cabang saja yang memiliki referensi kunci jira menyelesaikan masalah
Ini kode saya seandainya seseorang ingin menggunakannya
simpan ini sebagai
switchbranch.sh
Kemudian gunakan dari terminal
./switchbranch.sh PRJ-1234
sumber
Tidak satu pun dari jawaban ini yang menyelesaikan masalah saya:
Saya mencoba untuk kembali dan membangun komit untuk
Version object v2.0.1
. Untungnya, saya mendapat ide untuk mencoba seluruh kode hash dan berhasil! Yang berarti bahwa saya menggunakan salah kode hash.Seperti yang ditunjukkan di atas, untuk kode hash parsial, Anda harus menyediakan front-end, bukan back-end.
sumber
Terjadi pada saya setelah mengganti nama file yang tidak dikomit di Android Studio.
Git tampaknya memiliki versi lama dalam repositori, bahkan jika itu tidak ada lagi.
Jadi saya membuka Git GUI dari TortoiseGit yang menunjukkan kepada saya file yang menyebabkan masalah.
Setelah itu saya menghapus file dari repositori dengan
dan masalahnya hilang
sumber
Dalam kasus saya, saya telah mengganti nama file mengubah kasus file, yaitu SomeFile.js -> someFile.js
Saya pikir itu terkait dengan masalah tersebut. Melakukan pengambilan git tidak memperbaiki masalah.
Saya memindahkan file keluar dari proyek saya, melakukan pengambilan, dan melakukan dorongan tanpa mereka. Kemudian saya mengambil, menambahkannya kembali, dan mendorong, dan itu berhasil. Saya tidak tahu apakah semua langkah itu diperlukan, tetapi akhirnya berhasil.
sumber
dalam kasus saya, saya memasukkan direktori submodule tanpa melakukan
git submodule init
git submodule update
Jadi git ditautkan ke folder induk yang memang ketinggalan cabang itu.
sumber
periksa apakah ini bukan salah ketik pada nama file target. Saya mencoba untuk panggung dengan mengetik
Tapi saya tidak menyadari bahwa saya menggunakan dua titik. Tapi kemudian saya mengetik
Berhasil
sumber
Bagi saya, itu adalah masalah dengan kredensial saya
Setelah mencoba beberapa jawaban, salah satu dari mereka membantu saya untuk menyelesaikan masalah:
Menjalankan
git fetch
melemparkan kesalahan berikut:Yang harus saya lakukan adalah memaksa IDE saya (VS Code dalam kasus saya) untuk mengingat kredensial saya:
Git segera menyinkronkan semua perubahan, dan
git checkout <branche>
berfungsi dengan baik sekarang!sumber
Saya mendapatkan hal yang sama
pathspec error
di git-bash. Saya menggunakan Tortoise git di windows untuk beralih / checkout cabang.sumber