Git: Δεν μπορεί να γίνει έλεγχος του κλάδου - σφάλμα: το pathspec '...' δεν ταιριάζει με κανένα αρχείο(α) γνωστό στο git

Δεν είμαι σίγουρος γιατί είμαι ανίκανος να κάνω checkout σε ένα υποκατάστημα στο οποίο είχα δουλέψει νωρίτερα. Δείτε τις παρακάτω εντολές (σημείωση: το co είναι ψευδώνυμο για το 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.

Δεν είμαι σίγουρος τι σημαίνει και δεν μπορώ να βρω κάτι που να καταλαβαίνω στο Google.

Πώς μπορώ να ελέγξω αυτό το κλαδί και τι μπορεί να έχω κάνει για να το χαλάσω;

ΠΡΟΗΓΗΣΗ:

(https://stackoverflow.com/questions/4181861/git-error-src-refspec-master-does-not-match-any), και εκτελώντας το git show-ref μου δίνει:

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

ΕΠΙΚΑΙΡΟΠΟΙΗΣΗ στον κατάλογο .git (ο φάκελος user_controlled_site_layouts βρίσκεται στον φάκελο refs/heads/feature):

$ ls .git/refs/heads/feature/
datts_right  user_controlled_menu  user_controlled_site_layouts
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034

ΠΡΟΗΓΗΣΗ στο git show 3af84fcf1508c44013844dcd0998a14e61455034

$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <xxx@xxxxx.xxx>
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 fetch ώστε το τοπικό σας αποθετήριο να λαμβάνει όλες τις νέες πληροφορίες από το github. Παίρνει μόνο τις πληροφορίες για τους νέους κλάδους και όχι τον πραγματικό κώδικα. Μετά από αυτό, το git checkout θα πρέπει να δουλέψει μια χαρά.

Σχόλια (11)

Πήρα αυτό το σφάλμα για έναν κλάδο που ήταν απομακρυσμένος και δεν είχε τοπικό κλάδο παρακολούθησης. Παρόλο που είμαι σίγουρος ότι έχω ελέγξει απομακρυσμένους κλάδους μέσω ενός απλού

git checkout feature/foo

στο παρελθόν, για να παρακάμψω αυτό το σφάλμα έπρεπε να

git checkout -t -b feature/foo origin/feature/foo

Ούτε εγώ έχω ιδέα τι έκανα για να βρεθώ σε αυτή την κατάσταση.

Σχόλια (6)
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034

Μπορείτε να επιβεβαιώσετε ότι τα ακόλουθα λειτουργούν:

$ git show 3af84fcf1508c44013844dcd0998a14e61455034

Θα μπορούσε να είναι η περίπτωση που κάποιος έχει ξαναγράψει το ιστορικό και ότι αυτή η δέσμευση δεν υπάρχει πλέον (για οποιονδήποτε λόγο πραγματικά).

Σχόλια (4)