2017-05-17 5 views
5

Lorsque je fais un git pull, à partir du git bash, le terminal exécute généralement le pull, met à jour mon local, puis se bloque. Je ne suis pas sûr si ça m'attend à faire quelque chose, mais je sors habituellement de ça avec CTRL-C. Après cela, j'obtiens qu'un index.lock m'empêche de faire d'autres choses auxquelles je dois le supprimer. Suis-je mal comprendre comment fonctionne git pull?Pourquoi git pull accrocher?

+8

Dans le terminal, exécutez comme une instruction 'GIT_TRACE = true git pull', puis voyez si vous pouvez voir ce qu'il fait quand il se bloque. –

+0

Êtes-vous sur Windows? Si c'est le cas, et s'il est suspendu pendant l'étape 'git merge', avez-vous un processus en cours d'exécution qui détient un verrou sur un fichier? Windows a un "verrouillage obligatoire" dans lequel si le processus * A * a un fichier verrouillé, et le processus * B * (Git) essaye * d'utiliser * ce fichier, le processus * B * est suspendu jusqu'à ce que * A * libère le verrou. Si vous terminez * B * (c.-à-d.^C de Git), idéalement, il devrait nettoyer son fichier 'index.lock' (qui n'utilise pas le verrouillage obligatoire de Windows, c'est juste un fichier ordinaire que Git utilise pour se coordonner), mais apparemment pas. – torek

Répondre

-1

Je suis sous Windows, et j'ai résolu le problème en fermant le Visual Studio avant de tirer.

+0

(Sur Mac OS X) J'ai eu Visual Studio Code ouvert et il s'est accroché sur 'git pull'. Ferme-le. Est-ce que 'git pull' a encore été lancé et VS Code a lancé et ouvert un message de commit pour le' merge' qui était nécessaire à cause du 'git pull'. Entré un message, enregistré, fermé la fenêtre et tout allait bien. – Jheasly

-1

Si vous tirez d'une machine Linux, vous pouvez consulter ce fichier:

/etc/ssh/ssh_config

Pour vous assurer que vous ne définissez pas votre port SSH par défaut autre chose que 22. Certaines personnes confus entre ce fichier et:

/etc/ssh/sshd_config

Quand ils la configuration des serveurs à un port SSH non standard.