Aujourd’hui, j’essayais d’utiliser le git mergetool
sur l’invite de commande Windows et j’ai réalisé qu’il était par défaut d’utiliser VIM, ce qui est bien, mais je préférerais VSCode.
Comment puis-je avoir Code Visual Studio comme interface graphique pour gérer les conflits de fusion (ou même comme outil de différenciation) pour Git?
À compter de VSCode 1.1 Une meilleure fusion a été intégrée dans le noyau de VSCode.
La façon de les relier ensemble est de modifier votre .gitconfig
et vous avez deux options .
Pour ce faire avec les entrées de ligne de commande, entrez chacun de ces éléments: (Remarque: remplacez "
par '
sur Windows Git Bash, comme expliqué par Iztok Delfin et e4rache)
git config --global merge.tool vscode
git config --global mergetool.vscode.cmd "code --wait $MERGED"
git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
Pour ce faire, collez une ligne dans le .gitconfig
avec VS Code .
git config --global core.editor "code --wait"
à partir de la ligne de commande.De là, vous pouvez entrer la commande git config --global -e
. Vous voudrez coller le code dans le "Bloc supplémentaire" ci-dessous.
[user]
name = EricDJohnson
email = [email protected]
[gui]
recentrepo = E:/src/gitlab/App-Custom/Some-App
# Comment: You just added this via 'git config --global core.editor "code --wait"'
[core]
editor = code --wait
# Comment: Start of "Extra Block"
# Comment: This is to unlock VSCode as your git diff and git merge tool
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code --wait $MERGED
[diff]
tool = vscode
[difftool "vscode"]
cmd = code --wait --diff $LOCAL $REMOTE
# Comment: End of "Extra Block"
Maintenant dans votre répertoire git avec un conflit, lancez git mergetool
et, tada, vous avez VSCode qui vous aide à gérer le conflit de fusion! (Assurez-vous simplement de enregistrer votre fichier avant de fermer VSCode).
Pour plus d'informations sur le lancement de code
à partir de la ligne de commande, reportez-vous à ces docs .
Pour plus d'informations dans git mergetool
, consultez ces docs .
J'ai dû remplacer les guillemets doubles par des guillemets simples:
git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'
pour que cela fonctionne correctement.
(avec guillemets doubles, $ LOCAL et $ REMOTE sont remplacés par leurs valeurs)
Cela est nécessaire si vous utilisez Git Bash pour Windows au lieu de l'invite de commande Windows.