Eu tenho um repositório no github com um branch principal (master) e um branch para algum trabalho experimental. Fiz alguns commits e empurrei para o branch experimental e estava tudo bem.
Agora, em uma máquina diferente, eu tento clone meu repositório (git clone repositório ) e depois mudar para o ramo experimental (git checkout branchname ) mas cada vez que eu faço isso da minha cabeça fica destacada e eu não posso empurrar as minhas alterações. O que estou fazendo de errado? Tenho a sensação de que estou perdendo um conceito git fundamental em algum lugar, mas ler páginas de manual git aleatórias não está me dando nenhuma pista.
Sou novo no git, então sinto muito se estou sendo um idiota, mas não consigo encontrar nada nos documentos que me ajudem a recolocar minha cabeça.
EDITAR
O conceito de um ramo de rastreamento é o que estava faltando. Agora que groco esse conceito, está tudo claro. Pessoalmente, acho a git branch --track
sintaxe muito mais intuitiva do que git checkout -b branch-name origin/branch-name
.
Obrigado pela ajuda!
fonte
git switch
: veja minha resposta abaixo .Respostas:
Por conveniência, você pode usar a mesma string para localname e branchname.
Quando você fez check-out,
origin/branchname
não estava realmente fazendo check-out de um branch.origin/branchname
é um nome "remoto", e você pode obter uma lista deles comSe você tiver as cores ativadas, as ramificações locais terão uma cor e as remotas terão outra.
Você deve primeiro fazer uma ramificação remota rastreada localmente para poder alternar para ela e trabalhar nela.
fonte
git config --global --add color.ui true
Agora crie um branch de rastreamento:
Depois de trabalhar lá, basta acessar o github
fonte
Para expandir a resposta de Kent, depois de fazer seu clone, o único branch que você terá (remotos não contam) é aquele que estava ativo no repositório do qual você clonou - master no seu caso.
Portanto, primeiro você deseja criar um novo branch para rastrear o branch experimental remoto:
e então confira:
No entanto, Kent está correto - esses dois comandos podem ser combinados
fonte
Com Git 2.23 (agosto de 2019), você usaria o
git switch
comandoSe você tiver uma filial remota com o mesmo nome, ela será rastreada automaticamente:
fonte