diff --git a/annotations/01-the-shell-fr.md b/annotations/01-the-shell-fr.md new file mode 100644 index 0000000..454fc65 --- /dev/null +++ b/annotations/01-the-shell-fr.md @@ -0,0 +1,37 @@ +Annotations pour la Leçon 1 : Le Shell + +Qu'est-ce que le terminal ? +--- +Terminal : Le terminal est un programme qui expose le shell en ligne de commande aux utilisateurs, permettant une interaction via des commandes textuelles. + +Qu'est-ce qu'un shell ? +--- +Shell : Un shell sert d'interface avec l'ordinateur. Les shells graphiques fournissent des icônes et des fenêtres, tandis que les shells en ligne de commande facilitent les opérations d'entrée et de sortie de texte. + +Qu'est-ce qu'une commande ? +--- +Commande : Les commandes sont des représentations textuelles des demandes de l'utilisateur à l'ordinateur. Par exemple, un e-mail peut être envoyé à l'aide d'une commande telle que `mail --subject="j'ai besoin d'une augmentation" boss@entreprise.com < ./contenu.txt`. + +Qu'est-ce qu'un interpréteur ? +--- +Interpréteur : Un interpréteur est un programme qui traite et exécute les programmes saisis par l'utilisateur. Il gère la logique, y compris les conditions et les boucles, en en faisant un outil essentiel pour l'exécution de scripts shell. + +Qu'est-ce que le PATH ? +--- +PATH : Le PATH est une variable d'environnement qui répertorie les répertoires dans lesquels le shell recherche les programmes. Le shell utilise la première correspondance qu'il trouve pour l'exécution du programme. + +Qu'est-ce qu'une variable d'environnement ? +--- +Variable d'environnement : Les variables d'environnement sont des valeurs nommées accessibles aux commandes du shell. Elles incluent des conventions établies telles que `PWD`, `PATH` et `PS1`, et les utilisateurs peuvent créer leurs propres variables. + +Comment puis-je voir les variables d'environnement ? +--- +Pour afficher les variables d'environnement actuelles, utilisez la commande `env`. + +Comment puis-je configurer ces variables ? +--- +Les variables peuvent être configurées à l'aide de fichiers tels que `.bashrc` ou `.zshrc`, permettant la personnalisation de l'environnement du shell. + +Quel shell suis-je en train d'exécuter ? +--- +Déterminez le shell actif en utilisant la commande `echo $0`. diff --git a/annotations/01-the-shell.md b/annotations/01-the-shell.md new file mode 100644 index 0000000..0ee4ab8 --- /dev/null +++ b/annotations/01-the-shell.md @@ -0,0 +1,37 @@ +Annotations for Lesson 1: The Shell + +What is the terminal? +--- +Terminal: The terminal is a program that exposes the command-line shell to users, enabling interaction through text-based commands. + +What is a shell? +--- +Shell: A shell serves as an interface to the computer. Graphical shells provide icons and windows, while command-line shells facilitate text input and output operations. + +What is a command? +--- +Command: Commands are textual representations of user requests to the computer. For instance, an email can be sent using a command like `mail --subject="i need a raise" boss@company.com < ./contents.txt`. + +What is an interpreter? +--- +Interpreter: An interpreter is a program that processes and executes user input programs. It handles logic, including conditionals and loops, making it a vital tool for executing shell scripts. + +What is the PATH? +--- +PATH: The PATH is an environment variable that lists directories where the shell searches for programs. The shell uses the first match it finds for program execution. + +What is an environment variable? +--- +Environment variable: Environment variables are named values accessible to shell commands. They include established conventions like `PWD`, `PATH`, and `PS1`, and users can create their own variables. + +How can I see the environment variables? +--- +To view current environment variables, use the `env` command. + +How can I configure those variables? +--- +Variables can be configured using files like `.bashrc` or `.zshrc`, allowing customization of the shell environment. + +What shell am I running? +--- +Determine the active shell by using the command `echo $0`. diff --git a/annotations/02-git-fr.md b/annotations/02-git-fr.md new file mode 100644 index 0000000..9339055 --- /dev/null +++ b/annotations/02-git-fr.md @@ -0,0 +1,82 @@ +# Annotations pour le Cours 2 : Utilisation de Git + +Utilisation de Git +--- +Cette leçon présente l'utilisation de Git pour le contrôle de version et la collaboration sur des projets. + +Initialisation de git +--- +- Initialisez un nouveau dépôt Git en créant un répertoire de projet depuis la ligne de commande. +- Exécutez la commande `git init` pour commencer à suivre les changements dans votre projet. + +Configuration de git +--- +- Configurez la configuration globale de Git en utilisant des commandes comme `git config --global init.defaultBranch main`. +- Affichez et gérez les configurations Git avec `cat ~/.gitconfig`. + +Branche git +--- +- Gérez les branches avec Git en utilisant des commandes comme `git branch -m main`. +- Les branches aident à organiser l'historique du projet et les efforts de développement. + +Ajout à git +--- +- Mettez en scène les modifications pour la validation avec la commande `git add`. +- Par exemple, utilisez `git add pancakes.md` pour préparer les modifications à valider. + +Validation git +--- +- Validez les modifications avec Git en utilisant la commande `git commit`. +- Les validations sont des instantanés de l'état actuel de votre projet. + +Configuration git à nouveau :/ +--- +- Configurez à nouveau les paramètres de configuration liés à l'utilisateur pour Git, comme `git config --global user.email "barraponto@gmail.com"`. +- Maintenez une cohérence dans l'auteur et l'identification des validations. + +Que faisais-je avec git déjà ? +--- +- Vérifiez l'état de votre dépôt Git en utilisant `git status`. +- Comprenez quelles modifications sont prêtes à être validées ou nécessitent de l'attention. + +Validation git +--- +- Validez les modifications en utilisant `git commit`. +- Rencontrez l'éditeur de texte Vim ; quittez Vim après la validation. + +Configuration git (dernière fois) +--- +- Configurez l'éditeur principal de Git avec la commande `git config --global core.editor "nano"`. +- Spécifiez l'éditeur de texte préféré pour les opérations Git. + +Différence git +--- +- Observez les modifications apportées aux fichiers avec `git diff`. +- Mettez en scène et validez les modifications après avoir examiné les différences. + +Github +--- +- Présentez Github, une plateforme basée sur le web pour l'hébergement et la collaboration de code. +- Créez un dépôt pour le contrôle de version et la collaboration. + +Qu'est-ce que SSH ? +--- +
+ + +- Secure Shell (SSH) est un protocole pour un accès distant sécurisé aux ordinateurs. +- Il prend en charge l'authentification par clé publique, renforçant la sécurité en évitant la transmission de mot de passe. +- SSH chiffre les communications, ce qui le rend précieux pour la gestion à distance, les transferts de données et les proxies. + + +
+ +SSH +--- +- Créez une clé SSH pour un accès sécurisé aux dépôts distants. +- Générez des clés avec `ssh-keygen -t ed25519 -C "barraponto@gmail.com"`. + +Pousser le dépôt +--- +- Liez le dépôt local à un dépôt distant en utilisant `git remote add origin git@github.com:barraponto/usegit-recipes.git`. +- Poussez les validations vers le dépôt distant avec `git push -u origin main`. diff --git a/annotations/02-git.md b/annotations/02-git.md new file mode 100644 index 0000000..5c48049 --- /dev/null +++ b/annotations/02-git.md @@ -0,0 +1,82 @@ +Annotations for Lesson 2: Use Git + +Use git +--- +This lesson introduces the use of Git for version control and collaboration on projects. + +git init +--- +- Initialize a new Git repository by creating a project directory from the command line. +- Execute the command `git init` to start tracking changes in your project. + +git config +--- +- Set global configuration for Git using commands like `git config --global init.defaultBranch main`. +- View and manage Git configurations with `cat ~/.gitconfig`. + +git branch +--- +- Manage branches with Git using commands like `git branch -m main`. +- Branches help organize project history and development efforts. + +git add +--- +- Stage changes for commit with the command `git add`. +- For example, use `git add pancakes.md` to prepare changes for commit. + +git commit +--- +- Commit changes with Git using the command `git commit`. +- Commits are snapshots of your project's current state. + +git config again :/ +--- +- Set user-related configuration settings for Git again, like `git config --global user.email "barraponto@gmail.com"`. +- Maintain consistent authorship and identification for commits. + +git what was I doing? +--- +- Check the status of your Git repository using `git status`. +- Understand what changes are ready to be committed or need attention. + +git commit +--- +- Commit changes using `git commit`. +- Encounter the Vim text editor; exit Vim after committing. + +git config (last time) +--- +- Configure Git's core editor with the command `git config --global core.editor "nano"`. +- Specify the preferred text editor for Git operations. + +git diff +--- +- Observe changes made to files with `git diff`. +- Stage and commit the changes after reviewing the differences. + +Github +--- +- Introduce Github, a web-based platform for code hosting and collaboration. +- Create a repository for version control and collaboration purposes. + +What is SSH? +--- +
+ + +- Secure Shell (SSH) is a protocol for secure remote access to computers. +- It supports public key authentication, enhancing security by avoiding password transmission. +- SSH encrypts communication, making it valuable for remote management, data transfers, and proxies. + + +
+ +SSH +--- +- Create an SSH key for secure access to remote repositories. +- Generate keys with `ssh-keygen -t ed25519 -C "barraponto@gmail.com"`. + +Push the repo +--- +- Link the local repository to a remote repository using `git remote add origin git@github.com:barraponto/usegit-recipes.git`. +- Push commits to the remote repository with `git push -u origin main`. diff --git a/annotations/03-everyday-git-fr.md b/annotations/03-everyday-git-fr.md new file mode 100644 index 0000000..c435c83 --- /dev/null +++ b/annotations/03-everyday-git-fr.md @@ -0,0 +1,53 @@ +# Annotations pour le Cours 3 : Git au Quotidien + +Git au quotidien +--- +Cette leçon met l'accent sur les pratiques et les concepts Git quotidiens, rendant le contrôle de version plus gérable et efficace. + +Qu'est-ce qu'une branche ? +--- +Une **branche** représente un historique linéaire de modifications composé de **commits**. +Les branches permettent un développement parallèle sans interférer avec la base de code principale. + +Qu'est-ce qu'un commit ? +--- +Un **commit** capture un instantané de votre **arborescence de travail** à un moment précis et significatif. +L'**arborescence de travail** comprend l'état actuel de vos fichiers. La **signification** d'un commit devrait être décrite dans le **message de commit**. + +Passons à l'action +--- +- Modifiez l'application de recettes. +- Créez un nouveau commit pour capturer les changements. +- Créez une branche pour ajouter des catégories. +- Poussez la nouvelle branche vers un dépôt distant. + +Voyons cela +--- +- Visualisez l'historique de votre projet à l'aide d'outils comme `git-graph`. +- Gagnez une compréhension des rouages internes de Git grâce à des ressources comme https://onlywei.github.io/explain-git-with-d3/. + +Concepts +--- +Comprenez les concepts essentiels de Git, notamment les **commits**, les **branches**, les **dépôts**, les **dépôts distants** et les **arborescences de travail**. +Ces concepts constituent la base du modèle de contrôle de version de Git. + +Commandes +--- +Apprenez les commandes Git essentielles telles que `git switch`, `git branch`, `git checkout` et `git merge`. +Ces commandes facilitent une gestion efficace des branches et la fusion du code. + +Demande de tirage (Pull Request) +--- +Une **demande de tirage** ou **pull request** propose de fusionner des commits d'une branche dans une autre, souvent d'une branche de fonctionnalité à la branche principale. +Bien que non obligatoires, les demandes de tirage permettent les **revues de code**. + +Revue de code (Code Review) +--- +Participez à une **revue de code** pour recevoir des commentaires de vos pairs, garantissant le respect des normes de codage et des meilleures pratiques. +Les revues de code encouragent le développement collaboratif et le contrôle de la qualité. + +Maintenir à jour votre projet local +--- +- Utilisez `git stash` pour stocker temporairement les modifications et les rejouer ultérieurement. +- Utilisez `git fetch` pour télécharger des commits et des branches sans affecter les branches locales. +- Appliquez `git pull` pour synchroniser une branche locale avec sa version **amont**. diff --git a/annotations/03-everyday-git.md b/annotations/03-everyday-git.md new file mode 100644 index 0000000..0549d2d --- /dev/null +++ b/annotations/03-everyday-git.md @@ -0,0 +1,53 @@ +Annotations for Lesson 3: Everyday Git + +Everyday git +--- +This lesson focuses on everyday Git practices and concepts, making version control more manageable and efficient. + +What is a branch? +--- +A **branch** represents a linear history of changes composed of **commits**. +Branches allow for parallel development without interfering with the main codebase. + +What is a commit? +--- +A **commit** captures a snapshot of your **working tree** at a specific meaningful point in time. +The **working tree** comprises the current state of your files. A commit's **meaning** should be described in the **commit message**. + +Let's do it +--- +- Edit the recipes app. +- Create a new commit to capture changes. +- Create a branch to add categories. +- Push the new branch to a remote repository. + +Let's see it +--- +- Visualize your project's history using tools like `git-graph`. +- Gain insight into Git's internal workings through resources like https://onlywei.github.io/explain-git-with-d3/. + +Concepts +--- +Understand essential Git concepts, including **commits**, **branches**, **repositories**, **remotes**, and **working trees**. +These concepts form the foundation of Git's version control model. + +Commands +--- +Learn essential Git commands like `git switch`, `git branch`, `git checkout`, and `git merge`. +These commands facilitate effective branch management and code merging. + +Pull Request +--- +A **pull request** or **merge request** proposes merging commits from one branch into another, often from a feature branch to the mainline. +While not mandatory, pull requests enable **code reviews**. + +Code Review +--- +Engage in a **code review** to receive feedback from peers, ensuring adherence to coding standards and best practices. +Code reviews encourage collaborative development and quality control. + +Keeping your local project up to date +--- +- Use `git stash` to temporarily store changes and replay them later. +- Utilize `git fetch` to download commits and branches without affecting local branches. +- Apply `git pull` to synchronize a local branch with its **upstream** version. diff --git a/annotations/04-everyday-shell-fr.md b/annotations/04-everyday-shell-fr.md new file mode 100644 index 0000000..16b6a94 --- /dev/null +++ b/annotations/04-everyday-shell-fr.md @@ -0,0 +1,31 @@ +# Annotations pour le Cours 4 : Shell au Quotidien + +Shell au quotidien +--- +Cette leçon explore l'utilisation pratique quotidienne du shell, en mettant l'accent sur la recherche de fichiers, la manipulation de flux et la composition de commandes shell. + +Recherche de fichiers +--- +Apprenez à trouver des fichiers en utilisant des commandes telles que `tldr ls`, `tldr find` et `tldr tree`. +Ces commandes aident à localiser efficacement des fichiers et des répertoires, facilitant la gestion des fichiers. + +Recherche dans les fichiers +--- +Découvrez des techniques pour rechercher à l'intérieur des fichiers en utilisant des commandes telles que `tldr grep` et `tldr rg`. +Ces commandes vous permettent de rechercher des motifs textuels spécifiques à l'intérieur du contenu des fichiers. + +Flux +--- +Comprenez le concept de **flux** dans la programmation shell, y compris l'**entrée standard (stdin)**, la **sortie standard (stdout)** et l'**erreur standard (stderr)**. +Les flux sont fondamentaux pour les opérations d'entrée et de sortie dans l'environnement de la ligne de commande. + +Redirection de flux +--- +Apprenez les techniques de redirection de flux, comme l'utilisation du **pipe (`|`)** pour envoyer la sortie d'une commande en tant qu'entrée d'une autre. +Explorez les opérateurs **sortie (`>`)** et **ajout (`>>`)** pour rediriger la sortie vers des fichiers, ainsi que l'opérateur **entrée (`<`)** pour la redirection d'entrée. +Découvrez également la commande **tee** pour la redirection de sortie et l'affichage du contenu. + +Composition +--- +Explorez la composition des commandes shell, comme le comptage de l'occurrence de mots spécifiques tels que "oeufs" dans diverses recettes. +En combinant des commandes, vous pouvez accomplir des tâches complexes et obtenir des informations significatives à partir des données. diff --git a/annotations/04-everyday-shell.md b/annotations/04-everyday-shell.md new file mode 100644 index 0000000..ab45ebf --- /dev/null +++ b/annotations/04-everyday-shell.md @@ -0,0 +1,31 @@ +Annotations for Lesson 4: Everyday Shell + +Everyday shell +--- +This lesson delves into practical everyday shell usage, focusing on finding files, working with streams, and shell composition. + +Finding files +--- +Learn how to find files using commands like `tldr ls`, `tldr find`, and `tldr tree`. +These commands assist in locating files and directories efficiently, aiding in file management. + +Finding in files +--- +Discover techniques for searching within files using commands like `tldr grep` and `tldr rg`. +These commands allow you to search for specific text patterns within the contents of files. + +Streams +--- +Understand the concept of **streams** in shell programming, including **standard input (stdin)**, **standard output (stdout)**, and **standard error (stderr)**. +Streams are fundamental for input and output operations in the command line environment. + +Stream redirection +--- +Learn about stream redirection techniques, such as using the **pipe (`|`)** to send output from one command as input to another. +Explore the **output (`>`)** and **append (`>>`)** operators to redirect output to files, as well as the **input (`<`)** operator for input redirection. +Also, discover the **tee** command for both output redirection and displaying content. + +Composition +--- +Explore shell command composition, such as counting the occurrence of specific words like "eggs" in various recipes. +By combining commands, you can achieve complex tasks and gather meaningful insights from data. \ No newline at end of file diff --git a/annotations/05-next-level-git-fr.md b/annotations/05-next-level-git-fr.md new file mode 100644 index 0000000..42aa284 --- /dev/null +++ b/annotations/05-next-level-git-fr.md @@ -0,0 +1,40 @@ +# Annotations pour le Cours 5 : Git au Niveau Supérieur + +Git au niveau supérieur +--- +Dans cette leçon, vous plongerez dans des concepts avancés de l'utilisation de Git, en mettant l'accent sur les stratégies de branches, la gestion des erreurs et la manipulation de l'historique. + +Théorie des branches +--- +Explorez la question fondamentale de **pourquoi créer des branches** dans les systèmes de contrôle de version comme Git. +Comprenez les avantages de l'isolation du travail, de la collaboration et de la tenue d'un historique propre grâce à des branches bien structurées. + +Modèles de branches +--- +Apprenez les différents modèles de branches, y compris les **flux de travail basés sur le tronc principal**, les **branches de fonctionnalités** et les **branches de version**. +Chaque modèle a ses avantages et ses cas d'utilisation, vous permettant de choisir l'approche la plus adaptée à votre projet. + +Mise à jour de votre travail +--- +Découvrez les techniques pour mettre à jour votre travail et intégrer des modifications d'une branche à une autre. +Explorez l'utilisation de `git merge` et `git rebase` pour incorporer des changements tout en maintenant l'organisation des branches et la signification des validations. + +Réécriture de l'historique +--- +Comprenez le concept de réécriture de l'historique Git en utilisant `git rebase -i`. +Explorez le rébase interactif pour modifier, écraser ou réorganiser des validations, ce qui permet d'obtenir un historique de validations plus propre et mieux organisé. + +Assumer vos erreurs +--- +Plongez dans le concept d'assumer les erreurs dans votre base de code en comprenant **pourquoi** quelque chose s'est produit plutôt que **qui** en est la cause. +Apprenez à utiliser `git blame` pour retracer les changements et comprendre le contexte derrière chaque ligne de code. + +Annuler vos erreurs +--- +Apprenez des techniques pour annuler des erreurs en utilisant `git restore` et `git revert`. +Découvrez comment annuler partiellement des changements en utilisant `git revert -n`, permettant une annulation sélective des validations. + +Remonter le temps sur vos erreurs +--- +Explorez des concepts avancés de manipulation de l'historique, tels que `git amend` et `git reset`. +Comprenez les conséquences de la manipulation de l'historique, y compris l'utilisation potentielle de `git push -f` pour forcer la poussée des changements. diff --git a/annotations/05-next-level-git.md b/annotations/05-next-level-git.md new file mode 100644 index 0000000..9d71247 --- /dev/null +++ b/annotations/05-next-level-git.md @@ -0,0 +1,40 @@ +Annotations for Lesson 5: Next Level Git + +Next Level git +--- +In this lesson, you'll dive into advanced concepts of Git usage, focusing on branching strategies, handling mistakes, and manipulating history. + +Branching theory +--- +Explore the fundamental question of **why create branches** in version control systems like Git. +Understand the benefits of isolating work, enabling collaboration, and maintaining a clean history through well-structured branches. + +Branching models +--- +Learn about different branching models, including **trunk based workflows**, **feature branches**, and **release branching**. +Each model has its advantages and use cases, allowing you to choose the most suitable approach for your project. + +Updating your work +--- +Discover techniques for updating your work and integrating changes from one branch to another. +Explore the use of `git merge` and `git rebase` to incorporate changes while keeping branches organized and commits meaningful. + +Rewriting history +--- +Understand the concept of rewriting Git history using `git rebase -i`. +Explore interactive rebasing to edit, squash, or reorder commits, leading to a cleaner and more organized commit history. + +Owning your mistakes +--- +Delve into the concept of owning mistakes in your codebase by understanding **why** something happened rather than **who** caused it. +Learn about using `git blame` to trace changes and understand the context behind each line of code. + +Undoing your mistakes +--- +Learn techniques to undo mistakes using `git restore` and `git revert`. +Discover how to partially revert changes using `git revert -n`, allowing for selective reversal of commits. + +Timetravel your mistakes +--- +Explore advanced concepts of manipulating history, such as `git amend` and `git reset`. +Understand the consequences of manipulating history, including the potential use of `git push -f` to force push changes. \ No newline at end of file diff --git a/annotations/06-next-level-github-fr.md b/annotations/06-next-level-github-fr.md new file mode 100644 index 0000000..165df82 --- /dev/null +++ b/annotations/06-next-level-github-fr.md @@ -0,0 +1,33 @@ +# Annotations pour le Cours 6 : Github au Niveau Supérieur + +Github au niveau supérieur +--- +Dans cette dernière leçon, vous explorerez les fonctionnalités et les outils avancés fournis par Github pour améliorer votre collaboration et votre productivité. + +Profils Github +--- +Apprenez à vous présenter de manière professionnelle sur Github. Découvrez comment utiliser un dépôt HTML comme toile pour créer un portfolio personnalisé. Explorez l'épinglage de dépôts et de gists pour mettre en avant votre travail le plus important. + +Gists Github +--- +Explorez comment créer des gists, qui sont de simples extraits de code, à partir de la ligne de commande en utilisant l'outil en ligne de commande `gh`. Les gists sont un moyen pratique de partager et de collaborer sur de petits exemples de code. + +Outil en ligne de commande GH +--- +Présentez l'outil en ligne de commande `gh` de la CLI GitHub. Apprenez à utiliser `tldr gh` pour accéder rapidement aux résumés de commandes. Explorez des commandes comme `gh gist create` pour créer des gists et d'autres outils associés comme `hub` et `gibo`. + +Pages Github +--- +Découvrez les Pages Github, une fonctionnalité qui vous permet de créer et d'héberger des sites web directement à partir de votre dépôt GitHub. Apprenez à configurer et personnaliser un site web en utilisant la branche `gh-pages`. + +Actions Github +--- +Explorez les Actions Github, un puissant outil d'automatisation qui vous permet de construire, tester et déployer vos projets. Comprenez comment automatiser des tâches telles que la création de pages, l'exécution de tests et la création de packages en utilisant des flux de travail. + +Versions Github +--- +Apprenez les versions et les balises de dépôt. Comprenez comment utiliser Github Packages pour gérer et distribuer des packages logiciels directement à partir de vos dépôts. + +Analyse de code Github +--- +Découvrez les fonctionnalités de sécurité avancées de Github, notamment CodeQL, Dependabot, l'analyse de secrets et l'analyse statique tierce. Apprenez comment ces outils contribuent à assurer la sécurité de votre base de code. diff --git a/annotations/06-next-level-github.md b/annotations/06-next-level-github.md new file mode 100644 index 0000000..d4699b5 --- /dev/null +++ b/annotations/06-next-level-github.md @@ -0,0 +1,33 @@ +Annotations for Lesson 6: Next Level Github + +Next Level Github +--- +In this final lesson, you'll explore advanced features and tools provided by Github to enhance your collaboration and productivity. + +Github Profiles +--- +Learn about presenting yourself professionally on Github. Discover how to use an HTML repository as a canvas to create a personalized portfolio. Explore pinning repositories and gists to showcase your most important work. + +Github Gists +--- +Explore how to create gists, which are simple code snippets, from the command line using the `gh` command-line tool. Gists are a convenient way to share and collaborate on small code examples. + +GH command line tool +--- +Introduce the `gh` command-line tool from the GitHub CLI. Learn how to use `tldr gh` to quickly access command summaries. Explore commands like `gh gist create` for creating gists and other related tools like `hub` and `gibo`. + +Github Pages +--- +Discover Github Pages, a feature that allows you to create and host websites directly from your GitHub repository. Learn how to set up and customize a website using the `gh-pages` branch. + +Github Actions +--- +Explore Github Actions, a powerful automation tool that allows you to build, test, and deploy your projects. Understand how to automate tasks like building pages, running tests, and packaging projects using workflows. + +Github Releases +--- +Learn about repository releases and tags. Understand how to use Github Packages to manage and distribute software packages directly from your repositories. + +Github Code Scanning +--- +Discover Github's advanced security features, including CodeQL, Dependabot, Secret scanning, and third-party static analysis. Learn how these tools help ensure the security of your codebase. \ No newline at end of file diff --git a/quizzes/01-the-shell-quiz.md b/quizzes/01-the-shell-quiz.md new file mode 100644 index 0000000..6c2b833 --- /dev/null +++ b/quizzes/01-the-shell-quiz.md @@ -0,0 +1,13 @@ +# QUIZ for Lesson 1 -- The Shell + +1. What is the primary purpose of the terminal? +[ ] Accessing the internet +[ ] Playing games +[x] Exposing the command-line shell +[ ] Editing images + +2. How would you configure your preferred text editor for Git? +[x] Using the git config command +[ ] Editing the .gitconfig file +[ ] Running the nano command +[ ] Changing your computer's settings \ No newline at end of file diff --git a/quizzes/02-git-quiz.md b/quizzes/02-git-quiz.md new file mode 100644 index 0000000..641265c --- /dev/null +++ b/quizzes/02-git-quiz.md @@ -0,0 +1,13 @@ +# QUIZ for Lesson 2 -- Use Git + +1. What is the role of a branch in Git? +[ ] To store graphical assets +[ ] To track environment variables +[x] To organize project history and development efforts +[ ] To provide user authentication + +2. How do you stage changes for commit in Git? +[ ] Using the git stage command +[ ] By clicking on files in the GUI +[x] With the git add command +[ ] Automatically when saving files \ No newline at end of file diff --git a/quizzes/03-everyday-git-quiz.md b/quizzes/03-everyday-git-quiz.md new file mode 100644 index 0000000..80932e8 --- /dev/null +++ b/quizzes/03-everyday-git-quiz.md @@ -0,0 +1,13 @@ +# QUIZ for Lesson 3 -- Everyday git + +1. What command can be used to pass the output of one command as arguments to another command? +[ ] passargs +[x] xargs +[ ] args +[ ] chain + +2. Which stream is typically used for displaying error messages? +[ ] stdin +[ ] stdout +[x] stderr +[ ] stdmsg \ No newline at end of file diff --git a/quizzes/04-everyday-shell-quiz.md b/quizzes/04-everyday-shell-quiz.md new file mode 100644 index 0000000..9c2afad --- /dev/null +++ b/quizzes/04-everyday-shell-quiz.md @@ -0,0 +1,15 @@ +# QUIZ for Lesson 4 -- Everyday Shell + +1. What is the purpose of stream redirection in the shell? +[x] To control standard input and output +[ ] To redirect network traffic +[ ] To manage streaming music +[ ] To organize shell scripts + +1. Which command can be used to count the number of lines in a file? +[ ] lines +[ ] count +[ ] line_count +[x] wc -l + + diff --git a/quizzes/05-next-level-git-quiz.md b/quizzes/05-next-level-git-quiz.md new file mode 100644 index 0000000..01a0469 --- /dev/null +++ b/quizzes/05-next-level-git-quiz.md @@ -0,0 +1,13 @@ +# QUIZ for Lesson 5 -- Next Level Git + +1. What is the main advantage of using feature branches in Git? +[ ] It reduces the need for version control +[ ] It simplifies the Git commit process +[x] It allows for collaborative development without affecting the main branch +[ ] It automatically merges all changes into the main branch + +1. How can you revert a commit that introduced a bug without deleting the commit history? +[ ] Use git reset +[ ] Use git restore +[x] Use git revert +[ ] Delete the commit from the history \ No newline at end of file diff --git a/quizzes/06-next-level-github-quiz.md b/quizzes/06-next-level-github-quiz.md new file mode 100644 index 0000000..b464a5d --- /dev/null +++ b/quizzes/06-next-level-github-quiz.md @@ -0,0 +1,13 @@ +# QUIZ for Lesson 6 -- Next Level Github + +1. What is the purpose of Github Pages? +[ ] To host interactive web applications +[ ] To provide access to Github repositories +[x] To showcase project documentation and websites +[ ] To manage code reviews + +1. How does a Pull Request enhance collaboration on Github? +[ ] It automatically merges all changes +[x] It allows developers to request code reviews +[ ] It creates new branches in the repository +[ ] It only works for public repositories \ No newline at end of file diff --git a/suggestions/github-security-features.md b/suggestions/github-security-features.md new file mode 100644 index 0000000..fafb3a1 --- /dev/null +++ b/suggestions/github-security-features.md @@ -0,0 +1,13 @@ +## Suggestion: Exploring GitHub Security Features + +I suggest incorporating a section in the course that delves into the security features provided by GitHub. This section could cover topics like repository access controls, branch protection rules, code scanning, and vulnerability alerts. By understanding and utilizing these features, learners can ensure the security and integrity of their codebase. + +### Why This Suggestion? + +1. **Secure Development Practices:** Equipping developers with knowledge about GitHub's security tools empowers them to adopt secure development practices from the start. + +2. **Protection Against Vulnerabilities:** Highlighting the importance of code scanning and vulnerability alerts can help developers identify and address potential security vulnerabilities early in the development lifecycle. + +3. **Collaborative Security:** Understanding how to set up access controls and branch protection rules fosters collaboration while maintaining the security of the codebase. + +4. **Industry Relevance:** GitHub's security features align with industry standards and best practices. Teaching these concepts provides learners with valuable skills applicable to professional settings. diff --git a/suggestions/shell-advanced-pipeline.md b/suggestions/shell-advanced-pipeline.md new file mode 100644 index 0000000..c11acf8 --- /dev/null +++ b/suggestions/shell-advanced-pipeline.md @@ -0,0 +1,11 @@ +## Suggestion: Shell Advanced Pipeline Usage + +I recommend adding a new section to the course that focuses on advanced usage of shell pipelines. This topic could cover techniques for chaining together commands, using redirection and pipes effectively, and handling complex data transformations. Demonstrating real-world scenarios where these techniques can be applied would greatly enhance learners' command-line skills. + +### Why This Suggestion? + +1. **Efficiency in Data Processing:** Understanding how to construct complex pipelines can significantly improve data processing efficiency. This is particularly valuable when working with large datasets or when performing multiple operations on data. + +2. **Chaining Commands:** Teaching users how to chain commands together can empower them to create more intricate and powerful command sequences, making their workflows more streamlined. + +3. **Real-world Application:** Providing examples of how shell pipelines are used in real-world scenarios, such as log analysis or data manipulation, can make the concept more relatable and applicable.