Remover um arquivo em uma ramificação no git implica removê-lo da ramificação mestre também?

2

Acabei de encarar uma situação que parece ilógica para mim com o Git. Eu tenho um repo com muitos commits, então nesse estágio ele tem apenas um branch ( master ).

SuponhaqueesseramotenhaumarquivochamadoMyFile.txt.Agoraprecisocriarumaramificaçãodiferenteporquequerofazeralgumasalteraçõesemalgunsarquivosenãoquerofazerissodiretamentenobranchmaster,entãocorro:

gitcheckoutiss53

Agoraoesquemaéassim:

Tudobem,mudeiparabranchiss53,corrols-leMyFile.txt.UmadasalteraçõesincluiaexclusãodoarquivoMyFile.txt,portanto:

gitrmMyFile.txt

Bom,executarls-lnovamentemostraquenãohámaisMyFile.txt.Entãoeumudodevoltaparaobranchmaster:

gitcheckoutmaster

Mas...oarquivoMyFile.txtdesapareceutambém.Minhalógicadizque,seeuapagaroarquivoemumaramificação,eledeveseraplicadosomenteaessaramificação,entãoporqueoarquivotambéméexcluídodaramificaçãomaster?Notequeeunãofiznenhumcommitainda,apenasramificando.

Nota:Ambasasimagenssãoretiradasde Git-scm .

    
por nKn 16.09.2015 / 22:13

1 resposta

2

A resposta está na sua pergunta:

Note that I haven't made any commits yet, just branching.

Se você não confirmar, as alterações serão sempre mantidas em seu diretório de trabalho. Alternar o ramo não afeta seu diretório de trabalho, e o diretório de trabalho também não afeta seu último commit. Você está vendo que o arquivo foi excluído, mas a realidade é que ele é excluído apenas do diretório de trabalho. Se você quiser limpar as alterações e retornar ao último commit use este comando:

git reset --hard HEAD

O arquivo será restaurado novamente.

Talvez não seja uma lógica para você, mas esse comportamento pode ser útil. Imagine que você tenha duas ramificações: master e development e sempre trabalhe com development antes de mover as alterações para master . Digamos que você tenha esquecido de mudar para development antes de começar a trabalhar, então, antes de confirmar, você percebeu que está em master . A solução é simples, basta mudar para development e depois confirmar.

    
por 16.09.2015 / 22:45

Tags