This lecture is the first part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the basic concepts as well as Installation and initial configuration of Git
The document provides a historical overview of Linux and embedded systems. It discusses the origins and development of Unix, GNU, and Linux. Key points include:
- Unix was first created at Bell Labs in 1969 and was highly portable due to being written in C. This led to its widespread use.
- Richard Stallman founded the GNU project in 1983 to create a free Unix-like operating system. GNU created many important tools but lacked the kernel.
- Linus Torvalds developed the Linux kernel in 1991, combining it with GNU tools to create a free open-source operating system similar to Unix.
- Today Linux is widely used in embedded systems, having been ported to architectures like ARM, M
The document provides a historical overview of Linux and its origins from Unix. It discusses how Unix was initially developed at Bell Labs in the 1960s-1970s and was then further developed into various commercial and non-commercial versions. It also outlines how the GNU project was founded to create a free Unix-like operating system and how Linux was later created by Linus Torvalds to provide the missing kernel to GNU. Finally, it briefly describes the structure of Linux systems including the kernel, user space, and popular desktop environments.
This document provides an overview of an introductory course on Linux for embedded systems using the Raspberry Pi. The course is taught by Ahmed ElArabawy and will cover basic concepts of embedded systems through hands-on projects with the Raspberry Pi. Students will learn about interfaces like GPIO, I2C, SPI and programming languages like Python and C through building simple projects connecting sensors and motors. The course aims to provide students with practical skills in embedded development that can be applied to other platforms beyond the Raspberry Pi.
This lecture addresses the internals of Linux processes, and its life cycle. This includes its creation, termination, and state transitions during its existence. It also addresses the difference between processes and threads in Linux
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture is an overview for the topics that will be covered in the course along with some course logistics
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different techniques used to install, uninstall and upgrade software packages in Linux and the associated tools
Video for this lecture on youtube:
http://www.youtube.com/watch?v=pFqdupd9wKk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)Ahmed El-Arabawy
The document discusses Linux toolchains used for embedded systems development. It describes the main components of the GNU toolchain including gcc (compiler), ld (linker), ar (library archiver) and other tools. It explains the compilation process from source code to executable, use of static and dynamic libraries, and how the dynamic linker locates libraries at runtime. Commands for building, linking and debugging programs are also covered.
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
This lecture goes through the different types of Filesystems and some commands that are used with filesystems. It introduces the filesystems ext2/3/4 , JFFS2, cramfs, ramfs, tmpfs, and NFS.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=XPtPsc6uaKY
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Linux celebrated its 25th birthday on August 25, 2015. The document discusses the history and basics of Linux, including:
- Linux was created in 1991 by Linus Torvalds as an open-source kernel based on UNIX.
- It discusses Linux security models and permissions. Files have owners, groups, and permissions to control access.
- It provides an overview of basic Linux commands for starting the X server, changing passwords, editing text files, running commands and getting help.
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs Sam Bowne
The document discusses various application programming interfaces (APIs) and techniques used by malicious programs on Windows systems. It describes the Windows API and common data types. It also covers lower-level APIs like the Native API, and how malware authors leverage APIs, dynamic link libraries (DLLs), processes, threads, mutexes, services, and other techniques to interact with the operating system and maintain persistence. The document provides technical details to help analysts understand how malware functions on Windows.
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S17.shtml
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S18.shtml
This document provides an overview of TCP/IP concepts and networking fundamentals. It describes the four layers of the TCP/IP protocol stack - application, transport, internet and network. It explains key TCP and UDP concepts like ports, flags, and segments. It also covers IP addressing fundamentals like classes, subnetting, and planning address assignments. Binary, hexadecimal and base64 numbering systems are defined.
Buildroot is tool Which is useful for minimal linux distribution development.
For Embedded board other then PC(x86) ,like Rpi and Beagle one, Panda you can generate your own linux distribution.
OSI Model Layers and Internet Protocol StackShivam Mitra
1. Advantages of dividing a complex system into layers or modules
2. Taking example of airline system to explain advantage of layering
3. OSI model and Internet Protocol Stack
4. Functions of each layers in OSI model
The eBay-Way Meetup IL - CI/CD with Microservicesyinonavraham
Practices and lessons learned for improving your CI/CD pipelines, from the developer's local environment, through the CI server, and up to deployment to production.
CNIT 126 7: Analyzing Malicious Windows ProgramsSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_S17.shtml
This lecture discusses the concept of Multi-User support in Linux. It discusses how Linux protects user files and resources from other user unauthorized access. It also shows how to share resources and files among users, how to add/del users and groups.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_F18.shtml
This Presentation Speaks about Compiling Linux Kernel from source, How Device Drivers are implemented in Linux,Udev,Loading and Unloading of Kernel modules.
Shreyas MM
www.shreyasmm.com
This document provides an overview of using OllyDbg, an x86 debugger, to analyze malware. It discusses loading and debugging malware with OllyDbg, setting breakpoints, stepping through code, tracing execution, patching binaries, and analyzing shellcode. Recommended plugins include OllyDump for dumping processes and Hide Debugger to avoid debugger detection. Scriptable debugging can be done with the Immunity Debugger which supports Python scripts.
The document provides information about various components of an operating system including:
- The kernel acts as an interface between hardware and software, allocating resources and managing tasks.
- Operating systems support single/multi-user and single/multi-tasking capabilities.
- Linux is an open source, multi-user operating system based on the Unix kernel that is used widely today.
2.4 Optimizing your Visual COBOL ApplicationsMicro Focus
This document discusses various techniques for optimizing Visual COBOL applications, including locating bottlenecks, tuning file access and configuration, optimizing database access, and structuring applications for better performance. It provides information on profiling tools, guidelines for file handling configuration options like access permissions and indexing, recommendations for database drivers and OpenESQL directives, best practices for program structure and modularity, and tips for working with data types and arithmetic operations. The overall goal is helping developers create applications that perform efficiently through various optimization and tuning strategies.
Building Embedded Linux Systems IntroductionSherif Mousa
This document provides an introduction to embedded Linux. It defines embedded Linux as using the Linux kernel and customizing user-space libraries and utilities for applications in consumer electronics, military, medical, and other industries. Creating an embedded Linux system involves selecting the right components to build the final system. A cross-compiler is used to build code for the target platform on the host development machine. Key components of an embedded Linux system include the bootloader, Linux kernel, filesystem, configuration files, C library, commands, and user applications.
In this Lab, we go through the steps to prepare the Raspberry Pi board for the projects in the course. this includes selecting the OS and setting it up on the SD card, connecting the Pi, and booting it.
The Lab also goes through setting up the network interfaces (both wired and wireless) and remote connecting into the Pi
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APAhmed El-Arabawy
In this Lab, we go through the steps to build a WiFi Access Point using the Raspberry Pi. The Lab starts by introducing some concepts of Wireless LANs followed by step-by-step procedure to build the AP. The Lab concludes by an evaluation of the performance of the built AP
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)Ahmed El-Arabawy
The document discusses Linux toolchains used for embedded systems development. It describes the main components of the GNU toolchain including gcc (compiler), ld (linker), ar (library archiver) and other tools. It explains the compilation process from source code to executable, use of static and dynamic libraries, and how the dynamic linker locates libraries at runtime. Commands for building, linking and debugging programs are also covered.
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
This lecture goes through the different types of Filesystems and some commands that are used with filesystems. It introduces the filesystems ext2/3/4 , JFFS2, cramfs, ramfs, tmpfs, and NFS.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=XPtPsc6uaKY
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Linux celebrated its 25th birthday on August 25, 2015. The document discusses the history and basics of Linux, including:
- Linux was created in 1991 by Linus Torvalds as an open-source kernel based on UNIX.
- It discusses Linux security models and permissions. Files have owners, groups, and permissions to control access.
- It provides an overview of basic Linux commands for starting the X server, changing passwords, editing text files, running commands and getting help.
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs Sam Bowne
The document discusses various application programming interfaces (APIs) and techniques used by malicious programs on Windows systems. It describes the Windows API and common data types. It also covers lower-level APIs like the Native API, and how malware authors leverage APIs, dynamic link libraries (DLLs), processes, threads, mutexes, services, and other techniques to interact with the operating system and maintain persistence. The document provides technical details to help analysts understand how malware functions on Windows.
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S17.shtml
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S18.shtml
This document provides an overview of TCP/IP concepts and networking fundamentals. It describes the four layers of the TCP/IP protocol stack - application, transport, internet and network. It explains key TCP and UDP concepts like ports, flags, and segments. It also covers IP addressing fundamentals like classes, subnetting, and planning address assignments. Binary, hexadecimal and base64 numbering systems are defined.
Buildroot is tool Which is useful for minimal linux distribution development.
For Embedded board other then PC(x86) ,like Rpi and Beagle one, Panda you can generate your own linux distribution.
OSI Model Layers and Internet Protocol StackShivam Mitra
1. Advantages of dividing a complex system into layers or modules
2. Taking example of airline system to explain advantage of layering
3. OSI model and Internet Protocol Stack
4. Functions of each layers in OSI model
The eBay-Way Meetup IL - CI/CD with Microservicesyinonavraham
Practices and lessons learned for improving your CI/CD pipelines, from the developer's local environment, through the CI server, and up to deployment to production.
CNIT 126 7: Analyzing Malicious Windows ProgramsSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_S17.shtml
This lecture discusses the concept of Multi-User support in Linux. It discusses how Linux protects user files and resources from other user unauthorized access. It also shows how to share resources and files among users, how to add/del users and groups.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_F18.shtml
This Presentation Speaks about Compiling Linux Kernel from source, How Device Drivers are implemented in Linux,Udev,Loading and Unloading of Kernel modules.
Shreyas MM
www.shreyasmm.com
This document provides an overview of using OllyDbg, an x86 debugger, to analyze malware. It discusses loading and debugging malware with OllyDbg, setting breakpoints, stepping through code, tracing execution, patching binaries, and analyzing shellcode. Recommended plugins include OllyDump for dumping processes and Hide Debugger to avoid debugger detection. Scriptable debugging can be done with the Immunity Debugger which supports Python scripts.
The document provides information about various components of an operating system including:
- The kernel acts as an interface between hardware and software, allocating resources and managing tasks.
- Operating systems support single/multi-user and single/multi-tasking capabilities.
- Linux is an open source, multi-user operating system based on the Unix kernel that is used widely today.
2.4 Optimizing your Visual COBOL ApplicationsMicro Focus
This document discusses various techniques for optimizing Visual COBOL applications, including locating bottlenecks, tuning file access and configuration, optimizing database access, and structuring applications for better performance. It provides information on profiling tools, guidelines for file handling configuration options like access permissions and indexing, recommendations for database drivers and OpenESQL directives, best practices for program structure and modularity, and tips for working with data types and arithmetic operations. The overall goal is helping developers create applications that perform efficiently through various optimization and tuning strategies.
Building Embedded Linux Systems IntroductionSherif Mousa
This document provides an introduction to embedded Linux. It defines embedded Linux as using the Linux kernel and customizing user-space libraries and utilities for applications in consumer electronics, military, medical, and other industries. Creating an embedded Linux system involves selecting the right components to build the final system. A cross-compiler is used to build code for the target platform on the host development machine. Key components of an embedded Linux system include the bootloader, Linux kernel, filesystem, configuration files, C library, commands, and user applications.
In this Lab, we go through the steps to prepare the Raspberry Pi board for the projects in the course. this includes selecting the OS and setting it up on the SD card, connecting the Pi, and booting it.
The Lab also goes through setting up the network interfaces (both wired and wireless) and remote connecting into the Pi
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APAhmed El-Arabawy
In this Lab, we go through the steps to build a WiFi Access Point using the Raspberry Pi. The Lab starts by introducing some concepts of Wireless LANs followed by step-by-step procedure to build the AP. The Lab concludes by an evaluation of the performance of the built AP
Embedded Systems: Lecture 4: Selecting the Proper RTOSAhmed El-Arabawy
This lecture describes the different properties of Embedded Systems Operating Systems that would affect the selection of the most appropriate RTOS in an embedded system application
This lecture is the second part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the Git Object Model and Some Git Commands to perform basic operations
This lecture Introduces how Linux Handles Input and Output of its processes. It discusses the TTY/PTY devices and different types of terminals (Physical Terminal, Virtual Terminals, and Emulated Terminals)
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of techniques to use commands output/Input to feed into other commands or into files. It also covers argument expansion and quoting
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the handling of files and file management commands by Linux Subsystems. It also covers creating both Hard Links and Symbolic Links
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=6YL1qjqcR9M
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 25: Devices and Device Drivers Ahmed El-Arabawy
This lecture discusses the concept of Linux device Drivers and Kernel Loadable Modules in general. It shows how to handle them such as loading/unloading ,and querying for their info. It also discusses the role of device files and how it binds to device drivers in the Linux Kernel
Video for this lecture on youtube:
http://www.youtube.com/watch?v=5qhgMyPyvVE
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture describes the virtual filesystems procfs and sysfs.
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=wlxL-iQN6No
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Ahmed El-Arabawy
Linux networking concepts allow machines to connect and communicate over a network. This includes identifying interfaces, IP addresses, subnet masks, default gateways, DNS servers, and network protocols like ARP and NAT. Networking is essential for tasks like accessing the internet, copying files remotely, and debugging embedded systems that typically lack local interfaces. Core networking commands like ifconfig, route, arp, and resolv.conf are used to configure and view network settings and operations.
Course 102: Lecture 10: Learning About the Shell Ahmed El-Arabawy
This lecture Introduces the shell program, its role, its functionality , and the categories of commands to run on it. It also discusses the different scripts executed at shell startup
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 101: Lecture 2: Introduction to Operating Systems Ahmed El-Arabawy
This lecture goes into an introduction to the role and functionality of operating systems in Embedded Systems and in computer systems in general
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture targets to install Ubuntu on a VM. It starts by describing some info about Virtualization Virtual Machines, followed by installation procedure. The lecture then goes through the UI of Ubuntu.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture provides an overview of the popular RTOS's in the Market along with their main features and common applications
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different Help Commands to get more details about Linux CLI Commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 3: Basic Concepts And Commands Ahmed El-Arabawy
This lecture covers the basic file management commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of Utilities and Commands that will be used in the following lectures and are very useful for CLI Users and Bash Script Programmers
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the use of wild cards in Linux commands, as well as escape sequences
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Git is an open source distributed version control system designed for speed and efficiency. It allows developers to work simultaneously and independently of an internet connection by keeping a local copy of the code repository. Changes are committed locally and then pushed to a remote repository to share work. Git uses branches to isolate work, enabling features to be developed separately from the main code without disrupting the primary version. This makes it possible for hotfixes to be applied without affecting ongoing work.
Git is a version control system that allows users to track changes to files over time. It works by taking snapshots of files that are committed, with each commit having a unique hash ID. GitHub is a hosting service for git repositories that provides additional collaboration features on top of git. It allows users to host projects online and collaborate with others through features like pull requests.
Git is a distributed version control system that was created by Linus Torvalds in 2005 to manage the Linux kernel source code. It allows developers to work simultaneously and maintain a complete history of their work. Git uses a distributed model where every developer has a full copy of the code repository, enabling them to work offline and collaborate asynchronously by integrating changes from any repository. Developers commit changes to their local repository and synchronize changes by pushing to or pulling from remote repositories.
Git is a free and open source distributed version control system designed by Linus Torvalds in 2005 to handle everything from small to large projects with speed and efficiency. It allows for tracking changes to code, collaborative work, and reverting to previous versions of code. GitHub is a site for hosting Git repositories online that adds features like documentation, bug tracking, and code review via pull requests. Common Git commands include git init to initialize a repository, git add to stage changes, git commit to save changes to the project history, and git push to upload changes to a remote repository.
GIT Details for people who:
* don't know what version control means
* don't know what distributed version control means
* Used to work on SVN (Subversion)
In one of our weekly training, we’ve talked about Git. Here is a quick overview of the main concepts, basic commands and branching strategy, how to work with Git, how to contribute to an OSS project, …
Git is a version control system that tracks changes to files and allows multiple versions of files to exist. It is installed locally on a user's computer and tracks changes made to files. GitHub is a cloud-based hosting service that allows users to host Git repositories remotely and provides a web interface to view repositories. By pushing repositories to GitHub, users can easily share codebases with teams and create an online portfolio of their work.
This document provides an introduction and overview of Git. It begins with a brief history of Git's origins with Linux source code management. It then covers key Git concepts like its distributed version control model, advantages like speed and resilience, and some basic commands. The document demonstrates setting up a sample Git repository and making commits. It also discusses branching, tagging, undoing changes, cleaning up repositories, and using remote repositories.
Git is a version control system that allows developers to track changes to files over time. It is distributed, meaning developers have their own local copy of the code repository. This allows working offline and merging changes. Common Git commands include git add to stage changes, git commit to save changes locally, and git push to upload changes to the remote repository. Tagging specific versions with git tag allows easy deployment of code.
CSE 390 Lecture 9 - Version Control with GITPouriaQashqai1
Version control systems like Git allow developers to track changes to files over time. Git stores snapshots of files in a local repository and remote repositories can be used for collaboration. The basic Git workflow involves modifying files, staging changed files, and committing snapshots of the staged files to the local repository. Status and diff commands allow viewing changes between the working directory, staging area, and repository. Good commit messages are important for documenting changes over time.
O365Con18 - Git and GitHub - Rick van RousseltNCCOMMS
Git is a distributed version control system created in 2005 by Linus Torvalds to aid in Linux kernel development. It allows users to have a full version of code and history on their local machine. Changes can be shared through a central server but it is not required. Key concepts include snapshots that record file states over time and commits that create snapshots containing change information and references to previous commits. Repositories are collections of files, history, and commits that can be copied from remote servers when cloning. GitHub is a large hosting service for Git repositories that facilitates collaboration through features like pull requests and issues tracking.
One of the biggest advantages of Git is its branching capabilities. Unlike centralized version control systems, Git branches are cheap and easy to merge. This facilitates the feature branch workflow popular with many Git users.
Quick and easy way to get started with Git & GitHubAshoka R K T
(This is a session planned to be taken in Coimbatore .Net User Group(dotnetcbe.com) on sunday 13-oct-2013)
In this session I will talk about the simplest and quickest set of steps needed for getting started in Git & GitHub.
- I will talk a little about the concepts of Git & GitHub
- How to use “GitHub for Windows” and setup a GitHub based distributed source control system
- How Open Source projects on GitHub works
This document provides an overview of Git and GitHub. It explains that Git is a version control system that allows users to track changes to files and code over time. GitHub is a web-based hosting service for Git repositories that adds additional features like documentation and issue tracking. The document outlines key Git concepts like commits, branches, pulling and pushing changes. It provides a quick example workflow of creating a GitHub account, making a repository, cloning it locally, making commits, and pushing changes.
Git is a distributed version control system that allows developers to work together and track changes to code over time. It keeps track of changes by taking snapshots of the project that create unique IDs for each change. Developers can have their own copy of a repository and commit changes locally before pushing them to a remote server for others to access. This allows for non-linear development with features like branching and merging. GitHub is a popular site for hosting Git repositories online, but Git can also be used locally or with self-hosted servers.
Git provide Distributed version control. Who is the user? Anyone want to truck hi note. Review history log changes. View difference between two versions.
Git is a version control system created by Linus Torvalds in 2005 to manage the Linux kernel source code. It is a distributed system where each user has their own local repository that can be synced with remote repositories. The basic Git workflow involves modifying files locally, staging them, and committing snapshots of the staged files to the local repository. Git tracks changes at a file level and uses SHA-1 hashes to identify commits rather than sequential version numbers.
Course 102: Lecture 26: FileSystems in Linux (Part 1) Ahmed El-Arabawy
This lecture introduces some concepts about FileSystems in Linux.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=9jj1QOokACo
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 24: Archiving and Compression of Files Ahmed El-Arabawy
This lecture discusses the different commands and utilities used for archiving and compression of files and directories in Linux
Video for this lecture on youtube:
http://www.youtube.com/watch?v=R6ZQ6PJyy28
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the Use of Signals by the Linux Kernel, and the process behavior upon receiving signals. The popular signals are outlined
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This document discusses process monitoring in Linux systems. It describes various commands and attributes used to monitor and view information about running processes. Some key points:
- The ps command displays information about running processes and has many options to define the scope and format of the output.
- The top command provides a dynamic real-time view of process resource usage, including CPU usage and memory usage.
- Process attributes that can be viewed include the process ID, parent process ID, user IDs, priority levels set by the nice value, and more.
- Additional commands are described that provide system information like uptime, load averages, memory and swap usage.
Course 102: Lecture 16: Process Management (Part 2) Ahmed El-Arabawy
This lecture continues to introduce concepts about processes in Linux. It describes both Automatic processes and Daemon Processes.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the concept of Regular Expressions along with its usage in different tools such as grep, sed, and awk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This document provides an overview of basic text handling in Linux, including displaying, merging, creating, editing, sorting, searching, comparing, and patching text files. It discusses commands like cat, more, less, head, tail, grep, sort, uniq, wc, diff, and patch. The diff command is used to compare files and generate patch files, while patch applies patches to update files. Formats for diff output include normal, context, and unified, and patch can be used to update both single files and directory trees.
This lecture discusses the Environment Variables concept, usage, and how processes acquire them. It then goes through the most popular ones
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
4. Life before SVC
• We only have the latest snapshot of the code, we don’t know
when a certain feature was added, and who added it….
• What if we don’t want this feature anymore?
• What if we want to maintain the code with and without this feature?
• When was this code modification done, who did it? And what other
modifications need to come with it ?
• We can not revert to the old version of the code, once we added
some change, we can not bring back an old version
• What if the new change caused a problem, and we want to use the
older version ?
• Team collaboration is very complicated
• What if multiple people want to modify the same file at the same
time?
• What if we want to work on different features at the same time?
5. Now…SVC is in Town
• Version Control provides,
• A means to backup different snapshots of the code in case
somebody introduced code that caused problems
• Compare changes between different releases
• Enables team collaboration
• Enables working on multiple issues separately
• Enables maintaining older releases and fixing issues, while
working on new features in the new release, and later migrate
the bug fixes
• Protect the code no matter what happened from users, loss of
data, corrupted drives, malicious handling,…etc
7. SVC Types: Local SVC
• For local use, manually copy old files in a backup folder
• Error prone
• Easy to corrupt data, and overwrite files
• Not suitable for team collaboration
• Takes big disk space
• Only a limited number of snapshots available
• An automated tool to do local SVC is “rcs”
• It keeps record of the patches between the different revisions for
future reference
• However, we still have the problems,
• Does not facilitate team collaboration
• Everything on one computer, a single point of failure
10. SVC Types: Centralized SVC
• The history info is stored in a central server (called the depot, or the
repositories)
• User computers (clients) only checks out a snap-shot from the server
• This setup provides,
• Protection from loss of data upon client data corruption
• Team collaboration
• However, some limitations exist,
• Slow, any file update operation require network access
• Dependency on the connection to the server (can not work when offline)
• The central server becomes a single point of failure
• User can not do his own mini-projects without writing to the central drive
• Examples are,
• CVS
• Subversion (SVN)
• Perforce
12. SVC Types: Distributed SVC
• Each client have the full repo and not just a snapshot of the
files
• No single point of failure, the repo on the client can replace the
one in the server (with minimum loss) in case of a failure in the
server
• Users can perform their work while offline
• Faster response since a lot of the operations are done locally
• Enable distributed (clustered/hierarchical) development which is
useful in huge projects
• Examples are,
• Git
• Mercurial
• Bazaar
14. History of Git
• Git is created by Linus Torvalds, the creator of Linux
• It was developed initially to manage the Linux development
community
• Linux code has been managed,
• 1991-2002: Using an archive of patches
• 2002-2005: Using BitKeeper
• 2005-Now: Using Git
• Target was,
• Speed
• Simple design
• Fully distributed
• Strong support for non-linear development (thousands of parallel
branches)
• Able to handle large projects like the Linux kernel efficiently
17. Git Repo
• A repo is a directory structure that holds all the project history and
events
• The directory name is “.git”
• Git relies on having the full repo local to the user, so the user will
need to copy it over from the server the first time (cloning the
server)
• Then it performs all operations on the local repo (commit)
• When desired, the user can synchronize its repo with the server
repo
• User can push his own changes to the server repo
• User can pull other users changes from the server repo
• The local Git repo is a complete, self contained, independent full
fledged repo
• On top the of the repo (the .git directory), the user will have a
snapshot of the code (working copy)
• User can check out from his local repo the version to work on. This
does not need connection to the server
18. Most Operations are local
• Each user will have his own repository, and he will use Git
tools to do all his work on this repo
• This is different from other tools like SVN where the repo is
centralized in a server, and clients just own a code snapshot
• Git repo on the client is almost a full replica for the one in the
server
• This makes Git very fast, and almost fully operational when
working offline
• This also enables users to build independent teams that work
together and synch their repos together without needing to
connect to the server
21. Git File Integrity
• Each content or object stored in Git repo is goes through SHA1
hashing and the checksum is stored
• The checksum is 40 digits hex string, it is used as an id for the
content/object in the git repo
• Accordingly, any data corruption is detected immediately
(mismatch between the file contents and its SHA1 hash)
22. Repo, Working Directory & Index
• There are three areas in Git,
• Repo (.git directory):
• Contains the history of all file modification
• Working directory (Directory containing the .git )
• Contains the snap shot of files that we are working with
• Index (also called staging area)
• Contains the files that is “staged”, i.e. prepared to be committed to the repo
23. Main Operations in Git
• The main operations in Git are,
• Initialize a Git repo
• Clone a remote Git repo
• Checkout a code snapshot from Git
• Stage a group of files
• Commit a group of files
• Tag a code snapshot
• Pull changes from a remote machine
• Push local changes to a remote machine
• Branch
• Merge two branches
24. Initializing a Git Repo
• This is the first operation to be done to create a Git repo locally
• Assuming you have a group of files that you want to start tracking with
Git
• All you need to do is to go to the top directory of your code
• Then you need to issue the command,
$ git init
• That creates an empty repo, which is a directory named .git in this
directory
• This repo will carry the history of your project
• Any future commands in Git will make changes in this repo
25. Clone a Remote Repo
• Cloning a Git repo means replicating a copy of the full repo at
the local machine
$ git clone <remote project location>
• This means the local machine will have the full history of the
project (the same as the remote machine)
• Normally, clone also checks out the latest from the repo to
prepare the working directory
26. Checkout a Code Snapshot
• We can take a snapshot of the code from the repo into the
working directory
$ git checkout
• The snapshot can be the latest code or any point in the history
of the code
27. Staging Files
• Staging files means prepare these files to be submitted to the repo with
the new modifications
• Files can be added to the staging area (index)
• The first time (to start tracking the files through Git)
• Subsequent times (to submit the new changes in the files to the repo)
• To stage a file
$ git add <file>
28. Committing Files
• Committing a file means submitting the new modifications in
the file to be tracked by Git
• This means the new snapshot of the file is stored in the repo
$ git commit
29. Tagging a Code Snapshot
• Tagging a code snapshot means putting a label for this
snapshot
• This enables us to deal with this snapshot in the future (such
as checking it out, or comparing it to another code snapshot)
30. Pulling and Pushing
• Pulling means bringing updates in the remote machine repo to
the local machine
• Pushing means sending the updates in the local machine repo
to the remote machine
31. Branching
• Branching means maintaining the history of multiple copies of the
code at the same time
• This is useful when working on multiple features at the same time
• Initially, Git provides a single branch named the master branch
• When checking out code from the repo, you will need to specify
which branch you want to check out
32. Merging Branches
• Merging means joining 2 branches into a single branch
• This means merging the changes that was done in both branches in one
code snapshot
• Merging can be simple when each branch modifies different part of the
code
• But it can also be complicated and require manual intervention if the
same parts of the code has been modified in the different branches
33. Files in Git
• When we create a new file in the working directory, it is called “Untracked”
cause the repo does not know anything about it and Git is not tracking changes
into it
• Once the file is committed once to the repo, now it is “tracked”, which means
Git will build a history for it in the repo
• If we modify a tracked file in the working directory, the file is called “unstaged”
cause we did not prepare to commit the changes to the repo yet
• First step to commit the changes is to “stage” the file, i.e. copy it to the index
(staging area). Now the file is called “staged”
• Now a staged file can be committed to the repo
• This means a file is :
• Untracked: It was never committed to the repo, this file is not maintained by Git
• Unstaged: A file that is tracked, but it has modifications and not yet staged (copied
to the index)
• Staged: It is a file that was copied to the staging area (index) in preparation to
commit it to the repo (either for the first time, or because it contains
modifications) but not yet committed
• Committed: A file that is not modified from the version in the repo
37. Installation
• Git mainly runs on Linux (but runs on other OSs as well)
• To install Git,
$ sudo apt-get install git-core
• Git Commands
$ git <command> <arguments>
• To know what version is running
$ git version
• To get help
$git help
$git help <command>
38. First Time Git Setup
• As we first use Git, we need to,
• Identify user identity (name and email); this will be needed for
commits in the future
• Identify which editor to use
• Identify which diff tool to use
• These configurations can be configured for,
• Any user on the machine, by writing it in /etc/gitconfig
• Any project for a specific user on the machine; by writing it in
~/.gitconfig
• For a specific project; by writing it in <project dir>/.git/config
39. Definingthe Author/CommitterIdentities
• Git stores for each commit the,
• Author name/email
• Committer name/email
• Git collects those contact info from (in order)
• User can specify the author name/email in the commit command
$git commit -a --author “Ahmed ElArabawy <[email protected]>”
• User can specify the environment variables,
• GIT_AUTHOR_NAME
• GIT_AUTHOR_EMAIL
• GIT_COMMITTER_NAME
• GIT_COMMITTER_EMAIL
• User can configure the author/committer info on the
machine/user/project using “git config” command
• Git will collect the info from the EMAIL environment variable
• Git will collect the info from other places by querying the kernel
40. Configuring User Identities
(git config Command)
• The file can be configured manually or via the commands
$git config --global user.name “Ahmed ElArabawy”
$git config --global user.email “[email protected]”
• The use of --global makes the configuration in ~/.gitconfig
• If --global is replaced by --system, configuration will apply on
the whole machine, and stored in /etc/gitconfig
• If --global is not used, the configuration applies only to the
project in hand, and it is written in ./.git/config
41. Configuring the Editor/Diff tool
• By default, Git will be using the default editor ($EDITOR)
• This can be customized by,
$ git config --global core.editor vim
• The same applies for the diff tool
$ git config --global merge.tool kdiff3
Note that the following diff tools are acceptable:
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
opendiff
• Note that “--global“ can be replaced by “--system“ or
completely removed as discussed earlier
42. Checking the saved Settings
• This can be done via browsing the configuration file directly
• Another way is to check the applicable settings on a specific
project,
$ git config --list
• Git will display all settings in all the files, and hence the same key
may show up multiple times, git will be using the last value
• To check for a specific key
$ git config <key>
$git config user.name