Source code management with GIT
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
A crash course
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
VPNs and network security
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR) Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
1. Introduction
2. Installation
3. The psql client
4. Authentication and privileges
5. Backup and restoration
6. Internal Architecture
7. Performance optimization
8. Stats and monitoring
9. Logs
10. Replication
The document provides instructions for installing and setting up the Symfony PHP framework. It discusses different installation methods like using the sandbox, PEAR, or SVN. It also covers generating a new Symfony project and application, configuring the web server, and troubleshooting common issues. Version control of Symfony projects using Subversion is also described.
The PyConTW (http://tw.pycon.org) organizer wishes to improve the quality and quantity of the programming cummunities in Taiwan. Though Python is their core tool and methodology, they know it's worth to learn and communicate with wide-ranging communities. Understanding cultures and ecosystem of a language takes me about three to six months. This six-hour course wraps up what I - an experienced Java developer - have learned from Python ecosystem and the agenda of the past PyConTW.
你可以在以下鏈結找到中文內容:
http://www.codedata.com.tw/python/python-tutorial-the-1st-class-1-preface
The document is a study guide for the LPI Level 1 Test 101 certification exam. It covers topics like configuring BIOS settings such as date, time, disks and boot order. It discusses computer hardware components like buses, interrupts and DMA channels. It also covers configuring devices like modems, sound cards and expansion cards. The guide provides an index of topics and objectives to help students prepare for the exam.
How to Build Package in Linux Based Systems.İbrahim UÇAR
This document explains how to create a Debian (.deb) package from source code or manually on a Linux system. It covers topics such as package types, dependencies, tools for creating packages, package files and structure, and testing packages. Key steps include installing package creation tools, compiling an application from source, and using tools like checkinstall or debmake to convert it to a .deb package. Manual package creation involves creating package files and directories, writing installation scripts, and building the package. The document provides examples to create packages for the bzip2 tool from source and manually for a test package.
A crash course
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
VPNs and network security
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR) Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
1. Introduction
2. Installation
3. The psql client
4. Authentication and privileges
5. Backup and restoration
6. Internal Architecture
7. Performance optimization
8. Stats and monitoring
9. Logs
10. Replication
The document provides instructions for installing and setting up the Symfony PHP framework. It discusses different installation methods like using the sandbox, PEAR, or SVN. It also covers generating a new Symfony project and application, configuring the web server, and troubleshooting common issues. Version control of Symfony projects using Subversion is also described.
The PyConTW (http://tw.pycon.org) organizer wishes to improve the quality and quantity of the programming cummunities in Taiwan. Though Python is their core tool and methodology, they know it's worth to learn and communicate with wide-ranging communities. Understanding cultures and ecosystem of a language takes me about three to six months. This six-hour course wraps up what I - an experienced Java developer - have learned from Python ecosystem and the agenda of the past PyConTW.
你可以在以下鏈結找到中文內容:
http://www.codedata.com.tw/python/python-tutorial-the-1st-class-1-preface
The document is a study guide for the LPI Level 1 Test 101 certification exam. It covers topics like configuring BIOS settings such as date, time, disks and boot order. It discusses computer hardware components like buses, interrupts and DMA channels. It also covers configuring devices like modems, sound cards and expansion cards. The guide provides an index of topics and objectives to help students prepare for the exam.
How to Build Package in Linux Based Systems.İbrahim UÇAR
This document explains how to create a Debian (.deb) package from source code or manually on a Linux system. It covers topics such as package types, dependencies, tools for creating packages, package files and structure, and testing packages. Key steps include installing package creation tools, compiling an application from source, and using tools like checkinstall or debmake to convert it to a .deb package. Manual package creation involves creating package files and directories, writing installation scripts, and building the package. The document provides examples to create packages for the bzip2 tool from source and manually for a test package.
Advanced Level Training on Koha / TLS (ToT)Ata Rehman
Advanced Level Training on Koha / Total Library Solution - TLS - (ToT), December 4-8, 2017 – PASTIC, Islamabad
All training material provided during this training can be found at: https://drive.google.com/drive/folders/1hwWGHV1iHgcpjK_tw6-Xgf-ZVUPchIS_
This presentation explores the motivations for and benefits from organizing private code into CPAN-style distributions. It was first given to the San Francisco Perl Mongers in February 2010.
This document is an introduction to Linux fundamentals and preparing for the Linux Professional Institute's 101 exam. It covers using the bash shell to navigate directories and view file listings, including the use of absolute and relative paths. It also discusses special directories like ., .., and ~, as well as interpreting permissions and other details from long directory listings using the ls command. The goal is to provide readers with a solid foundation in basic Linux concepts.
This document provides instructions for connecting a Raspberry Pi Zero to a Linux computer via USB and accessing it over the network. It outlines steps to configure the necessary files on the SD card like config.txt and cmdline.txt. It also describes how to set static IP addresses and enable internet sharing from the Linux computer to the Raspberry Pi over the USB connection. Troubleshooting tips are provided for connecting or enabling network access.
[ 2021 AI + X 여름 캠프 ] 1. linux 기초 & 장비 세팅ChoiYura
1. The document introduces Linux basics and equipment setup for an AI summer camp. It will cover OS, CLI commands, Vim, connecting equipment like Raspberry Pi and cameras.
2. It provides an overview of the course which includes learning Ubuntu CLI, Vim, setting up Raspberry Pi and NUC devices, and connecting them via SSH.
3. The goals are to introduce the equipment to be used, learn what an OS and CLI are, practice Linux CLI usage, learn network concepts and apply remote access via SSH, and complete basic setup between devices.
This document discusses Linux file systems and partitioning. It covers commands used to create partitions like fdisk and mkfs, as well as filesystem types like ext3. It also discusses creating and managing swap spaces. The key points are that Linux uses mkfs to format partitions, fdisk to create partitions, and mkswap to initialize swap spaces which are then activated with swapon.
The document describes how to create an Ubuntu repository mirror using the apt-mirror tool. It involves configuring where the mirror is stored, how many download threads to use, and which Ubuntu repositories to mirror, such as main, restricted, universe, and multiverse for specific releases. The mirror can then be accessed by client machines by updating their sources.list to point to the mirror server.
The document discusses development environments and build processes for GNU/Linux systems. It covers tools like the GNU Compiler Collection (GCC) and autotools that are used to compile, link, and build static and dynamic libraries. The key points are:
- Development environments include toolchains like GCC, libraries, headers and debuggers for compiling locally or cross-compiling for embedded targets.
- The build process involves preprocessing, compiling, assembling, and linking object files into binaries or libraries using tools like GCC and the GNU binutils.
- Static libraries archive object files, while dynamic libraries use external symbols and have version dependencies displayed by tools like ldd.
- Autotools like GNU make and autotools provide
The document discusses integrating the FISE semantic framework with Python and Plone. It introduces FISE, Python, Zope, and Plone and describes creating a Python API for FISE that hides its HTTP aspects. The API uses libraries like rdflib and restkit. Code is hosted on GitHub. Integrating FISE indexing and querying with Plone collections is discussed. A demo of the integration is presented.
The document discusses several Python tools for releasing and deploying Python projects, including zest.releaser which assists with versioning, tagging, and uploading source releases to PyPI; zest.stabilizer which helps move development environments to production; and collective.releaser which provides commands to more easily release and deploy zc.buildout and Subversion-based projects.
This document discusses techniques for optimizing Plone performance. It summarizes three customer cases and their different Plone implementations. The key areas discussed for optimization include database configuration, caching, load balancing, and web server configuration. Specific techniques recommended are using RelStorage with PostgreSQL instead of ZEO, blob storage, memcached, microcaching, and configuring Nginx for load balancing and direct blob delivery. The goal is to speed up the entire request-response cycle in Plone.
TYPO3 v8 is a major new version that provides significant improvements in performance, functionality, and features. It supports the latest PHP 7 for faster performance and includes new features like responsive backend, frontend editing, improved image manipulation, and a brand new form framework. It also improves the developer experience with features like PHP type declarations, standalone Fluid, and Doctrine DBAL for database abstraction. Subsequent versions added additional improvements such as flexible content elements, improved menus and links, and synchronization for multilingual content.
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...Carlos Eduardo
This document provides instructions for setting up poppassd in Red Hat Enterprise Linux 5 or CentOS 5. It describes downloading and installing the Razor's Edge repository rpm package, installing poppassd using yum, enabling the poppassd on-demand service, editing the /etc/pam.d/poppassd file, and provides an example of changing a password using poppassd over telnet.
Power point on linux commands,appache,php,mysql,html,css,web 2.0venkatakrishnan k
Linux is a widely used open-source operating system that can run on desktops, servers, and embedded devices. The document provides basic commands for Linux like cal to view a calendar, date to check the date and time, and cd to change directories. It also gives an overview of installing and configuring web servers like Apache and PHP as well as databases like MySQL on a Linux system.
Linux is a widely used open-source operating system that can run on desktops, servers, and embedded devices. It includes basic commands like cal, date, cd, and cat. The document also provides overviews of installing and configuring the Apache web server, PHP, and MySQL to set up a basic LAMP stack on a Linux system.
This document provides an overview of common Linux networking commands such as ifconfig, route, traceroute, nslookup, arp, dig, and netstat that are used to configure network interfaces, display routing tables, trace network routes, lookup domain names, manage address resolution, query DNS servers, and view network statistics. It also discusses how to use ifconfig to assign IP addresses to interfaces, route to view routing tables, arp to manage the address resolution cache, and dig for more powerful DNS lookups than nslookup.
The document discusses various networking commands used in Linux systems. It provides descriptions and examples of commands like ping, traceroute, mtr, host, whois, ifconfig, dhclient, netstat and more. These commands are used to test and monitor network connectivity, view routing tables, lookup domain information, configure network interfaces and more. Maintaining system and network uptime is a key task for system and network administrators.
The document discusses Linux package management using RPM and YUM. It covers how to install, upgrade, remove packages and query the RPM database. Key topics include using RPM to install, upgrade, remove packages; checking package integrity with signatures; and querying the RPM database to list installed packages, files in a package, or which package installed a specific file.
Hacktoberfest 2020 - Open source for beginnersDeepikaRana30
Hacktoberfest is a month-long celebration of open source software run by DigitalOcean in partnership with GitHub and Twilio. Participants must submit 5 quality pull requests to public GitHub repositories to earn a t-shirt. Open source software is important because it allows for collaboration and improves software quality through many perspectives. Creating a pull request involves forking a repository, cloning it locally, making changes on a new branch, committing changes, and creating a pull request on GitHub comparing the changes to the original repository.
Git Tutorial A Comprehensive Guide for Beginners.pdfuzair
flicts
If there are conflicts when merging changes, Git will prompt you to resolve them. You can use a variety of tools to resolve conflicts, including text editors and graphical merge tools.
Advanced Git Commands
git diff
The git diff command shows the differences between two different versions of a file:
phpCopy code
git diff <commit1> <commit2> <file>
git reset
The git reset command is used to reset the state of the repository to a specific commit:
perlCopy code
git reset <commit>
git stash
The git stash command is used to temporarily save changes that you are not yet ready to commit:
Copy code
git stash
Git Best Practices
Committing frequently
It is important to commit your changes frequently, rather than waiting until you have completed a large amount of work. This makes it easier to track changes and identify problems.
Writing meaningful commit messages
Your commit messages should be descriptive and provide context for the changes that you have made.
Creating descriptive branch names
Your branch names should be descriptive and provide context for the changes that you are working on.
Conclusion
In this guide, we have covered the basic concepts of Git, how to install it, and the
Git can be a complex tool, but with practice and experience, you will become more comfortable using it. If you have any questions or run into any issues, there is a wealth of resources available online, including documentation, forums, and tutorials.
Thank you for reading this comprehensive guide to Git for beginners.
FAQ
It provides a number of benefits, including the ability to collaborate with others, maintain a history of your code, and easily revert changes if necessary.
What is a repository in Git? A repository is a central location where your code is stored and managed. It contains all of the files and directories that make up your project, as well as a history of changes made to those files.
What is branching in Git? Branching is the process of creating a new line of development for your code. It allows you to work on new features or changes without affecting the main branch of your code.
How do I resolve merge conflicts in Git? When merging changes from one branch into another, you may encounter conflicts between different versions of the same file. Git provides tools to help you resolve these conflicts, including text editors and graphical meflicts
If there are conflicts when merging changes, Git will prompt you to resolve them. You can use a variety of tools to resolve conflicts, including text editors and graphical merge tools.
Advanced Git Commands
git diff
The git diff command shows the differences between two different versions of a file:
phpCopy code
git diff <commit1> <commit2> <file>
git reset
The git reset command is used to reset the state of the repository to a specific commit:
perlCopy code
git reset <commit>
git stash
The git stash command is used to temporarily save changes that you are not yet ready to commit:
Copy code
git sta
Advanced Level Training on Koha / TLS (ToT)Ata Rehman
Advanced Level Training on Koha / Total Library Solution - TLS - (ToT), December 4-8, 2017 – PASTIC, Islamabad
All training material provided during this training can be found at: https://drive.google.com/drive/folders/1hwWGHV1iHgcpjK_tw6-Xgf-ZVUPchIS_
This presentation explores the motivations for and benefits from organizing private code into CPAN-style distributions. It was first given to the San Francisco Perl Mongers in February 2010.
This document is an introduction to Linux fundamentals and preparing for the Linux Professional Institute's 101 exam. It covers using the bash shell to navigate directories and view file listings, including the use of absolute and relative paths. It also discusses special directories like ., .., and ~, as well as interpreting permissions and other details from long directory listings using the ls command. The goal is to provide readers with a solid foundation in basic Linux concepts.
This document provides instructions for connecting a Raspberry Pi Zero to a Linux computer via USB and accessing it over the network. It outlines steps to configure the necessary files on the SD card like config.txt and cmdline.txt. It also describes how to set static IP addresses and enable internet sharing from the Linux computer to the Raspberry Pi over the USB connection. Troubleshooting tips are provided for connecting or enabling network access.
[ 2021 AI + X 여름 캠프 ] 1. linux 기초 & 장비 세팅ChoiYura
1. The document introduces Linux basics and equipment setup for an AI summer camp. It will cover OS, CLI commands, Vim, connecting equipment like Raspberry Pi and cameras.
2. It provides an overview of the course which includes learning Ubuntu CLI, Vim, setting up Raspberry Pi and NUC devices, and connecting them via SSH.
3. The goals are to introduce the equipment to be used, learn what an OS and CLI are, practice Linux CLI usage, learn network concepts and apply remote access via SSH, and complete basic setup between devices.
This document discusses Linux file systems and partitioning. It covers commands used to create partitions like fdisk and mkfs, as well as filesystem types like ext3. It also discusses creating and managing swap spaces. The key points are that Linux uses mkfs to format partitions, fdisk to create partitions, and mkswap to initialize swap spaces which are then activated with swapon.
The document describes how to create an Ubuntu repository mirror using the apt-mirror tool. It involves configuring where the mirror is stored, how many download threads to use, and which Ubuntu repositories to mirror, such as main, restricted, universe, and multiverse for specific releases. The mirror can then be accessed by client machines by updating their sources.list to point to the mirror server.
The document discusses development environments and build processes for GNU/Linux systems. It covers tools like the GNU Compiler Collection (GCC) and autotools that are used to compile, link, and build static and dynamic libraries. The key points are:
- Development environments include toolchains like GCC, libraries, headers and debuggers for compiling locally or cross-compiling for embedded targets.
- The build process involves preprocessing, compiling, assembling, and linking object files into binaries or libraries using tools like GCC and the GNU binutils.
- Static libraries archive object files, while dynamic libraries use external symbols and have version dependencies displayed by tools like ldd.
- Autotools like GNU make and autotools provide
The document discusses integrating the FISE semantic framework with Python and Plone. It introduces FISE, Python, Zope, and Plone and describes creating a Python API for FISE that hides its HTTP aspects. The API uses libraries like rdflib and restkit. Code is hosted on GitHub. Integrating FISE indexing and querying with Plone collections is discussed. A demo of the integration is presented.
The document discusses several Python tools for releasing and deploying Python projects, including zest.releaser which assists with versioning, tagging, and uploading source releases to PyPI; zest.stabilizer which helps move development environments to production; and collective.releaser which provides commands to more easily release and deploy zc.buildout and Subversion-based projects.
This document discusses techniques for optimizing Plone performance. It summarizes three customer cases and their different Plone implementations. The key areas discussed for optimization include database configuration, caching, load balancing, and web server configuration. Specific techniques recommended are using RelStorage with PostgreSQL instead of ZEO, blob storage, memcached, microcaching, and configuring Nginx for load balancing and direct blob delivery. The goal is to speed up the entire request-response cycle in Plone.
TYPO3 v8 is a major new version that provides significant improvements in performance, functionality, and features. It supports the latest PHP 7 for faster performance and includes new features like responsive backend, frontend editing, improved image manipulation, and a brand new form framework. It also improves the developer experience with features like PHP type declarations, standalone Fluid, and Doctrine DBAL for database abstraction. Subsequent versions added additional improvements such as flexible content elements, improved menus and links, and synchronization for multilingual content.
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...Carlos Eduardo
This document provides instructions for setting up poppassd in Red Hat Enterprise Linux 5 or CentOS 5. It describes downloading and installing the Razor's Edge repository rpm package, installing poppassd using yum, enabling the poppassd on-demand service, editing the /etc/pam.d/poppassd file, and provides an example of changing a password using poppassd over telnet.
Power point on linux commands,appache,php,mysql,html,css,web 2.0venkatakrishnan k
Linux is a widely used open-source operating system that can run on desktops, servers, and embedded devices. The document provides basic commands for Linux like cal to view a calendar, date to check the date and time, and cd to change directories. It also gives an overview of installing and configuring web servers like Apache and PHP as well as databases like MySQL on a Linux system.
Linux is a widely used open-source operating system that can run on desktops, servers, and embedded devices. It includes basic commands like cal, date, cd, and cat. The document also provides overviews of installing and configuring the Apache web server, PHP, and MySQL to set up a basic LAMP stack on a Linux system.
This document provides an overview of common Linux networking commands such as ifconfig, route, traceroute, nslookup, arp, dig, and netstat that are used to configure network interfaces, display routing tables, trace network routes, lookup domain names, manage address resolution, query DNS servers, and view network statistics. It also discusses how to use ifconfig to assign IP addresses to interfaces, route to view routing tables, arp to manage the address resolution cache, and dig for more powerful DNS lookups than nslookup.
The document discusses various networking commands used in Linux systems. It provides descriptions and examples of commands like ping, traceroute, mtr, host, whois, ifconfig, dhclient, netstat and more. These commands are used to test and monitor network connectivity, view routing tables, lookup domain information, configure network interfaces and more. Maintaining system and network uptime is a key task for system and network administrators.
The document discusses Linux package management using RPM and YUM. It covers how to install, upgrade, remove packages and query the RPM database. Key topics include using RPM to install, upgrade, remove packages; checking package integrity with signatures; and querying the RPM database to list installed packages, files in a package, or which package installed a specific file.
Hacktoberfest 2020 - Open source for beginnersDeepikaRana30
Hacktoberfest is a month-long celebration of open source software run by DigitalOcean in partnership with GitHub and Twilio. Participants must submit 5 quality pull requests to public GitHub repositories to earn a t-shirt. Open source software is important because it allows for collaboration and improves software quality through many perspectives. Creating a pull request involves forking a repository, cloning it locally, making changes on a new branch, committing changes, and creating a pull request on GitHub comparing the changes to the original repository.
Git Tutorial A Comprehensive Guide for Beginners.pdfuzair
flicts
If there are conflicts when merging changes, Git will prompt you to resolve them. You can use a variety of tools to resolve conflicts, including text editors and graphical merge tools.
Advanced Git Commands
git diff
The git diff command shows the differences between two different versions of a file:
phpCopy code
git diff <commit1> <commit2> <file>
git reset
The git reset command is used to reset the state of the repository to a specific commit:
perlCopy code
git reset <commit>
git stash
The git stash command is used to temporarily save changes that you are not yet ready to commit:
Copy code
git stash
Git Best Practices
Committing frequently
It is important to commit your changes frequently, rather than waiting until you have completed a large amount of work. This makes it easier to track changes and identify problems.
Writing meaningful commit messages
Your commit messages should be descriptive and provide context for the changes that you have made.
Creating descriptive branch names
Your branch names should be descriptive and provide context for the changes that you are working on.
Conclusion
In this guide, we have covered the basic concepts of Git, how to install it, and the
Git can be a complex tool, but with practice and experience, you will become more comfortable using it. If you have any questions or run into any issues, there is a wealth of resources available online, including documentation, forums, and tutorials.
Thank you for reading this comprehensive guide to Git for beginners.
FAQ
It provides a number of benefits, including the ability to collaborate with others, maintain a history of your code, and easily revert changes if necessary.
What is a repository in Git? A repository is a central location where your code is stored and managed. It contains all of the files and directories that make up your project, as well as a history of changes made to those files.
What is branching in Git? Branching is the process of creating a new line of development for your code. It allows you to work on new features or changes without affecting the main branch of your code.
How do I resolve merge conflicts in Git? When merging changes from one branch into another, you may encounter conflicts between different versions of the same file. Git provides tools to help you resolve these conflicts, including text editors and graphical meflicts
If there are conflicts when merging changes, Git will prompt you to resolve them. You can use a variety of tools to resolve conflicts, including text editors and graphical merge tools.
Advanced Git Commands
git diff
The git diff command shows the differences between two different versions of a file:
phpCopy code
git diff <commit1> <commit2> <file>
git reset
The git reset command is used to reset the state of the repository to a specific commit:
perlCopy code
git reset <commit>
git stash
The git stash command is used to temporarily save changes that you are not yet ready to commit:
Copy code
git sta
This document provides an agenda for an orientation session on Git and GitHub that will cover:
1. What Git and GitHub are and how to install Git and create a GitHub account
2. Creating repositories, adding files, checking status, and pushing changes to GitHub
3. Additional GitHub programs like GitHub Student Developer Pack and Campus Experts
4. An activity like a quiz to reinforce the material
This document provides an overview of version control and Git. It discusses the history of version control from single-user locks to distributed systems like Git. It then defines what Git is and compares different Git repository providers like GitHub, GitLab, and Bitbucket. It recommends starting with a Git GUI and explains the difference between local and remote repositories. The document outlines a basic Git workflow of creating branches, committing changes, pushing branches, and creating pull requests. It concludes with some best practices for branch naming conventions and code reviews.
Digital Fabrication Studio v.0.2: Version Control System: FilesMassimo Menichinelli
This document discusses version control systems Git and GitHub. It begins with an overview of Git as a distributed version control system and its advantages over centralized and local systems. The document then covers downloading and installing Git, useful learning resources, and Git commands and architecture. Next, the document introduces GitHub as a hosting service for Git repositories with free user accounts. It provides examples of GitHub clients for different operating systems. The document concludes with exercises to create a GitHub repository and bio with images using Git and a GitHub client.
Introduction to GitHub, Open Source and Tech ArticlePRIYATHAMDARISI
The document provides an introduction to Git and GitHub. It begins with an agenda that outlines topics like commands, a demo, open source, and conclusion. It then discusses what Git is, the need to learn version control, and demonstrates some basic Git commands. It also covers topics like open source opportunities and general discussions.
Difference between Github vs Gitlab vs Bitbucketjeetendra mandal
Git is a source control management tool that tracks files by recording who made modifications, which files changed and what the changes were, and which files were added or deleted. It provides a commit history that allows users to check modifications by commit ID and see what changes were made in each commit. GitHub, GitLab, and Bitbucket are popular hosted Git services that allow users to create remote repositories, initialize local repositories connected to the remote, give access to multiple contributors, and push and pull changes between local and remote repositories.
Git is a distributed version control system that allows for both local and remote collaboration on code. It provides advantages like speed, simplicity, integrity, and support for parallel development through features like branching. Common Git commands include git init to start a new repository, git add to stage files, git commit to save changes, git push to upload local work to a remote repository, and git pull to download remote changes. GitHub is a popular hosting service for Git repositories that provides a graphical interface and social features.
Git is a version control system that tracks changes to files and allows collaboration. It keeps track of the entire history of changes to a project. The basic terminology includes repository, which stores project changes in folders; commits, which record changes with unique IDs; and branches, which allow parallel development. GitHub is a remote repository hosting service that allows pushing local repositories to the cloud. The document outlines how to initialize a local Git repository, add and commit files, connect the repository to a remote GitHub one, and push changes to share them.
Introduction to GitHub and why it has taken the open-source community by storm. Examples of community-driven software projects in GitHub and an introduction to the Rocket MultiValue Lab’s GitHub repository and what you can find there. An introduction to the Git software versioning system and how it is integrated with GitHub.
- Git is a free and open source distributed version control system that allows users to manage and track changes to source code. GitHub is a hosting service that offers additional features for Git repositories like wikis and issue tracking. Git is the tool and GitHub is the hosting service.
- Unlike centralized version control systems like CVS and SVN, Git allows for distributed collaboration where any clone of a Git repository is a full backup that can be used to restore the repository if the main server goes down.
- The presentation covers how to set up Git on Windows, Mac and Linux, how to initialize and clone repositories, and provides an overview of basic Git commands.
Github is a code hosting platform that allows developers to collaborate on projects. It uses Git for version control and storing a project's codebase and file history. Developers can work together using features like forking repositories, creating branches, submitting pull requests, and discussing code changes through issues. This allows teams to efficiently build and maintain projects together.
This document discusses the infrastructure for Spring projects including source control, builds, community involvement, and tools. It describes the move of Spring projects from Subversion and internal Git repositories to GitHub. It outlines the processes for contributing code via pull requests and code reviews. It also introduces other tools used in the Spring ecosystem like Gradle for builds, Bamboo for continuous integration, Artifactory for artifact management, Sonar for code quality metrics, and JIRA for issue tracking.
This document discusses the infrastructure and processes for Spring projects, including source control, builds, and community involvement. It notes that Spring projects have moved from Subversion and internal Git repositories to GitHub for source control. Projects now use Gradle for builds and Bamboo for continuous integration. Issues are tracked using JIRA. The document provides information on contributing code via pull requests and participating in the community through forums, blogs, and Twitter.
This document discusses GitHub and open source software. It begins with an introduction to open source software, including its history and advantages. It then covers Git, including what it is, why it's used, and some basic commands. The document also discusses GitHub, including what it is, how it can be used for collaboration, and best practices. It emphasizes using commits and pull requests effectively, dealing with conflicts, using issues and labels properly, and choosing an appropriate license.
Git 101, or, how to sanely manage your Koha customizationsIan Walls
Git is a version control system that allows for distributed development and management of changes to source code. It can be used to manage customizations to the Koha integrated library system. Developers can clone the Koha repository, make changes on a branch, commit changes locally, and submit patches for review and inclusion in the main codebase. The process involves filing bug reports, attaching patches, getting sign-off from others, and keeping branches up to date with the main code.
Open up your platform with Open Source and GitHubScott Graham
The document provides information about open sourcing projects and using GitHub. It discusses the benefits of open sourcing including increased adoption, feedback, and community. It then outlines the steps to open source a project including picking something to open source, deciding where to host it (e.g. GitHub), setting up a GitHub repository, using Git concepts like branches, structuring the project, and cleaning up and pushing the code. The document concludes with recommendations like using private and public repositories, taking advantage of GitHub tools, and considering package managers.
Hackaton for health 2015 - Sharing the Code we Makeesben1962
The document discusses using open source licensing and version control to share code created during a hackathon. It recommends using the Git version control system and hosting code on GitHub. A dual MIT and GPL2 license is suggested to maximize developer adoption. Git allows for cloning repositories, branching, merging, pushing and pulling changes. GitHub provides hosting and collaboration on code repositories.
This document provides an overview and introduction to using the version control system Git. It discusses key Git concepts like distributed version control, cloning repositories, and the typical local and remote workflows. The document covers setting up Git, creating and cloning repositories, editing and committing changes locally, branching, merging, tagging, and working with remote repositories by pushing and pulling changes.
Open Source School - Bachelor 3
Supports de cours Linux Administrateur
Ce support est sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
Programmation Bash Avancée
* Expressions logiques & boucles
* Paramètres d’entrée et valeurs de retour
* Environnements d'exécution
* Expressions régulières
Gestion des utilisateurs et des groupes
* L'utilisateur et le groupe POSIX
* Gestion des comptes
Administration du système
* Les logs et les mails
* Fichiers de configuration du système
* La gestion des paquets et des mises à jour
* Les services
* Exécution automatique de tâches (cron, at, ...)
* Localisation et internationalisation
TCP/IP et configuration du réseau
* Adressage IP et routage
* Protocoles réseaux (ICMP, TCP, UDP, …) et ports
* Configuration réseau (adresses, hooks, vlan, ...)
* Les outils de l'administrateu : ping, netstat, arp, netcat, traceroute, nmap, ...
Services système et Sécurité
* Permissions du système de fichiers, quotas utilisateurs
* Sécurité réseau
Iptables
OpenSSH et fail2ban
Authentification du serveur et des utilisateurs
En savoir plus sur www.opensourceschool.fr
Open Source School - Bachelor 3
Support de cours Linux Scripting
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
OBJECTIFS :
* Acquérir une connaissance des divers aspects du shell
* Connaître tous les mécanismes de base du shell
* Créer des scripts transportables d'un Linux à l'autre
* Une passe sur des mécanismes avancés du shell vous permettra de bien maîtriser l'outil
* Connaître toutes les astuces du shell ainsi que des commandes d'administration basiques du système Linux
PLAN :
Introduction
* Historique
* Présentation
* Fichiers de configuration
* Créer un script shell
* Exécution d'un script
Mécanismes de base
* Affichage et lecture
* Commentaires
* Les variables
* L'environnement
* Les quotes
* Les arguments
* Codes de retour
Construction de shell scripts portables
* If et case
* Les comparaisons
* For et while
* Les fonctions
* L'import de fichiers
Mécanismes complémentaires
* Les redirections
* Opérations mathématiques
* Meta characters
* ANSI-C
* Getopts
* Les tableaux
* Le select
* Les signaux
En savoir plus sur : www.opensourceschool.fr
Open Source School - Bachelor 3
Support de cours PHP & Initiation Symfony
Ce support de cours est sous licence Creative Commons (CC BY-SA 3.0 FR). Attribution - Partage dans les Mêmes Conditions 3.0 France
PLAN :
PHP Basics
* Introduction
* Premiers pas
* Bases du langage
PHP Advanced
* Programmation objet
* Gestion des erreurs
* Debugger
* Bases de données
* Sécurité
* Optimisations
* Design pattern
* Framework
En savoir plus sur : www.opensourceschool.fr
Open Source School - Bachelor 3
Support de cours Stratégie de Virtualisation Open Source
Ce support de cours est sous licence Creative Commons (CC BY-SA 3.0 FR). Attribution - Partage dans les Mêmes Conditions 3.0 France
PLAN :
La théorie
* Définition de la virtualisation
* L’histoire de la virtualisation et l'énergie
* Les types de virtualisation
* Comparaison des solutions
* La stratégie actuelle et son mode d’application
La virtualisation sur le poste de travail
* VirtualBox
* Les CGroups
* L’isolation / Les jails
* OpenVZ
* LXC
La virtualisation sur les serveurs
* QEMU
* KVM / XEN
* Les fonctionnalités
* La sécurité
* La gestions des E/S - VirtIO
* La manipulation des VM avec LibVirt
L'IaaS
* OpenStack
* Docker
Theory and OpenLDAP implementation
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
En savoir plus sur www.opensourceschool.fr
Plan :
1. Introduction
2. Anatomy of a LDAP directory
3. OpenLDAP: A LDAP implementation
4. Lab : Install an OpenLDAP server
5. Working with LDAP servers
6. Extending LDAP
Monitoring : The art of knowing when and why things go wrongOpen Source School
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR) Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
1 Principles
2 Monitoring tools
3 Reading graphs
4 Real-life examples
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR)
Attribution - Partage dans les Mêmes Conditions 3.0 France
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR) Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
1. Reverse proxies
2. Varnish overview
3. VCL
4. CLI tools
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
2. 1
La 1ère école 100 % dédiée à l'open source
Open Source School est fondée à l'initiative de Smile, leader de
l'intégration et de l'infogérance open source, et de l'EPSI,établissement
privé pionnier de l’enseignement supérieur en informatique.
Dans le cadre du Programme d’Investissements d’Avenir (PIA), le
gouvernement français a décidé de soutenir la création de cette école en
lui attribuant une première aide de 1,4M€ et confirme sa volonté de
soutenir la filière du Logiciel Libre actuellement en plein développement.
Avec une croissance annuelle de plus de 10%, et 4 000
postes vacants chaque année dans le secteur du Logiciel
Libre, OSS entend répondre à la pénurie de compétences du
secteur en mobilisant l’ensemble de l’écosystème et en
proposant la plus vaste offre en matière de formation aux
technologies open source tant en formation initiale qu'en
formation continue.
3. 2
Les formations du plein emploi !
Formation Continue
Open Source School "Executive Education" est un organisme
de formation qui propose un catalogue de plus de 200
formations professionnelles et différents dispositifs de
reconversion permettant le retour à l’emploi (POE) ou une
meilleure employabilité pour de nombreux professionnels de
l’informatique.
Pour vos demandes : formations@opensourceschool.fr
Formation Initiale
100% logiciels libres et 100% alternance, le cursus Open
Source School s’appuie sur le référentiel des blocs de
compétences de l’EPSI.
Il est sanctionné par un titre de niveau I RNCP, Bac+5.
Le programme est proposé dans 6 campus à Bordeaux, Lille,
Lyon, Montpellier, Nantes, Paris.
5. Git overview and base concepts Getting started with git Working with git References
Agenda
1 Git overview and base concepts
2 Getting started with git
3 Working with git
4 References
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 2/69
6. Git overview and base concepts Getting started with git Working with git References
Git overview and base concepts
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 3/69
7. Git overview and base concepts Getting started with git Working with git References
Git presentation and history
Git presentation and history
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 4/69
8. Git overview and base concepts Getting started with git Working with git References
Git presentation and history
Git presentation and history
Git is a distributed revision control and source code
management system
Git is a free software created by Linus Torvalds
Git is available under the GNU GPL V2 license
Git was initialy created to host the Linux kernel sources after
the hosting on BitKeeper was abandonned
Key dates:
3 April 2005: Linus starts development
16 June 2005: release 2.6.12 of the linux kernel managed by git
26 July 2005: handover of maintenance to a major contributor
(Junio Hamano)
21 December 2005: release of v1.0 of git
28 May 2014: release of v2.0 of git
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 5/69
9. Git overview and base concepts Getting started with git Working with git References
Other SCMs
Other SCMs
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 6/69
10. Git overview and base concepts Getting started with git Working with git References
Other SCMs
Other SCMs
Centralized (client/server):
Concurrent Version System (CVS)
Subversion (svn)
Distributed:
Mercurial
GNU Bazaar
BitKeeper
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 7/69
11. Git overview and base concepts Getting started with git Working with git References
Distributed system benefits and drawbacks
Distributed system benefits and drawb
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 8/69
12. Git overview and base concepts Getting started with git Working with git References
Distributed system benefits and drawbacks
Distributed system benefits and drawbacks
Benefits:
Full history available locally
No need for network connection for usual operations
No need for manager approval for day to day usage (branch,
tag, merge ...)
There is still a reference repository
You can clone the reference repository or any existing clone
Merge system (vs. lock one)
Drawbacks:
Initial cloning can be long (full history)
No lock system (can be a problem for binaries)
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 9/69
13. Git overview and base concepts Getting started with git Working with git References
Data integrity control
Data integrity control
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 10/69
14. Git overview and base concepts Getting started with git Working with git References
Data integrity control
Data integrity control
Usage of SHA-1 hashes (same result on any machine/system
for the same content)
160 bits footprint (40 chars.)
All files are stored in .git/objects
Files are identified by an ID: fast and efficient
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 11/69
15. Git overview and base concepts Getting started with git Working with git References
Understanding git architecture
Understanding git architecture
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 12/69
16. Git overview and base concepts Getting started with git Working with git References
Understanding git architecture
Understanding git architecture: Working areas
There are basically 4 areas you have to work with:
The working directory: it holds your project files ; this is were
you make changes.
The staging area: this is were you add the snapshot of the
files you want to commit to your repository.
The local repository: this is were you commit your changes ;
this is held in the .git directory.
The remote repository: this is the reference that you use to
pull the changes made by other developpers and push your
own changes ; this repository is bare (it contains no working
copy) ; in Smile context, this will be a GitLab repository on
https://git.smile.fr/ that you access over http or ssh.
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 13/69
17. Git overview and base concepts Getting started with git Working with git References
Understanding git architecture
Understanding git architecture: Operations overview
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 14/69
18. Git overview and base concepts Getting started with git Working with git References
Getting started with git
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 15/69
19. Git overview and base concepts Getting started with git Working with git References
Installing git and needed tools
Installing git and needed tools
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 16/69
20. Git overview and base concepts Getting started with git Working with git References
Installing git and needed tools
Installing git and needed tools
Linux debian/ubuntu
apt-get install git git-svn gitk meld
Windows
msysgit
tortoiseGit
Mac
http://code.google.com/p/git-osx-installer
http://www.macports.org
sudo port install git-core +svn +doc
+bash_completion +gitweb
Eclipse
egit
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 17/69
21. Git overview and base concepts Getting started with git Working with git References
Installing git and needed tools
Installing git and needed tools: Practice
Install git on your machine
Make sure the git command is available in your terminal
Check which git version is in use
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 18/69
22. Git overview and base concepts Getting started with git Working with git References
Getting help
Getting help
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 19/69
23. Git overview and base concepts Getting started with git Working with git References
Getting help
Getting help
For all sub-commands, git integrates a detailed help accessible
with:
git help <command>
All configuration variables can be inspected with a good detail
level with command:
git help config
Most commands and references can be autocompleted on the
commande line, so do not hesitate to hit the TAB key:
git [TAB] # list of commands
git cmd [TAB] # list of options
git cmd -o [TAB] # list of remotes/branches
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 20/69
24. Git overview and base concepts Getting started with git Working with git References
Getting help
Getting help: Practice
Look at global help
Use autocompletion with the help command (type the first
letter of a git subcommand)
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 21/69
25. Git overview and base concepts Getting started with git Working with git References
Telling git who you are
Telling git who you are
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 22/69
26. Git overview and base concepts Getting started with git Working with git References
Telling git who you are
Telling git who you are
Before you start any work in git, you must set your identity
correctly. It will be used to identify your as an author or committer:
git config --global user.name "Olivier Clavel"
git config --global user.email
"olivier.clavel@smile.fr"
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 23/69
27. Git overview and base concepts Getting started with git Working with git References
Telling git who you are
Telling git who you are: Practice
Configure your full name and email
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 24/69
28. Git overview and base concepts Getting started with git Working with git References
Setting editors
Setting editors
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 25/69
29. Git overview and base concepts Getting started with git Working with git References
Setting editors
Setting editors
You can choose your favorite editor as you wish. Default is
$EDITOR (most probably vi). Examples:
git config --global core.editor nano
git config --global core.editor gedit
You should as well define your diff editor. The recommended
one is meld on linux:
git config --global merge.tool meld
For other diff editor possibilities see:
git help mergetool
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 26/69
30. Git overview and base concepts Getting started with git Working with git References
Setting editors
Setting editors: Practice
Set your favorite text editor
Set your favorite diff editor ; if you don’t have one, install
Meld and set it as default
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 27/69
31. Git overview and base concepts Getting started with git Working with git References
Colors in your terminal
Colors in your terminal
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 28/69
32. Git overview and base concepts Getting started with git Working with git References
Colors in your terminal
Colors in your terminal
Git can colorize most of its output in the terminal for better
readability. To globaly enable colors:
git config --global color.ui auto
For fined grained color tuning see all color.* config variables.
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 29/69
33. Git overview and base concepts Getting started with git Working with git References
Colors in your terminal
Colors in your terminal: Practice
Have a look at color variables in config help
Set default auto color for output
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 30/69
34. Git overview and base concepts Getting started with git Working with git References
Working with git
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 31/69
35. Git overview and base concepts Getting started with git Working with git References
Creating a local repository
Creating a local repository
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 32/69
36. Git overview and base concepts Getting started with git Working with git References
Creating a local repository
Creating a local repository
Initialise an empty local repository
mkdir my_project
cd my_project
git init
Clone an existing remote repository
git clone
git@git.smile.fr/my_group/my_project.git
my_project_local_dir
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 33/69
37. Git overview and base concepts Getting started with git Working with git References
Creating a local repository
Creating a local repository: Practice
Basic set up of your Gitlab account (preferences, ssh key ...)
Create a folder for today’s training
Move to that folder
Initialise a git dir from scratch and copy some files in there
Create another repo by cloning the example for today’s
training
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 34/69
38. Git overview and base concepts Getting started with git Working with git References
Adding files to the staging area
Adding files to the staging area
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 35/69
39. Git overview and base concepts Getting started with git Working with git References
Adding files to the staging area
Adding files to the staging area
Once you have modified some files in your workdir, you must add
the changes to the staging to prepare them for commit.
First have a look at what has changed:
git status
git diff
You should always over-use these commands (with options
eventually)
Add some files to the staging area:
git add [file | folder | ...] [file2 | folder2 | ...]
For partial add operations, use the patch mode:
git add -p / git add --patch
For fine tuning of add operation, use the interactive mode:
git add -i / git add --interactive
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 36/69
40. Git overview and base concepts Getting started with git Working with git References
Adding files to the staging area
Adding files to the staging area: Practice
Work on your own empty created repo
Examine the state of your dir
Add some more files or make some changes if needed
Add some changes to your staging area
Add an external library
Use the git add interactive and partial modes to add the
library to the index
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 37/69
41. Git overview and base concepts Getting started with git Working with git References
Listing differences
Listing differences
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 38/69
42. Git overview and base concepts Getting started with git Working with git References
Listing differences
Listing differences
See differences between your working copy and the staging
area:
git diff
See differences between your working copy + staging area and
the last commit on your branch:
git diff HEAD
See differences between your staging area and the last
commmit:
git diff --staged
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 39/69
43. Git overview and base concepts Getting started with git Working with git References
Listing differences
Listing differences: Practice
List differences for files you did not yet add
List differences already added to your staging area
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 40/69
44. Git overview and base concepts Getting started with git Working with git References
Commiting changes and viewing history
Commiting changes and viewing histo
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 41/69
45. Git overview and base concepts Getting started with git Working with git References
Commiting changes and viewing history
Commiting changes and viewing history
To create a new commmit with the content of the staging area,
use git commit.
With no option, it will launch your external editor to let you
write commit’s message:
git commit
Specify the message on the commmand line:
git commit -m "my commit message"
You can add all changes to the staging and commit them at
once:
git commit -a -m "my commit message"
You can modify a commit:
git commit --amend
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 42/69
46. Git overview and base concepts Getting started with git Working with git References
Commiting changes and viewing history
Commiting changes and viewing history
To look at history of commits, use git log.
Full default history:
git log
Show history since one minute ago:
git log -p --since="1 minute ago"
Show history of last 2 commits:
git log -p HEAD~2..HEAD
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 43/69
47. Git overview and base concepts Getting started with git Working with git References
Commiting changes and viewing history
Commiting changes and viewing history: Practice
Commit your staged changes
Add some more changes and commit them
Have a look at the history
Get help on git show and examine some commits with it
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 44/69
48. Git overview and base concepts Getting started with git Working with git References
Creating branches
Creating branches
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 45/69
49. Git overview and base concepts Getting started with git Working with git References
Creating branches
Creating branches
By default the repository contains the master branch
To create a dev branch based on the latest commit of the
current one:
git branch dev
To switch on the newly create branch:
git checkout dev
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 46/69
50. Git overview and base concepts Getting started with git Working with git References
Creating branches
Creating branches: Practice
Create a dev branch from master
Switch to dev branch
Make some changes, add, commit them
Switch back to master
List differences between master and dev branches (hint: get
help on diff)
Get help on the checkout command and figure out how to
create and switch to a branch named experimental in a
single command
Make some changes in branch experimental, commit them
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 47/69
51. Git overview and base concepts Getting started with git Working with git References
Merging branches
Merging branches
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 48/69
52. Git overview and base concepts Getting started with git Working with git References
Merging branches
Merging branches
To merge the changes from one branch into another (e.g. dev
into master):
git checkout master
git merge dev
Branches can be merged multiple times. Git keeps trace of
the merge history.
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 49/69
53. Git overview and base concepts Getting started with git Working with git References
Rebasing
Rebasing
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 50/69
54. Git overview and base concepts Getting started with git Working with git References
Rebasing
Rebasing
You can rebase one branch on the work done on another.
When you rebase, you are basically adding your work after the
one done on the other branch
git pull --rebase
git rebase master
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 51/69
55. Git overview and base concepts Getting started with git Working with git References
Rebasing
Merging and Rebasing: Practice
Merge dev into master and show logs
Rebase experimental on master and show logs
Merge experimental into master and show logs
Delete branch experimental (hint: git help on branch)
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 52/69
56. Git overview and base concepts Getting started with git Working with git References
Cherry-picking
Cherry-picking
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 53/69
57. Git overview and base concepts Getting started with git Working with git References
Cherry-picking
Cherry-picking
You can pick a single commit from one branch and insert it in
another:
git cherry-pick <hash>
When you cherry-pick, the original commit is patched in
current history and a new commit is done
You can compare commits between branches:
git cherry -v master dev
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 54/69
58. Git overview and base concepts Getting started with git Working with git References
Cherry-picking
Cherry-picking: Practice
Checkout the dev branch, make some updates and commit
them
Checkout master and list commits diff
Cherry-pick your commit from dev to master
List commits diff again
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 55/69
59. Git overview and base concepts Getting started with git Working with git References
Sharing work with the remote repository
Sharing work with the remote reposito
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 56/69
60. Git overview and base concepts Getting started with git Working with git References
Sharing work with the remote repository
Sharing work with the remote repository
If you have cloned a remote, git already has the master as a
remote tracking branch. Else you need to add the remote,
publish the branch and set it as upstream:
git remote add origin
git@git.smile.fr:my_group/my_project.git
git push --set-upstream origin master
You proceed the same way with new branches you want to
publish and track:
git push -u origin dev
To retrieve changes pushed by others on the remote, you must
fetch them and merge them in your branch:
git pull
# or in two steps
git fetch && git merge
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 57/69
61. Git overview and base concepts Getting started with git Working with git References
Sharing work with the remote repository
Sharing work with the remote repository
In most cases, on long living branches, you will want to rebase
your work on the remote branch:
git pull --rebase
To rebase automatically for a specific branch each time you
pull:
git config branch.master.rebase true
git pull
To rebase automatically for all new branches (add –global to
have it permanent on the machine):
git config branch.autosetuprebase always
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 58/69
62. Git overview and base concepts Getting started with git Working with git References
Sharing work with the remote repository
Remote interaction: Practice
Create a training repository under your name on gitlab.
Please remember to clean it up after the training. Thanks :)
Add this new remote as origin on your local home made
repository
Push master on origin and set origin/master as remote
tracking branch
Move to the example clone repository
Config master to always rebase on upstream on pull
Push your changes (if you can)
Pull changes from others
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 59/69
63. Git overview and base concepts Getting started with git Working with git References
Working with tags
Working with tags
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 60/69
64. Git overview and base concepts Getting started with git Working with git References
Working with tags
Working with tags
Tags are used to identify a specific version of a specific
branch, typically to identify a version pushed to producion
Tags can be organised with prefixes like for folders on a disk
You can create a lightweight tag (default):
git tag production/20140116_0902 master
Or a full tag object, even with a GPG signature:
git tag -s -m "pushing release XXX to
uat for testing" uat/20140112_1735 master
Signed tags can be verified:
git tag -v uat/20140112_1735
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 61/69
65. Git overview and base concepts Getting started with git Working with git References
Working with tags
Working with tags: Practice
Create some tags
Push those tags to the origin remote (hint: help push)
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 62/69
66. Git overview and base concepts Getting started with git Working with git References
Ignoring files
Ignoring files
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 63/69
67. Git overview and base concepts Getting started with git Working with git References
Ignoring files
Ignoring files
Personnal ignore file globally applied on your machine:
git config --global core.excludesfile
/home/<USER>/.gitignore
vim /home/<USER>/.gitignore
Local and personnal ignore file for a specific repository:
vim .git/info/exclude
Local shared ignore file commited in the repository:
cd my_project
vim .gitignore
git add .gitignore
git commit -m "Ignoring y and z in project"
Those files all contain list of GLOBS file patterns to exclude
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 64/69
68. Git overview and base concepts Getting started with git Working with git References
Ignoring files
Ignoring files: Practice
Exclude your favourite backup extension globally for all your
git repositories
Exclude .phps locally for your current repositories
Create a cache and log directories and ignore all their
contents for anyone working on the project
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 65/69
69. Git overview and base concepts Getting started with git Working with git References
Going back to a previous state
Going back to a previous state
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 66/69
70. Git overview and base concepts Getting started with git Working with git References
Going back to a previous state
Going back to a previous state
Remove a change in staging keeping the working file
unchanged (opposite of add):
git reset -- path/to/file
Discard all changes come back to the HEAD revision in
repository:
git reset --hard HEAD
Recover a file accidentaly deleted:
# recover from HEAD revision in repository
git chekout HEAD path/to/file
# recover from staging area
git checkout -- path/to/file
Repair an error that was commited to the repository. This
creates a new commit undoing the change. In this example
only undo last commit:
git revert HEAD
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 67/69
71. Git overview and base concepts Getting started with git Working with git References
References
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 68/69
72. Git overview and base concepts Getting started with git Working with git References
References
Learn git online in 15 minutes on github:
http://try.github.io/levels/1/challenges/1
Visual git Cheatsheet:
http://ndpsoftware.com/git-cheatsheet.html
Pro Git book: http://git-scm.com/book
Git community book: http://alx.github.io/gitbook/
Git - the simple guide: http://rogerdudler.github.io/git-guide/
git-workflows for agilist:
https://github.com/stevenharman/git-workflows
www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 69/69