No git, se eu tiver alguns blocos do mesmo arquivo testados em meu índice, como posso remover o estágio de um deles de forma interativa?
Existe alguma alternativa para remover o teste de todo o arquivo e, em seguida, reorganizar os pedaços que desejo manter ou desfazer manualmente as alterações na cópia de trabalho e, em seguida, adicionar interativamente essas alterações desfeitas?
git stash save --keep-index
para salvar e redefinir as alterações atuais da cópia de trabalho. Em seguida, você pode redefinir seu arquivo e desfazer as alterações indesejadas. Se você copiar o arquivo para algum local temporário primeiro, poderá usardiff
para salvar as alterações que desfez. Em seguida, você pode adicionar o arquivo novamente (não há necessidade de uma adição interativa, pois você escondeu as outras alterações nas quais não estava interessado). Usegit stash pop
para recuperar as alterações antigas ediff
para aplicar as alterações que você desfez. Bastante pesado ... :-(The short form -p also works for both commands.
.. Você quer dizergit reset -p filename
?git add -p filename
seleciona seletivamente as alterações desse arquivo e,git reset -p filename
seletivamente, remove as alterações. Também existe ogit checkout -p -- filename
, que permite descartar seletivamente as alterações de um arquivo. Aviso: cada um deadd
ereset
pode ser usado para desfazer o outro dos dois, mas se você usar essa forma decheckout
para descartar uma alteração, não poderá recuperá-la.git gui
tem uma interface de usuário decente para encenar ou desmontar pedaços ou linhas interativamente. Existem clientes GUI mais bonitos / melhores, masgit gui
é leve, integrado e de plataforma cruzada (lin, win, mac).https://git-scm.com/docs/git-gui
Basta clicar com o botão direito em um pedaço para colocar / tirar o palco. Para linhas, destaque as linhas primeiro e, a seguir, clique com o botão direito.
fonte
GitX tem uma bela IU para desempatar pedaços de um arquivo:
O cliente oficial não é mantido há algum tempo, mas um fork do GitHub com mais recursos é popular em alguns círculos. ( postagem no blog sobre isso )
fonte
git gui
, exceto que não tenho certeza se usaria a palavra "legal";)