@@ -342,20 +342,24 @@ Un aspecto fundamental del desarrollo de aplicaciones es tener un adecuado
342
342
control de versiones. Si decidimos usar Git _, :program: `Visual Studio Code ` nos
343
343
proporcionará una excelente integración.
344
344
345
+ Requisitos
346
+ ----------
345
347
Previamente, sin embargo, necesitaremos:
346
348
347
349
* Tener instalado :deb: `git ` en el sistema.
348
350
* Tener creada una cuenta en Github _.
349
351
350
- Cumplido eso podemos partir de dos comienzos distintos:
352
+ Inicialización
353
+ --------------
354
+ Cumplido eso podemos partir de dos comienzos distintos para convertir el espacio de trabajo en un repositorio de Git también:
351
355
352
356
#. Definir el control de versiones en un espacio de trabajo que antes careciera
353
357
de él.
354
358
#. Clonar un repositorio ya existente para constituir con su contenido un espacio de
355
359
trabajo.
356
360
357
- Para **lo primero ** basta abrir un espacio de trabajo y pinchar sobre el icono de
358
- "bifuración de ruta" que se puede ver a la izquierda:
361
+ Para **lo primero ** basta abrir un área de trabajo y, ya con el área abierta,
362
+ pinchar sobre el icono de "bifurcación de ruta" que se puede ver a la izquierda:
359
363
360
364
.. image :: files/git-init.png
361
365
@@ -365,6 +369,18 @@ permite indicar con qué mensaje queremos identificarlo):
365
369
366
370
.. image :: files/git-vi.png
367
371
372
+ .. caution :: El *commit* necesita realizarse bajo una identidad. Si no hay
373
+ definida ninguna en el archivo de configuración de *Git *
374
+ (:file: `~/gitconfig ` en *Linux * o :file: `%USERPROFILE%\. gitconfig ` en
375
+ *Windows *) la acción no se llevará a cabo, así que tendremos que realizarla
376
+ antes:
377
+
378
+ .. code-block :: ini
379
+
380
+ [user]
381
+ name = " Perico de los Palotes"
382
+ email = " perico@example.com"
383
+
368
384
Si, además, queremos sincronizar con un repositorio de *Github *, deberemos volver
369
385
a pinchar sobre el icono de "bifurcación de ruta" y escoger *Publicar la rama *:
370
386
@@ -375,12 +391,6 @@ hubiéramos hecho antes) y escoger el nombre para el nuevo repositorio:
375
391
376
392
.. image :: files/git-name.png
377
393
378
- A partir de ahora, cualquier cambio que hagamos en un archivo respecto a la
379
- última versión confirmada (el último *commit *) se notará en el propio editor e,
380
- incluso podremos consultar en qué consiste:
381
-
382
- .. image :: files/git-mod.png
383
-
384
394
.. caution :: El programa atiende a lo que se haya indicado en la configuración
385
395
de git (*Linux * la almacena en :file: `~/.gitconfig `), si es que el usuario ya
386
396
ha usado y configurado anteriormente :program: `git ` fuera de :program: `Visual
@@ -420,12 +430,82 @@ incluso podremos consultar en qué consiste:
420
430
name = Yo cuando uso vscode
421
431
email = cuenta2@example.com
422
432
423
- La otra opción para comenzar era **clonar un repositorio ** para lo cual no
433
+ La otra opción para comenzar es **clonar un repositorio ** para lo cual no
424
434
tenemos más que declarar nuestro propósito y especificar cuál es la dirección
425
435
del repositorio:
426
436
427
437
.. image :: files/git-clone.png
428
438
439
+ En este caso, podemos escribir directamente la dirección del repositorio (como
440
+ se observa en la captura) o pinchar sobre "Clonar desde GitHub" para identificarnos
441
+ con un usuario. En este segundo caso (o si ya hubiéramos estado identificados
442
+ previamente), se sustituirá esa leyenda por la lista de repositorios del usuario
443
+ y podremos elegirlos directamente.
444
+
445
+ Sincronización
446
+ --------------
447
+ Una vez que tengamos asociado el directorio local con un repositorio remoto, el
448
+ programa será capaz de marcarnos qué archivos hemos cambiado respecto a la
449
+ versión del último *commit *, nos lo mostrará en el propio editor e incluso
450
+ podremos consultar en qué consiste ese cambio y revocarlo:
451
+
452
+ .. image :: files/git-mod.png
453
+
454
+ Con el soporte nativo para *Git * de :program: `Visual Studio Code ` sólo podremos
455
+ hacer comparaciones entre la última versión moficiada y la última confirmada
456
+ (*commit *). Sin embargo, si instalamos la extensión `Gitlens
457
+ <https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens> `_ podremos
458
+ hacer estas comparaciones con todas las versiones anteriores:
459
+
460
+ .. image :: files/git-gitlens.png
461
+
462
+ Otra circunstancia con la que nos podemos encontrar es que un área de trabajo
463
+ que ya tenemos asociada a un repositorio remoto, quede desfasada y queramos,
464
+ antes de comenzar a programar, sincronizarla para que quede en el estado más
465
+ avanzado del repositorio. Para ello, simplemente, podemos hacer un "*pull *" tal
466
+ como haríamos manualmente con :program: `git `:
467
+
468
+ .. image :: files/git-pull.png
469
+
470
+ Existe, no obstante, la posibilidad de ejecutar periódicamente un :code: `git
471
+ fetch ` si configuramos:
472
+
473
+ .. code-block :: json
474
+
475
+ {
476
+ "git.autofetch" : true ,
477
+ "git.autofetchPeriod" : 1800000
478
+ }
479
+
480
+ en que la segunda opción indica la frecuencia con la que se hace la comprobación
481
+ (500 horas, o sea, nunca). Esto provoca que al abrir el programa se compruebe si
482
+ ha habido algún cambio en el respositorio desde la última vez que accedimos al
483
+ área de trabajo y ya no se vuelva a realizarcomprobación más mientras estamos
484
+ trabajando\ [# ]_:
485
+
486
+ .. image :: files/git-fetch.png
487
+
488
+ .. note :: La captura muestra directamente lo que se ve en la barra lateral
489
+ izquierda cuando pulsamos el icono de *Git * (*bifurcación de ruta *). Sin
490
+ embargo, antes de pulsar, podemos conocer que existen cambios en el
491
+ repositorio remoto, porque en la barra de estado de la parte inferior se verá
492
+ que hay cambios pendientes (en este caso, 1 de bajada y ninguno de subida).
493
+
494
+ Ramas
495
+ -----
496
+ El soporte nativo también nos permite tratar con ramas, cambiar entre ellas y
497
+ mezclarlas de forma bastante intuitiva. En la parte izquierda de la barra
498
+ inferior de estado podemos ver en qué rama estamos trabajando y, si pulsamos
499
+ sobre ella, se nos abrirá un cuadro para escoger otra rama entre las existentes
500
+ o crear una nueva:
501
+
502
+ .. image :: files/git-branch.png
503
+
504
+ Para otras operaciones, como mezclar ramas, habría que acudir al menú de la
505
+ sección de control de versiones:
506
+
507
+ .. image :: files/git-branch-menu.png
508
+
429
509
Perfiles de desarrollo
430
510
======================
431
511
@@ -865,7 +945,7 @@ Además de estas extensiones puede interesarnos añadir configuración adicional
865
945
+- bin
866
946
+- lib
867
947
+- src
868
- | +-- App.class
948
+ | +-- App.java
869
949
|
870
950
+ README.md
871
951
@@ -877,7 +957,7 @@ Además de estas extensiones puede interesarnos añadir configuración adicional
877
957
supuesto podemos cambiar el nombre `App ` si no nos convence.
878
958
879
959
Si, además, queremos utilizar :kbd: `F5 ` y :kbd: `Ctrl `\ +\ :kbd: `F5 ` sin
880
- necesidad de que el archivo activo sea :file: `App.class ` podemos crear un
960
+ necesidad de que el archivo activo sea :file: `App.java ` podemos crear un
881
961
:file: `launch.json `\ [# ]_:
882
962
883
963
.. code-block :: json
@@ -910,6 +990,12 @@ Además de estas extensiones puede interesarnos añadir configuración adicional
910
990
.. [# ] Cuatro de las cuales sí instalaremos de forma individual nosotros.
911
991
.. [# ] O sea, de que internamente se haga el equivalente a un :code: `git init `
912
992
que deberíamos ejecutar nosotros si realizáramos a mano esta acción.
993
+ .. [# ] Lo cual es útil si es un proyecto personal que sólo desarrollamos
994
+ nosotros. Si hay otros desarrolladores trabajando, quizás sea más conveniente
995
+ que no deshabilitemos la comprobación periódica (por defecto, el valor es 180
996
+ segundos). Por tanto, quizás la primera línea de configuración es útil a
997
+ nivel de perfil, pero la segunda debería ser más propia del nivel de área de
998
+ trabajo.
913
999
.. [# ] La extensión, para no entrar en conflicto, deshabilitó el autocierre
914
1000
predeterminado para |HTML | cuando el soporte nativo lo introdujo. Por otra
915
1001
parte, la extensión sirve para autocompletar otros lenguajes, así que tal vez
0 commit comments