microsoft / microsoft/vscode-java-debug

The Java debug pane is not expanding the keys in a HashMap

Abierto
#1,590 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

ai-triaged bug
Lenguaje dominante
TypeScript
Estrellas
591
Forks
429
Merge medio
1 d 9 h
PR fusionados (30 d)
19

Descripción

Problem: HashMap nodes are unexpandable when a Map.Entry local variable exists (screenshot attached)

Image

Sample code

package com.tech.maven;

import java.util.HashMap;
import java.util.Map;

public class Bug {
    public static void main(String[] args) {
        Map<String, String> m = new HashMap<>();
        m.put("employees", "500");
        m.put("department", "IT");

        // Put your breakpoint on the line below  ←←←←←
        System.out.println("breakpoint here");

        // After you stop here, look at "m" in VARIABLES or WATCH → m.entrySet()
        // You will see only one entry (or unexpandable nodes) if the bug is still present
    }
    
}

VScode & Extensions Environment

JavaSE 17 (Temurin)

Version: 1.106.3
Commit: bf9252a2fb45be6893dd8870c0bf37e2e1766d61
Date: 2025-11-25T22:28:18.024Z (3 days ago)
Electron: 37.7.0
ElectronBuildId: 12781156
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 24.5.0

{
message: "Use the JDK from 'java.jdt.ls.java.home' setting as the initial default project JDK.",
level: 'info',
timestamp: '2025-11-28 17:42:36.098'
}
{
message: 'Starting Java server with: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home/bin/java -Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0 --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:/Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/lombok/lombok-1.18.39-4050.jar -jar /Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/server/plugins/org.eclipse.equinox.launcher_1.7.100.v20251111-0406.jar -configuration /Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_ss_mac -data /Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java/ss_ws',
level: 'info',
timestamp: '2025-11-28 17:42:36.104'
}
{
message: 'WARNING: Using incubator modules: jdk.incubator.vector\n',
level: 'info',
timestamp: '2025-11-28 17:42:36.168'
}
{
message: 'Starting Java server with: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home/bin/java -Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0 --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:/Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/lombok/lombok-1.18.39-4050.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java -Daether.dependencyCollector.impl=bf -jar /Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/server/plugins/org.eclipse.equinox.launcher_1.7.100.v20251111-0406.jar -configuration /Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_mac -data /Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java/jdt_ws',
level: 'info',
timestamp: '2025-11-28 17:42:36.184'
}
{
message: 'WARNING: Using incubator modules: jdk.incubator.vector\n',
level: 'info',
timestamp: '2025-11-28 17:42:36.215'
}
{
message: 'An error has occurred. See the log file\n' +
'/Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_ss_mac/1764369756291.log.\n',
level: 'info',
timestamp: '2025-11-28 17:42:36.549'
}
{
message: 'Nov 28, 2025 5:42:36 PM org.apache.aries.spifly.BaseActivator log\n' +
'INFO: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic\n',
level: 'info',
timestamp: '2025-11-28 17:42:36.642'
}
{
message: 'WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\n' +
'WARNING: sun.misc.Unsafe::staticFieldBase has been called by com.google.inject.internal.aop.HiddenClassDefiner (file:/Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_mac/org.eclipse.osgi/69/0/.cp/jars/guice-5.1.0-classes.jar)\n' +
'WARNING: Please consider reporting this to the maintainers of class com.google.inject.internal.aop.HiddenClassDefiner\n' +
'WARNING: sun.misc.Unsafe::staticFieldBase will be removed in a future release\n',
level: 'info',
timestamp: '2025-11-28 17:42:37.400'
}
{
message: 'Nov 28, 2025 5:42:39 PM com.microsoft.java.debug.plugin.internal.JavaDebuggerServerPlugin start\n' +
'INFO: Starting com.microsoft.java.debug.plugin\n',
level: 'info',
timestamp: '2025-11-28 17:42:39.985'
}
{
message: 'Nov 28, 2025 5:42:44 PM com.microsoft.java.debug.core.UsageDataSession recordInfo\n' +
'INFO: launch debug info\n',
level: 'info',
timestamp: '2025-11-28 17:42:44.149'
}
{
message: 'Nov 28, 2025 5:42:49 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:42:49.363'
}
{
message: 'Nov 28, 2025 5:42:56 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:42:56.376'
}
{
message: 'Nov 28, 2025 5:45:18 PM com.microsoft.java.debug.core.UsageDataSession submitUsageData\n' +
'INFO: session usage data summary\n',
level: 'info',
timestamp: '2025-11-28 17:45:18.373'
}
{
message: "Use the JDK from 'java.jdt.ls.java.home' setting as the initial default project JDK.",
level: 'info',
timestamp: '2025-11-28 17:45:50.541'
}
{
message: 'Starting Java server with: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home/bin/java -Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0 --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:/Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/lombok/lombok-1.18.39-4050.jar -jar /Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/server/plugins/org.eclipse.equinox.launcher_1.7.100.v20251111-0406.jar -configuration /Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_ss_mac -data /Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java/ss_ws',
level: 'info',
timestamp: '2025-11-28 17:45:50.546'
}
{
message: 'WARNING: Using incubator modules: jdk.incubator.vector\n',
level: 'info',
timestamp: '2025-11-28 17:45:50.601'
}
{
message: 'Starting Java server with: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home/bin/java -Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0 --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:/Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/lombok/lombok-1.18.39-4050.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java -Daether.dependencyCollector.impl=bf -jar /Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/server/plugins/org.eclipse.equinox.launcher_1.7.100.v20251111-0406.jar -configuration /Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_mac -data /Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java/jdt_ws',
level: 'info',
timestamp: '2025-11-28 17:45:50.604'
}
{
message: 'WARNING: Using incubator modules: jdk.incubator.vector\n',
level: 'info',
timestamp: '2025-11-28 17:45:50.634'
}
{
message: 'Nov 28, 2025 5:45:50 PM org.apache.aries.spifly.BaseActivator log\n' +
'INFO: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic\n',
level: 'info',
timestamp: '2025-11-28 17:45:50.916'
}
{
message: 'WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\n' +
'WARNING: sun.misc.Unsafe::objectFieldOffset has been called by lombok.permit.Permit\n' +
'WARNING: Please consider reporting this to the maintainers of class lombok.permit.Permit\n' +
'WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\n',
level: 'info',
timestamp: '2025-11-28 17:45:51.738'
}
{
message: 'WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\n' +
'WARNING: sun.misc.Unsafe::staticFieldBase has been called by com.google.inject.internal.aop.HiddenClassDefiner (file:/Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_mac/org.eclipse.osgi/69/0/.cp/jars/guice-5.1.0-classes.jar)\n' +
'WARNING: Please consider reporting this to the maintainers of class com.google.inject.internal.aop.HiddenClassDefiner\n' +
'WARNING: sun.misc.Unsafe::staticFieldBase will be removed in a future release\n',
level: 'info',
timestamp: '2025-11-28 17:45:51.766'
}
{
message: 'Nov 28, 2025 5:45:52 PM com.microsoft.java.debug.plugin.internal.JavaDebuggerServerPlugin start\n' +
'INFO: Starting com.microsoft.java.debug.plugin\n',
level: 'info',
timestamp: '2025-11-28 17:45:52.628'
}
{
message: 'Nov 28, 2025 5:46:03 PM com.microsoft.java.debug.core.UsageDataSession recordInfo\n' +
'INFO: launch debug info\n',
level: 'info',
timestamp: '2025-11-28 17:46:03.267'
}
{
message: 'Nov 28, 2025 5:46:08 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:46:08.487'
}
{
message: "Use the JDK from 'java.jdt.ls.java.home' setting as the initial default project JDK.",
level: 'info',
timestamp: '2025-11-28 17:48:27.353'
}
{
message: 'Starting Java server with: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home/bin/java -Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0 --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:/Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/lombok/lombok-1.18.39-4050.jar -jar /Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/server/plugins/org.eclipse.equinox.launcher_1.7.100.v20251111-0406.jar -configuration /Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_ss_mac -data /Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java/ss_ws',
level: 'info',
timestamp: '2025-11-28 17:48:27.358'
}
{
message: 'WARNING: Using incubator modules: jdk.incubator.vector\n',
level: 'info',
timestamp: '2025-11-28 17:48:27.404'
}
{
message: 'Starting Java server with: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home/bin/java -Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0 --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:/Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/lombok/lombok-1.18.39-4050.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java -Daether.dependencyCollector.impl=bf -jar /Users/apoorvgupta/.vscode/extensions/redhat.java-1.50.0-darwin-arm64/server/plugins/org.eclipse.equinox.launcher_1.7.100.v20251111-0406.jar -configuration /Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_mac -data /Users/apoorvgupta/Library/Application Support/Code/User/workspaceStorage/165590fa5fdbeda64cc12900062709b0/redhat.java/jdt_ws',
level: 'info',
timestamp: '2025-11-28 17:48:27.420'
}
{
message: 'WARNING: Using incubator modules: jdk.incubator.vector\n',
level: 'info',
timestamp: '2025-11-28 17:48:27.450'
}
{
message: 'Nov 28, 2025 5:48:27 PM org.apache.aries.spifly.BaseActivator log\n' +
'INFO: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic\n',
level: 'info',
timestamp: '2025-11-28 17:48:27.735'
}
{
message: 'WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\n' +
'WARNING: sun.misc.Unsafe::objectFieldOffset has been called by lombok.permit.Permit\n' +
'WARNING: Please consider reporting this to the maintainers of class lombok.permit.Permit\n' +
'WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\n',
level: 'info',
timestamp: '2025-11-28 17:48:28.319'
}
{
message: 'WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\n' +
'WARNING: sun.misc.Unsafe::staticFieldBase has been called by com.google.inject.internal.aop.HiddenClassDefiner (file:/Users/apoorvgupta/Library/Application Support/Code/User/globalStorage/redhat.java/1.50.0/config_mac/org.eclipse.osgi/69/0/.cp/jars/guice-5.1.0-classes.jar)\n' +
'WARNING: Please consider reporting this to the maintainers of class com.google.inject.internal.aop.HiddenClassDefiner\n' +
'WARNING: sun.misc.Unsafe::staticFieldBase will be removed in a future release\n',
level: 'info',
timestamp: '2025-11-28 17:48:28.554'
}
{
message: 'Nov 28, 2025 5:48:29 PM com.microsoft.java.debug.plugin.internal.JavaDebuggerServerPlugin start\n' +
'INFO: Starting com.microsoft.java.debug.plugin\n',
level: 'info',
timestamp: '2025-11-28 17:48:29.539'
}
{
message: 'Nov 28, 2025 5:48:46 PM com.microsoft.java.debug.core.UsageDataSession recordInfo\n' +
'INFO: launch debug info\n',
level: 'info',
timestamp: '2025-11-28 17:48:46.326'
}
{
message: 'Nov 28, 2025 5:48:51 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:48:51.548'
}
{
message: 'Nov 28, 2025 5:53:46 PM com.microsoft.java.debug.core.UsageDataSession submitUsageData\n' +
'INFO: session usage data summary\n',
level: 'info',
timestamp: '2025-11-28 17:53:46.401'
}
{
message: 'Nov 28, 2025 5:53:53 PM com.microsoft.java.debug.core.UsageDataSession recordInfo\n' +
'INFO: launch debug info\n',
level: 'info',
timestamp: '2025-11-28 17:53:53.266'
}
{
message: 'Nov 28, 2025 5:53:53 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:53:53.538'
}
{
message: 'Nov 28, 2025 5:55:37 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:55:37.868'
}
{
message: 'Nov 28, 2025 5:55:39 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:55:39.318'
}
{
message: 'Nov 28, 2025 5:55:41 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:55:41.167'
}
{
message: 'Nov 28, 2025 5:56:03 PM com.microsoft.java.debug.core.UsageDataSession submitUsageData\n' +
'INFO: session usage data summary\n',
level: 'info',
timestamp: '2025-11-28 17:56:03.623'
}
{
message: 'Nov 28, 2025 5:56:03 PM com.microsoft.java.debug.core.UsageDataSession recordInfo\n' +
'INFO: launch debug info\n',
level: 'info',
timestamp: '2025-11-28 17:56:03.947'
}
{
message: 'Nov 28, 2025 5:56:04 PM com.microsoft.java.debug.core.UsageDataSession recordResponse\n' +
'WARNING: abnormal response\n',
level: 'info',
timestamp: '2025-11-28 17:56:04.218'
}

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el punto de entrada de ejemplo Bug.main, detente en el punto de interrupción marcado e inspecciona m en VARIABLES o m.entrySet() en WATCH usando la configuración indicada de Java y VS Code. El issue está terminado cuando los nodos de HashMap se expanden y todas las entradas son visibles incluso cuando existe una variable local de tipo Map.Entry.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, typescript
Área
devtools
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.