I'm tidak yakin mengapa aku'm tidak dapat checkout cabang yang saya telah bekerja pada 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.
I'm tidak yakin apa artinya, dan saya dapat't tampaknya menemukan sesuatu yang dapat aku mengerti di Google.
Bagaimana saya checkout cabang itu, dan apa yang dapat saya lakukan untuk memecahkan ini?
UPDATE:
Saya menemukan post ini, dan menjalankan 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 .git
direktori (user_controlled_site_layouts
di ref/kepala/fitur 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
UPDATE 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"
Mencoba git fetch
sehingga repositori lokal anda mendapatkan semua info baru dari github. Ini hanya membutuhkan informasi tentang kantor cabang baru dan tidak ada kode yang sebenarnya. Setelah itu git checkout
harus bekerja dengan baik.
Saya mendapatkan kesalahan ini ketika saya mencoba untuk checkout cabang baru:
kesalahan: pathspec 'CABANG-NAMA' tidak sesuai file(s) dikenal untuk git.
Ketika saya mencoba git checkout asal/<CABANG-NAMA>
, aku punya KEPALA terpisah:
(terlepas dari asal/
Akhirnya, saya melakukan hal-hal berikut ini untuk menyelesaikan masalah:
git remote update
git fetch
git checkout --track origin/<BRANCH-NAME>
Aku punya kesalahan ini untuk cabang yang terpencil dan tidak memiliki lokal pelacakan cabang. Meskipun saya'm tertentu I'telah memeriksa remote cabang melalui sederhana
git checkout feature/foo
di masa lalu, untuk mendapatkan sekitar ini kesalahan aku harus
git checkout -t -b feature/foo origin/feature/foo
Aku tidak tahu apa yang saya lakukan untuk mendapatkan diriku ke dalam situasi yang baik.
Jika anda menghapus sebuah cabang dengan git branch -D yourbranchname
dan menarik/kloning lagi anda repo, anda mungkin perlu untuk membuat cabang lokal anda lagi.
Coba:
git checkout -b yourbranchname
Saya memiliki pertanyaan yang sama, dan mendapat beberapa informasi dari link ini: git fetch doesn't mengambil semua cabang
Jadi sekarang, aku tidak yakin bagaimana situasi ini terjadi, setidaknya kita dapat mengatasinya:
Langkah 1. Periksa "remote.asal.mengambil" pengaturan, harus seperti ini
$ git config --mendapatkan remote.asal.mengambil
+ref/kepala/private_dev_branch:ref/remote/asal/private_dev_branch
Langkah 2. Perubahan "remote.asal.mengambil" untuk mengambil segala sesuatu
$ git config remote.asal.mengambil "+ref/kepala/*:ref/remote/asal/*"
$ git config --mendapatkan remote.asal.mengambil
+ref/kepala/*:ref/remote/asal/*
Kemudian, anda dapat mencoba "git pull" (mungkin "git fetch asal" juga bekerja tapi aku tidak't mencoba) untuk mendapatkan semua cabang.
Git pengguna Windows hati - hati, tanpa --icase-pathspecs
atau GIT_ICASE_PATHSPECS = 1
env var pengaturan, bahwa git pathspecs akan menjadi hal yang sensitif, di mana kasus
git checkout origin/FooBranch "Some/Path/To/File.txt"
tidak sama dengan
git checkout origin/FooBranch "some/path/to/file.Txt"
Aku punya ini ketika saya melakukan hal-hal berikut:
Ketika saya mencoba untuk check-in direktori, aku punya kesalahan ini.
Untuk memperbaiki:
Aku membuka repo git extensions. Saya melihat bahwa file (dengan nama lama) dipentaskan. Tapi sejak itu tidak ada lagi, itu tidak bisa dilakukan.
Aku hanya belum di-stage file ini.
Kemudian saya re-menambahkan file (kali ini diberi nama dengan benar) ke git dan dilakukan tanpa kesalahan.
Aku punya masalah ini hari ini aku mencoba untuk git checkout foo
dan punya error: pathspec 'foo' tidak sesuai file(s) diketahui git.
Ternyata aku berada di salah repo. Jadi pelajaran yang dipelajari: memeriksa repo anda're melihat sebelum panik.
Pada OS Windows secara default git adalah instaled dengan
core.ignorecase = true
Ini berarti bahwa git repo file akan menjadi hal sensitif, untuk mengubah ini, anda perlu untuk melaksanakan:
\yourLocalRepo> git config core.ignorecase false
anda dapat menemukan konfigurasi ini pada .git config file
Aku disalin remote asal url
dari yang lain .git/config
file, melakukan jadi saya baru .git/config
file yang hilang baris berikut di [remote "asal"]
bagian
fetch = +refs/heads/*:refs/remotes/origin/*
Menambahkan baris di atas tetap error: pathspec 'master' tidak sesuai file(s) diketahui git.
Jika hal ini terjadi pada Windows, ini mungkin adalah nama berkas kasus masalah.
Aku punya kesalahan ini saat ini - I've dibuat file baru, ditambahkan ke GIT, maka saya mengubah satu huruf di nama file dari bawah ke atas dan kemudian saya tidak't untuk apa - apa- komit, kembali, menghapus file dari repo.
Satu-satunya solusi yang saya temukan adalah mengubah nama file lagi kembali ke yang sama terjadi ketika saya menambahkan file ini untuk GIT, kemudian lakukan GIT kembali untuk menghapus file ini dari GIT, kemudian mengubah nama file lagi seperti yang saya inginkan. Setelah perubahan-perubahan tersebut saya bisa commit ke repo dan kemudian mendorong tanpa masalah.
Aku punya masalah yang sama.. saya pikir saya telah cabang bernama foo
ketika saya mencoba untuk:
git checkout foo
Saya mendapatkan:
error: pathspec 'foo' did not match any file(s) known to git.
Kemudian saya mencoba spa dengan nama cabang:
git checkout feature/foo
kemudian bekerja untuk saya.
Dalam kasus saya, saya memiliki DUA cabang 1) master(yang adalah untuk live server) 2) dev(test server). Saya telah menetapkan beberapa remote untuk mendorong kode pada masing-masing server. Ketika saya mencoba untuk beralih cabang saya mendapat error seperti error: pathspec 'master' tidak sesuai file(s) diketahui git.
Anda dapat melihat mereka dengan git remote -v
.
Aku telah dihapus terpencil lainnya kecuali asal
remote dengan git remote menghapus <remote-nama>
Kemudian git fetch
Sekarang saya bisa checkout cabang dengan git checkout <cabang-nama>
.
Aku punya berbagai akar penyebab
Saya punya script yang pada dasarnya mencari semua cabang yang cocok jira masalah kunci untuk "PRJ-1234" di antara semua cabang untuk menjalankan git branch checkout perintah pada pencocokan cabang
Masalah dalam kasus saya adalah 2 atau lebih cabang bersama sama jira kunci dan karenanya menyebabkan naskah saya gagal dengan kesalahan tersebut
Dengan menghapus yang lama tidak terpakai cabang dan memastikan hanya satu cabang memiliki jira kunci referensi tetap masalah
Berikut ini's my kode dalam kasus seseorang ingin menggunakannya
git remote update
git fetch --all --prune
git branch -r --list *$1* | xargs git checkout --force
simpan ini sebagai switchbranch.sh
Kemudian dari terminal ./switchbranch.sh PRJ-1234
Terjadi pada saya setelah mengganti nama uncommitted file di Android Studio.
Git tampaknya memiliki versi lama di gudang, bahkan jika itu tidak´t ada lagi.
fetch, pull, checkout, add all and so on did not help in my case!
Jadi saya membuka Git GUI dari TortoiseGit yang menunjukkan file yang tepat yang menyebabkan masalah.
Setelah itu saya dihapus file dari repositori dengan
git rm -r --cached /path/to/affected/file
dan masalah itu hilang