Sou um novato git e continuo lendo sobre um branch "master". "Mestre" é apenas um nome convencional usado pelas pessoas ou tem um significado especial como HEAD
?
Quando faço git branch
no clone que tenho, vejo apenas um único branch - aquele em que estou. Nenhum "mestre" em tudo. Se eu digitar git checkout master
(como vejo em muitos tutoriais ou guias), recebo
error: pathspec 'master' did not match any file(s) known to git.
Estou apenas confuso sobre por que meu clone não tem um master
que todos parecem sugerir que ele sempre existe.
git add .
,git commit -m "Test"
e, em seguidagit push -u origin master
.git ls-remote origin master
não mostra nada.Para fazer check-out de um branch que não existe localmente, mas está no repo remoto, você pode usar este comando:
fonte
fatal: Cannot update paths and switch to branch 'master' at the same time.
master
é apenas o nome de um branch, não há nada de mágico nisso, exceto que é criado por padrão quando um novo repositório é criado.Você pode adicioná-lo de volta com
git checkout -b master
.fonte
git checkout -b master
apenas adiciona um novo branch do atual para mim.git checkout -b master
criará ummaster
branch de qualquer coisaHEAD
- então se você estiver em outro branch, ele criará ummaster
branch a partir dele. Exceto se você já tiver ummaster
branch (o que você terá, a menos que, por exemplo, você o deletou ou nunca fez commit nele). Se você já tem ummaster
branch, este comando apenas lhe dará um erro.master
é apenas um branch, que pode ser excluído comgit branch -d master
. Embora o git o proteja de deletar o branch em que você está atualmente, não há nada de especial protegendo omaster
branch. Mais especificamente do que isso, é difícil dizer como você fez isso. Talvez você use ohistory
comando do seu shell para dar uma olhada?git checkout -b master
só funcionará quando HEAD estiver definido como origin / master. Em qualquer outro caso (por exemplo, você está em 'desenvolver'),git checkout -b master
criará um branch chamado 'mestre' que é baseado na posição HEAD atual (por exemplo, de 'desenvolver'). Você também precisa indicar qual branch será o bastão do novo. @Bunyk tem a resposta correta neste tópico: stackoverflow.com/a/21330943/287109Na verdade, tive o mesmo problema com um repositório completamente novo. Eu até tentei criar um com
git checkout -b master
, mas não criaria o branch. Então percebi que se fizesse algumas alterações e as confirmasse, git criava meu branch master.fonte
No meu caso, havia um branch de desenvolvimento , mas nenhum branch master . Portanto, eu clonei o repositório apontando o HEAD recém-criado para o branch existente. Em seguida, criei o branch master ausente e atualizei o HEAD para apontar para o novo branch master.
fonte
se for um novo repo que você clonou, ainda pode estar vazio; nesse caso:
git push -u origin master
provavelmente deve resolver isso.
(fiz no meu caso. não tenho certeza se é o mesmo problema, pensei que deveria postar isso apenas para o caso. pode ajudar outros.)
fonte
Encontrei o mesmo problema e descobri o problema. Quando você inicializa um repositório, não há ramos na verdade. Ao iniciar um projeto, execute
git add .
e, em seguida,git commit
o branch master será criado.Sem verificar nada, você não tem um branch master. Nesse caso, você precisa seguir as etapas que outras pessoas sugeriram.
fonte
Parece que deve haver pelo menos um commit local no branch master para fazer:
Então, se você fez
git init .
e depoisgit remote add origin ...
, ainda precisa fazer:fonte