Etiqueta de Git en la confirmación anterior

Ok, me estoy encontrando con un problema o tal vez no y simplemente no entiendo.

Lo que estoy haciendo es tratar de comprometer y presionar el compromiso, pero también labelrlo.

Estoy haciendo esto desde los commands de shell corriendo gulp, así que eso podría tener algo que ver con eso,

git add [files]

git commit -m [message]

git tag -a [tag name] [branch] -m [message]

y entonces

git push origin [tag name]

Pero el problema es que la label se inserta en una confirmación anterior en lugar de lo que estoy comprometiendo actualmente.

Mi tarea de gulp actual se ve así:

 var gulp = require('gulp'), plugin = require('gulp-load-plugins')({ camelize: true }), ghPages = require('gulp-gh-pages'), run = require('gulp-run'), prompt = require('gulp-prompt'); module.exports = function() { console.log('Deployment is running currently, please be patient.'); return gulp.src('modules/**/*') .pipe(ghPages({ remoteUrl: '[user]@[ip]:[branch]', branch: '[branch]' })) .on('end', function() { return gulp.src('modules/**/*') .pipe(prompt.prompt({ type: 'input', name: 'release', message: 'Is this a new release? (y/n)', }, function( res ) { if ( res.release == 'y' ) { return gulp.src('modules/**/*', { read: false }) .pipe(prompt.prompt({ type: 'input', name: 'releaseNumber', message: 'What is the new release version number? (egxxx)' }, function( res ) { run('git fetch --all').exec(); run('git tag -av' + res.releaseNumber + ' [branch] -m "Bump release"').exec(); run('git push origin v' + res.releaseNumber + ' [branch]').exec(); })); } })); }); }; 

Lo que es salida en la console es:

 Deployment is running currently, please be patient. [16:12:28] [gh-pages (branch)] Cloning repo [16:12:28] [gh-pages (branch)] Checkout remote branch `branch` [16:12:28] [gh-pages (branch)] Updating repository [16:12:29] [gh-pages (branch)] Copying files to repository [16:12:29] [gh-pages (branch)] Adding 1 files. [16:12:29] [gh-pages (branch)] Committing "Update 2016-11-09T21:12:18.579Z" [16:12:29] [gh-pages (branch)] Pushing to remote. [16:12:30] Finished 'deploy' after 12 s [16:12:30] Finished 'build' after 15 s ? Is this a new release? (y/n) y ? What is the new release version number? (egxxx) 0.0.5 $ git tag -a v0.0.5 branch -m "Bump release" $ git push origin v0.0.5 To [user]@[ip]:[repo] * [new tag] v0.0.5 -> v0.0.5 

Confirmar registro

Como puede ver en la image, la label no se está poniendo en la confirmación más reciente que estoy confirmando. Lo está agregando a la confirmación anterior.

También estoy en el master presionando a otra [twig]. Tal vez ese podría ser el problema?

Deberías mostrar un ejemplo de trabajo del problema. Aquí hay una demostración donde todo funciona como se espera:

 #!/bin/bash init() { git init --bare demo.git git clone --quiet demo.git demo } commit_line () { echo $1 > file git add file git commit -m "$2" } init pushd demo commit_line one first commit_line two second git tag -a -m "tag msg" tag-name HEAD git push origin master tag-name 

Ejecutando ese script para crear un repository de demo.git y una carpeta de trabajo de demo . Después de ejecutar esto, ejecuto lo siguiente:

 [email protected] ~/tmp/demo.git $ git log --graph --decorate --abbrev-commit --oneline * 06a067a (HEAD -> master, tag: tag-name) second * daa72b4 first 

Por lo tanto, la label se ha asociado correctamente con la confirmación más reciente, que también es la punta del master y, actualmente, HEAD . En la carpeta de trabajo se ve similar, excepto que también podemos ver que el maestro local coincide con el repository aguas arriba.

 [email protected] ~/tmp/demo $ git graph * 06a067a (HEAD -> master, tag: tag-name, origin/master) second * daa72b4 first 

He seguido los commands de tu gulpfile y ejecuto los commands debajo de mi máquina

 $ git clone https://github.com/jkulak/git-test $ cd git-test/ $ touch first-file $ git add first-file $ git commit -m "Create first commit" $ touch second-file $ git add second-file $ git commit -m "Create second commit" $ git tag -a tag1 master -m "Creating first tag after second commit" $ git push origin master $ git push origin tag1 

Cuando miro en GitHub, veo:

  1. https://github.com/jkulak/git-test/commits/master – second commit con hash 7008d2d
  2. https://github.com/jkulak/git-test/releases – tag1 apuntando a 7008d2d

Ambos apuntan a / tienen el mismo hash / commit.

Entonces, lo que escribió "label se empuja en una confirmación anterior en lugar de lo que estoy comprometiendo actualmente". no parece ser la verdad, por favor, ¿puedes comprobarlo?

Tampoco entendí tu última oración, ¿te importaría aclarar?

También después de empujar, solo para estar seguro

 $ git log * 7008d2d (HEAD -> master, tag: tag1, origin/master) Create second commit * b6d13c4 Creted first commit 

Se ve bien localmente también.