Nós somos novos no git e quero definir uma tag no início do nosso repositório. Nosso código de produção é o mesmo do repositório inicial, mas fizemos confirmações desde então. Uma tag no início nos permitiria "reverter" a produção para um estado conhecido e estável.
Então, como adicionar uma tag a um commit arbitrário e antigo?
git
version-control
git-tag
hogsolo
fonte
fonte
Respostas:
Exemplo:
Onde
9fceb02
é a parte inicial do ID de confirmação.Você pode pressionar a etiqueta usando
git push origin v1.2
.Você pode fazer
git log
para mostrar todos os IDs de confirmação em sua ramificação atual.Há também um bom capítulo sobre marcação no livro Pro Git.
Aviso: Isso cria tags com a data atual (e esse valor é o que será exibido em uma página de lançamentos do GitHub, por exemplo). Se você deseja que a tag seja datada com a data de confirmação, consulte outra resposta .
fonte
-a
e as-m "Message here"
partes se você não quiser adicionar uma mensagem:git tag v1.2 9fceb02
-a
e-m
. A página de manual parece dizer que-a
está implícita quando-m
usada.git push --tags origin master
enviaria todas as tags da filial local para remotas. Prefiragit push origin <tag_name>
pressionar apenas a tag criada. Consulte: stackoverflow.com/a/5195913/452708 , git-scm.com/book/en/v2/Git-Basics-TaggingApenas o código
Detalhes
A resposta de @dkinzer cria tags cuja data é a data atual (quando você executou o
git tag
comando), não a data do commit. A ajuda do Gittag
possui uma seção "Em tags de backdating", que diz:A página "Como marcar no Git" nos mostra que podemos extrair o tempo do commit HEAD via:
Podemos extrair a data de um commit específico via:
No entanto, em vez de repetir o commit duas vezes, parece mais fácil alterar o HEAD para esse commit e usá-lo implicitamente nos dois comandos:
fonte
A maneira mais simples de fazer isso é:
com
f4ba1fc
sendo o início do hash do commit você quiser tag ev1.0.0
sendo a versão que você deseja marcar.fonte
Use o comando:
Onde v1.0 é o nome da marca e ec32d32 é o commit que você deseja marcar
Depois de concluído, você pode enviar as tags por:
Referência:
Git (controle de revisão): Como posso marcar um ponto de confirmação anterior específico no GitHub?
fonte
OK , você pode simplesmente fazer:
Portanto, se você deseja adicionar a tag: 1.0.2 a confirmar
e50f795
, basta:Além disso, você adiciona uma mensagem no final, usando
-m
algo como isto:Afinal, você precisa empurrá-lo para o
remote
, para fazer isso, basta fazer:Se você possui muitas tags que não deseja mencioná-las uma a uma, basta:
para juntar todas as tags ...
Além disso, criei as etapas na imagem abaixo, para obter mais esclarecimentos sobre as etapas:
Você também pode copiar a tag no Hub ou usar ferramentas como o SourceTree . Para evitar as etapas anteriores, entrei no meu Bitbucket nesse caso e fiz isso a partir daí:
No tags
e clique no+
ícone:fonte
Esta é uma pergunta antiga, e as respostas já dão todo o trabalho, mas também há uma nova opção que pode ser considerada.
Se você estiver usando o SourceTree para gerenciar seus repositórios git, poderá clicar com o botão direito do mouse em qualquer confirmação e adicionar uma tag a ele. Com outro clique do mouse, você também pode enviar a tag diretamente para a ramificação na origem.
fonte
Com base nas respostas dos outros, aqui está uma solução de uma linha que define a data da tag para quando ela realmente aconteceu, usa tag anotada e não requer
git checkout
:onde
tag
é definido como a string de tag desejada ecommit
com o hash de confirmação.fonte
A resposta do @Phrogz é ótima, mas não funciona no Windows. Veja como marcar um commit antigo com a data original do commit usando o Powershell:
fonte