Eu tenho dois projetos. Um é o projeto "oficial" e o segundo é uma modificação leve (alguns arquivos foram adicionados). Criei um novo ramo e coloquei novos arquivos neles. Porém, durante o desenvolvimento, alguns arquivos comuns aos dois ramos são alterados.
Como comprometo apenas esses arquivos?
git
git-branch
git-commit
Nips
fonte
fonte
Respostas:
Suponho que você deseja confirmar as alterações em um ramo e, em seguida, tornar essas alterações visíveis no outro ramo. No git, você não deve ter alterações em cima do HEAD ao alterar ramificações.
Você confirma apenas os arquivos alterados:
Ou, se tiver certeza de que possui uma área de preparação limpa, pode
Se você deseja disponibilizar esse commit nos dois ramos,
fonte
git commit [some files]
que implica a--only
opção) deve ser usado. O primeiro exemplo (git add [some files]
seguido porgit commit
) também confirmará outras alterações que foram preparadas.Obtenha uma lista dos arquivos que você deseja confirmar
Adicione os arquivos ao teste
Verifique para ver o que você está comprometendo
Confirme os arquivos com uma mensagem de confirmação
Se você acidentalmente confirmar os arquivos errados
Se você deseja desfazer os arquivos e começar de novo
fonte
Você pode confirmar alguns arquivos atualizados, como este:
fonte
Parte disso parece "incompleto"
Grupos de pessoas NÃO saberão se devem usar aspas etc.
Adicione 1 arquivo específico mostrando os caminhos do local também
Confirmar (lembre-se, a confirmação é apenas local, não está afetando nenhum outro sistema)
Enviar para repo remoto
Outra (s) resposta (s) mostra (s) o esconderijo etc., que você às vezes desejará fazer
fonte
Se você já preparou os arquivos, simplesmente desinstale-os:
Em seguida, adicione-os pouco a pouco novamente.
fonte
Suponha que você tenha feito alterações em vários arquivos, como:
Mas você deseja confirmar apenas alterações de Arquivo1 e Arquivo3.
Existem duas maneiras de fazer isso:
1.Stage apenas esses dois arquivos, usando:
então, comprometa
então empurre,
2. Confirmação direta
então empurre,
Na verdade, o primeiro método é útil no caso de estarmos modificando arquivos regularmente e organizando-os -> Projetos grandes, geralmente projetos ao vivo.
Mas, se estamos modificando arquivos e não os preparando, podemos fazer o commit direto -> Pequenos projetos
fonte
--only
. Em seguida, seria o mesmo comandogit commit --only file1 --only file3 -m "my message"
ou usando um atalho comogit commit -o file1 -o file3 -m "my message"
Referência: git-scm.com/docs/git-commitEsta é uma abordagem simples se você não tiver muitas alterações de código:
Então, se você quiser o código que você removeu (bits que você não confirmou) em um commit separado ou em outro ramo, enquanto ainda estiver nesse ramo, faça:
Com a etapa 5, como você já aplicou o stash e confirmou o código desejado na etapa 4, o diff e o não rastreado no stash recém-aplicado são apenas o código que você removeu na etapa 3 antes de confirmar na etapa 4.
Como essa etapa 6 é uma reserva do código que você não deseja confirmar, pois provavelmente não deseja perder essas alterações, certo? Portanto, o novo stash da etapa 6 agora pode ser comprometido com este ou qualquer outro ramo, aplicando o git stash no ramo e confirmação corretos.
Obviamente, isso pressupõe que você execute as etapas em um fluxo, se você esconder em qualquer outro ponto dessas etapas, precisará observar a ref do esconderijo para cada etapa acima (em vez de apenas esconderijo básico e aplicar o esconderijo mais recente).
fonte