🏠 返回首頁 

Greasy Fork is available in English.

Git Helper

Guide git de l'installation aux commandes usuelles


Installer ce script?
// ==UserScript==
// @name         Git Helper
// @namespace    http://tampermonkey.net/
// @version      10.1
// @description  Guide git de l'installation aux commandes usuelles
// @author       yglsan
// @match        *://*/*
// @grant        none
// ==/UserScript==
(function () {
'use strict';
// Ajout de Bootstrap via CDN pour les styles
const bootstrapStyle = document.createElement("link");
bootstrapStyle.href = "https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css";
bootstrapStyle.rel = "stylesheet";
document.head.appendChild(bootstrapStyle);
const gitSections = [
{
section: "Commandes essentielles (15 principales)",
details: [
{
command: "git init",
usage: "git init",
explanation: "Initialise un nouveau dépôt Git dans le répertoire actuel.",
advice: "Utilisez cette commande lorsque vous commencez un nouveau projet Git. Elle est souvent la première commande exécutée dans un nouveau répertoire.",
example: "Exemple : `git init` dans le répertoire de votre projet pour initialiser le dépôt."
},
{
command: "git clone",
usage: "git clone [URL_du_dépôt]",
explanation: "Clone un dépôt distant sur votre machine locale.",
advice: "Utilisez cette commande pour récupérer une copie locale d'un projet existant hébergé sur GitHub, GitLab, etc.",
example: "Exemple : `git clone https://github.com/username/repository.git`"
},
{
command: "git add",
usage: "git add [fichier|dossier|.]",
explanation: "Ajoute des fichiers ou des modifications à l'index pour préparer un commit.",
advice: "Important pour préparer les fichiers à être commités. Vous pouvez utiliser un point `.` pour ajouter tous les fichiers modifiés dans le répertoire.",
example: "Exemple : `git add .` pour ajouter tous les fichiers modifiés dans le répertoire."
},
{
command: "git commit -m",
usage: "git commit -m '[message]'",
explanation: "Enregistre les changements de l'index dans l'historique avec un message de commit.",
advice: "Utilisez des messages clairs et descriptifs pour vos commits. Par exemple, 'Ajout de la fonctionnalité X' ou 'Correction du bug Y'.",
example: "Exemple : `git commit -m 'Ajout de la fonctionnalité de recherche'`"
},
{
command: "git commit -am",
usage: "git commit -am '[message]'",
explanation: "Effectue un commit en ajoutant tous les fichiers suivis modifiés, sans avoir besoin de `git add`.",
advice: "Cette commande est très pratique lorsque vous travaillez fréquemment sur un même fichier ou un groupe de fichiers.",
example: "Exemple : `git commit -am 'Correction des bugs'`"
},
{
command: "git status",
usage: "git status",
explanation: "Affiche l'état actuel du dépôt, les fichiers modifiés, ajoutés ou non suivis.",
advice: "Utilisez `git status` fréquemment pour vérifier l'état de vos fichiers avant de faire un commit ou de pousser vos changements.",
example: "Exemple : `git status`"
},
{
command: "git log",
usage: "git log",
explanation: "Affiche l'historique des commits dans le dépôt.",
advice: "Utilisez `git log --oneline` pour avoir une vue d'ensemble plus concise de l'historique des commits.",
example: "Exemple : `git log --oneline`"
},
{
command: "git branch",
usage: "git branch [nom]",
explanation: "Crée une nouvelle branche locale.",
advice: "Créez des branches pour chaque nouvelle fonctionnalité ou correction de bug afin de maintenir une structure claire de votre code.",
example: "Exemple : `git branch feature-xyz`"
},
{
command: "git checkout",
usage: "git checkout [branche|fichier]",
explanation: "Bascule vers une autre branche ou restaure un fichier dans son dernier état.",
advice: "Utilisez cette commande pour passer d'une branche à l'autre. N'oubliez pas de valider vos modifications avant de changer de branche.",
example: "Exemple : `git checkout feature-xyz`"
},
{
command: "git switch",
usage: "git switch [branche]",
explanation: "Permet de changer de branche, remplaçant `git checkout` dans ce contexte.",
advice: "La commande `git switch` est une alternative plus simple et intuitive à `git checkout` pour le changement de branche.",
example: "Exemple : `git switch feature-xyz`"
},
{
command: "git merge",
usage: "git merge [branche]",
explanation: "Fusionne les changements de la branche spécifiée dans la branche courante.",
advice: "Assurez-vous de tester vos changements localement avant de fusionner, et résolvez les conflits si nécessaire.",
example: "Exemple : `git merge feature-xyz`"
},
{
command: "git push",
usage: "git push [remote] [branche]",
explanation: "Pousse les commits locaux vers un dépôt distant.",
advice: "Utilisez cette commande pour partager vos changements avec d'autres personnes travaillant sur le projet. Assurez-vous que votre branche est à jour avant de pousser.",
example: "Exemple : `git push origin main`"
},
{
command: "git pull",
usage: "git pull [remote] [branche]",
explanation: "Récupère les modifications du dépôt distant et les fusionne avec la branche courante.",
advice: "Avant de pousser vos changements, utilisez `git pull` pour vous assurer que vous travaillez sur la version la plus récente du code.",
example: "Exemple : `git pull origin main`"
},
{
command: "git reset",
usage: "git reset [--soft|--hard] [commit]",
explanation: "Réinitialise l'index ou la branche actuelle à un état donné. `--hard` efface les modifications locales.",
advice: "Utilisez `git reset --soft` pour revenir à un commit précédent tout en conservant les modifications dans votre répertoire de travail.",
example: "Exemple : `git reset --hard HEAD~1`"
},
{
command: "git stash",
usage: "git stash",
explanation: "Sauvegarde les changements non validés temporairement, permettant de revenir à un état propre.",
advice: "Cette commande est utile lorsque vous devez changer de branche sans vouloir valider vos changements en cours.",
example: "Exemple : `git stash`"
}
]
}
];
// Fonction pour installer Git (instructions pour chaque plateforme)
function getInstallInstructions() {
return `
<h4>Installation de Git :</h4>
<ul>
<li><b>Windows :</b> Téléchargez Git à partir de <a href="https://git-scm.com/download/win" target="_blank">Git pour Windows</a> et suivez les instructions de l'installateur.</li>
<li><b>MacOS :</b> Utilisez Homebrew : <code>brew install git</code> ou téléchargez l'installateur à partir de <a href="https://git-scm.com/download/mac" target="_blank">Git pour Mac</a>.</li>
<li><b>Linux (Ubuntu) :</b> Exécutez <code>sudo apt install git</code> dans le terminal.</li>
<li><b>Linux (Fedora) :</b> Exécutez <code>sudo dnf install git</code> dans le terminal.</li>
<li><b>Linux (Arch) :</b> Exécutez <code>sudo pacman -S git</code> dans le terminal.</li>
</ul>
<p>Après l'installation, vérifiez que Git est bien installé en exécutant la commande : <code>git --version</code>.</p>
`;
}
// Création du panneau
const panel = document.createElement("div");
panel.style.position = "fixed";
panel.style.bottom = "10px";
panel.style.right = "10px";
panel.style.width = "500px";
panel.style.maxHeight = "80vh";
panel.style.overflowY = "auto";
panel.style.backgroundColor = "white";
panel.style.color = "black";
panel.style.border = "1px solid #ccc";
panel.style.borderRadius = "10px";
panel.style.padding = "20px";
panel.style.zIndex = "9999";
panel.style.display = "none"; // initialement caché
// Contenu du panneau : Recherche et explication
const title = document.createElement("h3");
title.textContent = "Git Helper";
const searchInput = document.createElement("input");
searchInput.type = "text";
searchInput.classList.add("form-control");
searchInput.placeholder = "Recherche par mots clés...";
const r###ltsContainer = document.createElement("div");
r###ltsContainer.style.marginTop = "10px";
// bouton pour fermer le panneau
const closeButton = document.createElement("button");
closeButton.classList.add("btn", "btn-danger");
closeButton.textContent = "Fermer l'application";
closeButton.onclick = function () {
panel.style.display = "none";
};
// bouton pour afficher l'installation de Git
const installButton = document.createElement("button");
installButton.classList.add("btn", "btn-info");
installButton.textContent = "Installation de Git";
installButton.onclick = function () {
r###ltsContainer.innerHTML = getInstallInstructions();
};
// bouton pour afficher des explications détaillées
const explanationButton = document.createElement("button");
explanationButton.classList.add("btn", "btn-primary");
explanationButton.textContent = "Afficher les explications";
explanationButton.onclick = function () {
r###ltsContainer.innerHTML = gitSections[0].details.map(command => `
<div>
<strong>${command.command}</strong> : ${command.explanation} <br>
<em>Conseil :</em> ${command.advice}<br>
<em>Exemple :</em> ${command.example}<br><br>
</div>
`).join('');
};
panel.appendChild(title);
panel.appendChild(searchInput);
panel.appendChild(installButton);
panel.appendChild(explanationButton);
panel.appendChild(r###ltsContainer);
panel.appendChild(closeButton);
// panneau
document.body.appendChild(panel);
// Fonction de recherche
function searchCommands(query) {
const lowerQuery = query.toLowerCase();
const matches = gitSections[0].details.filter(command => {
return command.command.toLowerCase().includes(lowerQuery) || command.explanation.toLowerCase().includes(lowerQuery);
});
r###ltsContainer.innerHTML = "";
matches.forEach(command => {
const commandElem = document.createElement("div");
commandElem.innerHTML = `<strong>${command.command}</strong> : ${command.explanation}`;
r###ltsContainer.appendChild(commandElem);
});
}
// Event listener pour la recherche
searchInput.addEventListener("input", function () {
searchCommands(searchInput.value);
});
// Fonction de raccourci clavier pour ouvrir/fermer le panneau
document.addEventListener("keydown", function (event) {
if ((event.ctrlKey && event.key === "G") || (event.metaKey && event.key === "G")) {  // Raccourci Ctrl+G ou Cmd+G
if (panel.style.display === 'none') {
panel.style.display = 'block';
explanationButton.click();
} else {
panel.style.display = 'none';
}
}
});
})();