what - Mesclando entre garfos no GitHub




what is git tag (2)

Então a resposta aceita acima não funcionou perfeitamente para mim. Ou seja, parecia perder o link para o autor original do github quando funcionava, e depois parecia não funcionar mais depois disso. Eu acho que o problema era que a resposta deixava de fora o / entre o nome remoto e o ramo. Então, ele buscaria uma ramificação chamada master do controle remoto, mas não conseguiria fazer nada com ela. Não tenho certeza do porque.

Aqui está a maneira como o github recomenda em seu site .

Depois de ter clonado o seu repositório bifurcado, você precisa adicionar um controle remoto apontando para o original como a resposta anterior disse. Eles gostam de chamá-lo a montante, mas isso não importa.

git remote add upstream git://github.com/octocat/Spoon-Knife.git

Então você busca

git fetch upstream

e você verá as versões disponíveis para mesclar

From git://github.com/octocat/Spoon-Knife.git
 * [new branch]      gh-pages   -> upstream/gh-pages
 * [new branch]      master     -> upstream/master

Então você só precisa escolher o ramo em que deseja se fundir. Lembre-se de que essas não são ramificações locais, elas são armazenadas sob controles remotos. Mas desde que você não tenha uma filial local chamada upstream / master (que é permitida), você deve se fundir bem com a linha abaixo:

git merge upstream/master

Alternativamente, você poderia atalho a busca / mesclagem (após a busca inicial, pelo menos) com esta linha:

git pull upstream/master

Eu bifurquei um repositório do GitHub. Então eu empurrei algumas mudanças para o meu garfo. Então o repositório original fundiu minhas mudanças e algumas outras. Agora, quero mesclar as alterações que estou perdendo. Eu tentei um simples puxão seguido de push, mas isso rendeu meus commits em duplicata. Qual é a melhor maneira de fazer isso?


Você provavelmente tem um "remote" para cada repositório. Você precisa puxar do controle remoto e empurrar para o outro.

Se você clonou originalmente do seu fork, esse controle remoto será chamado de "origem". Se você ainda não adicionou, você precisará adicionar o repositório do primeiro cara como outro controle remoto:

git remote add firstguy git://github.com/firstguy/repo.git

Depois que tudo estiver configurado, você deve realmente ser capaz de

git pull firstguy master
git push origin

Lembre-se, git pull nada mais é do que uma macro que git fetch e git merge , nessa ordem. Você só precisa buscar a lista de commits do repositório do primeiro cara e então mesclar sua ramificação na sua árvore. A fusão deve fazer a coisa certa com seus commits em ambos os branches.

GitHub, em toda a sua grandiosidade perpétua, dá-lhe um atalho, é claro. Há um botão "fast-forward" no seu fork do repositório que você pode usar para pegar seu fork se estiver totalmente integrado ao outro lado.





github