Git: impossibile eseguire il checkout del ramo - errore: pathspec '…' non corrisponde ad alcun file noto a git


706

Non sono sicuro del motivo per cui non riesco a effettuare il checkout di una filiale su cui avevo lavorato in precedenza. Vedi i comandi seguenti (nota: coè un alias per 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.

Non sono sicuro di cosa significhi e non riesco a trovare nulla che possa capire su Google.

Come posso verificare quel ramo e cosa posso aver fatto per romperlo?

AGGIORNAMENTO :

Ho trovato questo post e correre git show-refmi dà:

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

AGGIORNAMENTO nella .gitdirectory ( user_controlled_site_layoutsè nella 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

Aggiornamento su 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"


Funziona se lo fai git checkout refs/heads/user_controlled_site_layouts:?
Mark Longair,

2
Mark - no, continua a ricevere lo stesso errore.
Ramon Tayag,

1
Vedendo il tuo aggiornamento, non sono sicuro di come hai un ramo che appare in git branch -ama non in git show-ref. Il file .git/refs/heads/feature/user_controlled_site_layoutesiste davvero? In tal caso, cosa cat .git/refs/heads/feature/user_controlled_site_layoutoffre?
Mark Longair,

1
Ho avuto lo stesso errore, ho creato il ramo da un altro repository e provo a verificare quel ramo in un altro repository. Quindi l'ho preso a causa dei diversi repository.
Kushan Gunasekera,

Risposte:


947

Prova in git fetchmodo che il tuo repository locale ottenga tutte le nuove informazioni da Github. Prende solo le informazioni sui nuovi rami e nessun codice reale. Dopodiché git checkoutdovrebbe funzionare bene.


19
Per ulteriori chiarimenti, git fetchè utile quando è necessario sincronizzare il repository locale con il repository remoto, ma non si desidera unire le modifiche nella cartella di lavoro.
Mark Lakata,

138
Nel caso di un clone con più telecomandi, il git checkout Branchnon funziona. Con più telecomandi solo il nome Branch è ambiguo e richiede la specifica di remote / branch. Il comando git checkout -b branch remote/branchfunziona in quello scenario.
Umair Ishaq,

1
In qualche modo ero riuscito a creare un "master" locale, quindi anche se "git fetch" mi ha avvicinato, ho dovuto eliminare prima il mio master locale ("git branch -d master"), prima di passare al master remoto ("git checkout maestro"). Nel caso in cui ciò aiuti qualcun altro che è sciocco come me!
Jamie Brown,

1
@ Aleks non è la risposta accettata perché non ha nulla a che fare con la domanda del PO. Non poteva più controllare una filiale che aveva precedentemente estratto (cioè creato) localmente . Solo perché altre persone con un problema diverso e molto più basilare hanno trovato e votato a fondo questa risposta (che è completamente banale e ben nota a qualsiasi utente git con più di due giorni di esperienza) non significa che l'OP dovrebbe accettarlo.
Michael Johnston,

11
git fetchpotrebbe fare il lavoro. Ma potrebbe non riuscire a ottenere tutti i rami da remoto. Dovresti impostare il modello di corrispondenza del recupero. git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"riferimento: stackoverflow.com/questions/11623862/...
Jichao

363

Stavo ricevendo questo errore quando ho provato a controllare il nuovo ramo:

errore: pathspec 'BRANCH-NAME' non corrisponde ad alcun file noto a git.

Quando ho provato git checkout origin/<BRANCH-NAME>, ho ottenuto la testa staccata:

(distaccato dall'origine /)

Infine, ho fatto quanto segue per risolvere il problema :

git remote update
git fetch 
git checkout --track origin/<BRANCH-NAME>

15
con questo comando "checkout" ho questo messaggio: fatale: impossibile aggiornare i percorsi e passare al ramo 'pippo' allo stesso tempo.
NEOline,

1
Dopo aver modificato manualmente l'indirizzo remoto, non ho potuto verificare nuovi rami. "git remote update" sembrava fare il trucco.
martin

senza "git remote update" non funzionava. Grazie!
Kristiyan Tsvetanov,

git checkout --track origin/staging fatal: git checkout: --track and --no-track require -bversione git 1.5.6.5
Ivan Borshchov,

Usato al posto del terzo comandogit checkout -b staging --track origin/staging
Ivan Borshchov,

152

Ho ricevuto questo errore per un ramo che era remoto e non aveva un ramo di tracciamento locale. Anche se sono certo di aver verificato le filiali remote tramite un semplice

git checkout feature/foo

in passato, per ovviare a questo errore ho dovuto

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

Non ho idea di cosa ho fatto per farmi entrare in quella situazione.


1
Sfortunatamente, non l'ho inviato al server git remoto.
Ramon Tayag,

Questo ha funzionato per me. È successo su git v 1.6 sulla macchina FC10.
FractalSpace

26
Git di solito indovina il ramo remoto per verificare, ma quando si utilizza più di un telecomando, sembra che non sia più possibile farlo. Fonte: makandracards.com/makandra/…
Elijah Lynn,

1
fare git checkout / foo invece di git checkout foo ha funzionato per me
Alejandro Moreno

questo ha cominciato a succedere a me (in un repository con molti telecomandi e centinaia di filiali dalle quali avevo controllato con successo le filiali dall'origine per 3 anni) e sono rimasto sconcertato. All'ispezione, ho scoperto di aver aggiunto un nuovo telecomando e l'ho fatto con copia / incolla in un editor di testo invece di utilizzare il comando git, e ho dimenticato di cambiare la fetch = +refs/heads/*:refs/remotes/origin/*riga in modo che corrisponda al nuovo nome remoto. LOL. Forse è successo a Makandra? perché dopo averlo riparato, controllando il ramo ancora una volta lo ottiene dall'origine, anche se ho molti telecomandi.
Michael Johnston,

91

Se si è eliminato un ramo git branch -D yourbranchnamee si è ritirato / clonato nuovamente il repository, potrebbe essere necessario creare nuovamente il ramo locale.

Provare:

git checkout -b yourbranchname

questa opzione funziona sempre, anche se i file sono già stati modificati e si desidera inviarli al ramo appena creato.
Nerius Jok,

Questo è stato un commento utile perché mentre ho condiviso qui lo stesso problema / domanda dell'OP, le risposte fornite hanno assunto una situazione semplice. Sfortunatamente, nella mia situazione, in precedenza avevo creato SOLO un ramo locale, quindi l'avevo eliminato come indicato qui da @Francisco Alvarez, quindi, indipendentemente da come ho provato le altre soluzioni qui, non ho potuto estrarre il nuovo ramo remoto. Questa risposta mi ha salvato la pancetta.
David,

61

Ho le stesse domande e ho ottenuto alcune informazioni da questo link: git fetch non recupera tutti i rami

Quindi ora, potrei non essere sicuro di come sia avvenuta questa situazione, almeno possiamo risolverlo:

Passaggio 1. Controllare l'impostazione "remote.origin.fetch", dovrebbe essere così

$ git config --get remote.origin.fetch

+ Refs / teste / private_dev_branch: refs / telecomandi / origine / private_dev_branch

Passaggio 2. Cambia "remote.origin.fetch" per recuperare tutto

$ git config remote.origin.fetch "+ refs / heads / *: refs / remotes / origin / *"

$ git config --get remote.origin.fetch

+ Refs / teste / *: refs / telecomandi / origine / *

Quindi, puoi provare "git pull" (forse funziona anche "git fetch origin" ma non ho provato) per ottenere tutto il ramo.


@onionjake ha ragione, mi spiace di non aver controllato le domande in tutti i dettagli. Ho appena ricevuto gli stessi messaggi di errore mentre provavo la stessa azione di "git checkout <existed_branch>", ma in realtà diverso dal problema dell'originatore ----- l'originatore poteva vedere il ramo localmente mentre io no. La mia risposta potrebbe risolvere il problema per chi non ha recuperato tutti i rami in anticipo. Ma non la situazione per il problema dell'originatore.
Bearzyj

3
Molte persone tra cui me ricevono questo errore, perché potrebbero clonare un repository con --branch flag, quindi, anche dopo il recupero di git, non ottengono altri rami e non possono effettuare il checkout da remoto. Questo risolve questo problema. Grazie!
Orif Khodjaev il

Grazie mille. Stavo usando l'immagine della finestra mobile di sviluppo di Tensorflow e limita il ramo a una certa versione. Dopo aver impostato fetch config, ora posso effettuare il checkout.
Michael_Zhang,

24

Fai attenzione agli utenti di Windows - senza l' impostazione--icase-pathspecs o GIT_ICASE_PATHSPECS = 1 env var , che git pathspecs farà distinzione tra maiuscole e minuscole, nel qual caso

git checkout origin/FooBranch "Some/Path/To/File.txt"

non è lo stesso di

git checkout origin/FooBranch "some/path/to/file.Txt"

1
Una cosa da notare che non era chiaro dalla documentazione è che il --icase-pathspecsparametro deve venire prima o almeno prima-C <path>
sonyisda1

21

Se il nome del ramo e non si dispone di alcun file senza commit, provare questo

git fetch && git checkout <branch name>

Questo non sembra essere affatto correlato alla domanda?
onionjake,

Ho avuto lo stesso problema menzionato sopra, risolto usando i seguenti comandi
Sajin M Aboobakkar

19

Ho affrontato il problema mentre cambiavo ramo.

Ho fatto un tiro git sul ramo corrente e poi ho provato a controllare quello nuovo e ha funzionato

git pull // on your old branch git checkout <new_branch>


Davvero utile :)
vikifor il

Perché dovrebbe funzionare? Fa di git pullpiù che tirare l'attuale ramo?
Cameron Hudson,

Questo potrebbe essere solo un caso che stai cercando di estrarre da un ramo creato da qualcun altro e che non è ancora stato estratto nel tuo repository corrente.
Ankit Marothi,

15
git pull

Questo mi ha semplicemente risolto :)


13

Ho avuto lo stesso problema perché l'ho usato git clone --depth=1, il che implica --single-branch.

Fare un completato git clonelo risolverà.


Grazie per segnalarlo. È esattamente lo stesso problema che stavo affrontando. Grazie
Mukesh Kumar il

Potrebbe non essere necessario un clone completo. Se il ramo viene creato da qualcun altro DOPO aver originariamente clonato il repository, viene visualizzato questo errore perché il repository locale non dispone di informazioni su questo nuovo ramo. Passa al master e fai un pull git. Quindi prova a controllare il nuovo ramo.
Yasin,

12

Ho ottenuto questo quando ho fatto quanto segue:

  • IntelliJ IDE usato, collegato a git
  • Creato un nuovo file e aggiunto a git
  • Rinominato il nuovo file

Quando ho provato a controllare nella directory, ho ricevuto questo errore.

Aggiustare:

Ho aperto il repository con estensioni git. Ho visto che il file (con il vecchio nome) era in scena. Ma dal momento che non esisteva più, non poteva essere commesso.

Ho semplicemente messo in scena questo file.

Quindi ho aggiunto nuovamente il file (questa volta con il nome corretto) in git e eseguito il commit senza errori.


La cosa divertente è che funziona ancora con TortoiseGit anche se non funziona in Intellij
Marian Klühspies

3
Questo mi ha aiutato molto. Ho usato SourceTree per trovare quel f * ck r di un file e non lo ha messo in scena.
Vinchenzo,

10

Ho avuto questo problema oggi che stavo cercando di git checkout fooottenereerror: pathspec 'foo' did not match any file(s) known to git.

Si scopre che ero nel repository sbagliato . Quindi lezione imparata: controlla quale repository stai guardando prima di andare fuori di testa.


Ah - sì, sono stato io - ho creato una filiale in Bitbucket dal biglietto Jira, non ho notato che l'ha creata in un repository casuale
Keir,

sidenote: stavo lavorando con più telecomandi, uno era impostato correttamente e l'altro puntava al repository sbagliato. sooo. grazie per il promemoria, ho potuto facilmente vedere il mio problema quando ho fatto un telecomando git -v
Dreamling

9

Ho riscontrato questo errore durante il tentativo di verificare una filiale tramite:

git checkout branchX

che non avevo verificato prima. Ha funzionato solo affermando esplicitamente il telecomando:

git checkout --track origin/branchX

Il motivo era che avevo 2 telecomandi diversi (origine + altro) configurati in git config. Dato che non avevo bisogno del secondo telecomando, l'ho rimosso e voilá, ha funzionato. L'alternativa per impostare il telecomando predefinito tramite:

checkout.defaultRemote=origin

Non ha funzionato per me


Ho aggiunto questa risposta perché tutte le altre risposte suggerite non hanno funzionato per me, quindi spero che questo aiuti qualcuno che ha la stessa causa (2 telecomandi).
RS1980,

8

Innanzitutto, verifica il ramo padre, quindi digita

git fetch --all --prune 
git checkout <your branch>

Spero che sia d'aiuto!.


8

Ho risolto modificando il mio file di configurazione git Controlla il tuo file di configurazione nella tua directory git - .git\config

In precedenza aveva

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/develop:refs/remotes/origin/develop

Ho risolto modificandolo in

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/*:refs/remotes/origin/*

Si noti che la testa puntava a un solo ramo, quindi non è stato possibile trovare il riferimento ad altri rami esistenti, l'ho cambiato in * quindi controlla tutto in origine.


Grazie, amico, ore di sforzi e finalmente sono arrivato alla tua soluzione.
Sunil Lulla,

7

Sul sistema operativo Windows, per impostazione predefinita viene installato git

core.ignorecase = true

Ciò significa che i file repository git non fanno distinzione tra maiuscole e minuscole, per modificare ciò è necessario eseguire:

\yourLocalRepo> git config core.ignorecase false

puoi trovare questa configurazione nel file .git \ config


7

Ho copiato l'origine remota urlda un altro .git/configfile, facendo in modo che il mio nuovo .git/configfile mancasse seguendo la riga nella [remote "origin"]sezione

fetch = +refs/heads/*:refs/remotes/origin/*

Aggiunta sopra la linea fissa error: pathspec 'master' did not match any file(s) known to git.


6

Ho avuto lo stesso problema .. Pensavo di avere il nome del ramo fooquando provo a:

git checkout foo

Stavo ottenendo:

error: pathspec 'foo' did not match any file(s) known to git.

Quindi ho provato il nome completo del ramo:

git checkout feature/foo

poi ha lavorato per me.


5

Se succede su Windows, è probabilmente il problema del caso del nome file.

Ho avuto questo errore oggi - ho creato un nuovo file, aggiunto a GIT, quindi ho cambiato una lettera nel nome del file da inferiore a superiore e quindi non sono riuscito a fare nulla - commettere, ripristinare, eliminare il file dal repository.

L'unica soluzione che ho trovato è stata quella di cambiare nuovamente il nome del file nello stesso caso in cui ho aggiunto questo file a GIT, quindi facendo GIT ripristini per rimuovere questo file da GIT, quindi cambiando di nuovo il nome del file come voglio. Dopo queste modifiche potrei impegnarmi in repo e quindi spingere senza alcun problema.


Questo ha aiutato, ma dovrebbe essere menzionato per fare la ridenominazione tramite git mv. Immagino di averlo fatto in questo modo, perché farlo tramite il mio IDE (IntelliJ PhpStorm) non è riuscito per me ...
Dennis98,

5

Nel mio caso ho DUE branch 1) master (che è per server live) 2) dev (test server). Avevo impostato più telecomandi per inviare il codice sul rispettivo server. Quando ho provato a cambiare ramo ho avuto l'errore comeerror: pathspec 'master' did not match any file(s) known to git.

Puoi vederli da git remote -v. Avevo rimosso altri telecomandi tranne il origintelecomandogit remote remove <remote-name>

Poi git fetch

Ora sono in grado di controllare il ramo di git checkout <branch-name>.


5

Ho riscontrato questo stesso problema quando stavo giocando con git. Quando provo il mio primo commit ...

git commit -m 'first commit!'

Ho ricevuto l'errore menzionato dall'OP ...

error: pathspec 'commit!'' did not match any file(s) known to git.

Ho pensato che avrei potuto confondere Git usando una parola chiave nel messaggio di commit, quindi ho provato qualche altra parola e ho ricevuto lo stesso errore.

Finalmente ho usato le virgolette nel messaggio ...

git commit -m "first commit!"

Questo si è rivelato un successo ...

[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt

5

Avevo fatto uno sciocco errore nel non fornire -m flag mentre commettevo (succede lol)

git commit -m "commit message in here"

stessa situazione qui. dimentica semplicemente "-m" e ottieni lo stesso messaggio di errore.
Niuya,

5

Ho avuto una causa diversa

Ho avuto uno script che in sostanza cerca tutti i rami corrispondenti alla chiave di emissione di jira in "PRJ-1234" tra tutti i rami per eseguire un comando di checkout git branch sul ramo corrispondente

Nel mio caso il problema era che 2 o più rami condividevano la stessa chiave jira e quindi il mio script falliva con il suddetto errore

Eliminando il vecchio ramo inutilizzato e assicurandosi che solo un singolo ramo avesse il riferimento alla chiave jira risolto il problema

Ecco il mio codice nel caso qualcuno voglia usarlo

git remote update
git fetch --all --prune 
git branch -r --list *$1* | xargs git checkout --force

salva questo come switchbranch.sh

Quindi usalo dal terminale ./switchbranch.sh PRJ-1234


Per me, era anche il percorso / nome a monte giusto e includeva anche il recupero di tutti i tag remoti e "git fetch --all --tags --prune" trovando il nome giusto: "git branch -a | grep some_upstream" prima di verificarlo con il percorso completo come "git checkout -f --track -b new_branch remotes / upstream / some_upstream_branch"
kisna

4

Nessuna di queste risposte ha risolto il mio problema:

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git log --format=oneline
b9cc6a9078312865280fb5432a43e17eff03a5c6 Formatted README
288772f36befe6bd60dd41b8185f1e24e0119668 Updated README documentation
d2bdbe18f4169358d46fad50eacfb89786df3bf8 Version object v3.0.0-SNAPSHOT
a46b1910a3f548b4fa254a6055d25f68d3f217dd VersionFactory is now Platform agnostic
24179ae569ec7bd28311389c0a7a85ea7b4f9594 Added internal.Platform abstraction
252b684417cf4edd71aed43a15da2c8a59c629a7 Added IPlugin implementation for Sponge
e3f8d21d6cf61ee4fc806791689c984c149b45e3 Added IPlugin implementation for Bukkit
aeb403914310b4b10dee9e980cf64472e2bfda79 Refactored Version.java
ef50efcff700c6438d57f70fac30846de2747a7e Refactored TesterFactory
a20808065878d4d28657ae362235c837cfa8e625 Added IPlugin abstraction
9712a3575a70060d7ecea8b62bb5e888fdc32d07 Heavily refactored Tester
02d025788ae740dbfe3ef76a132cea8ca4e47467 Added generic Predicate<T> interface
9c565777abea9be6767dfdab4ab94ed1173750dd Minor refactoring of testCompareTo()
2ff2a28c221681e256dcff28770782736d3a796a Version object v2.0.1
d4b2e2bd830f77cdbc2297112c2e46b6555d4393 Fix compareTo()
05fe7e012b07d1a5b8de29804f96d9a6b24229a1 Make compareTo() fail
6e85371414357a41c1fc0cec0e75adba92f96832 Fix VersionFactory passing null
c1fd1f032f87d860d5ed9d6f6679c9fa522cff8d Version object v2.0
62c3a92c008a2ed11f0a4d016080afc3541d0700 Version object v1.2
c42e9e617128085e872c51b4d977a04e48d69e8f Deprecated, doc'd, future-proofed getNm


Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 3a796a
error: pathspec '3a796a' did not match any file(s) known to git.

Stavo cercando di tornare indietro e creare il commit per Version object v2.0.1. Fortunatamente, ho avuto l'idea di provare l'intero codice hash e ha funzionato! Ciò significa che stavo usando la parte sbagliata del codice hash.

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 2ff2a
Note: checking out '2ff2a'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 2ff2a28... Version object v2.0.1

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version ((2ff2a28...))
$

Come mostrato sopra, per i codici hash parziali, è necessario fornire il front-end, non il back-end.


4

Mi è successo dopo aver rinominato un file non registrato in Android Studio.

Git sembrava avere la vecchia versione nel suo repository, anche se non esisteva più.

fetch, pull, checkout, add all and so on did not help in my case!

Così ho aperto la GUI Git di TortoiseGit che mi ha mostrato il file esatto che ha causato problemi.

Successivamente ho eliminato il file dal repository con

git rm -r --cached /path/to/affected/file

e il problema era sparito


3

Nel mio caso avevo rinominato un file modificando il caso del file, ovvero SomeFile.js -> someFile.js

Penso che fosse legato al problema. Fare un recupero git non ha risolto il problema.

Ho spostato i file dal mio progetto, ho fatto un recupero e ho fatto una spinta senza di essi. Poi ho fatto un recupero, li ho aggiunti di nuovo e ho fatto una spinta, e ha funzionato. Non so se fossero necessari tutti quei passaggi, ma alla fine ha funzionato.


Push senza il file rinominato e l'emissione di git add file dopo lo ha fatto per me
phil294

3

nel mio caso accedo alla directory di sottomodulo senza farlo

  • git submodule init
  • git submodule update

Quindi git era collegato alla cartella principale che in effetti mancava quel ramo.


3

controlla se non è un refuso nel nome del file di destinazione. Stavo tentando di mettere in scena digitando

git add includes/connection..php

Ma non ho notato che stavo usando due punti Ma poi scrivo

git add includes/connection.php

Funziona


2

Per me, è stato un problema con le mie credenziali


Dopo aver provato alcune delle risposte, uno di loro mi ha aiutato a risolvere il problema:

L'esecuzione git fetchha generato il seguente errore:

Impossibile risolvere l'host: bitbucket.org

Tutto quello che dovevo fare era forzare il mio IDE (VS Code nel mio caso) a ricordare le mie credenziali:

git config --global credential.helper wincred

Git ha sincronizzato immediatamente tutte le modifiche e git checkout <branche>ora funziona bene!


1

Stavo ottenendo lo stesso pathspec errorsu git-bash. Ho usato Tortoise Git su Windows per cambiare / controllare il ramo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.