This document provides an introduction to version control systems and Git/GitHub. It defines key terminology like centralized and distributed version control systems. It explains what Git and GitHub are and how they work. The document outlines the basic Git workflow and commands for initializing a repository, tracking changes, branching and merging, and more. It also discusses how features like stashing can help manage changes in Git.
By far, the most widely used modern version control system in the world today is Git. Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel. A staggering number of software projects rely on Git for version control, including commercial projects as well as open source. Developers who have worked with Git are well represented in the pool of available software development talent and it works well on a wide range of operating systems and IDEs (Integrated Development Environments).
https://www.atlassian.com/git/
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.
By far, the most widely used modern version control system in the world today is Git. Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel. A staggering number of software projects rely on Git for version control, including commercial projects as well as open source. Developers who have worked with Git are well represented in the pool of available software development talent and it works well on a wide range of operating systems and IDEs (Integrated Development Environments).
https://www.atlassian.com/git/
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.
A Beginner's Guide to Git and GitHub, CLI version.
What is Git?
What is Github
Basic commands
Difference between Central and Distributed Version Controlling System
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumAbhijitNarayan2
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. This will be a beginner friendly session where we will explain to you how Git and Github works and how to use it for your future projects as well!
This slide discusses the most popular distributed version control system that is GIT and it's different commands that we need in our daily operations for project collaboration.
Introduction To Git For Version Control Architecture And Common Commands Comp...SlideTeam
Introduction To Git For Version Control Architecture And Common Commands Complete Deck is an impact virtual tool. Employ our PowerPoint presentation to acquaint your audience with the version management system. This PPT slideshow is ideal to effectively elucidate GIT version control software through the visual aid of industry-best diagrams. Elaborate on the need for GIT by your organization. Consolidate the advantages of the GIT distributed version control application using our PowerPoint layout. Data visualizations featured in this PPT template deck facilitate a better explanation of the GIT architecture. You can also convey the features of this distributed revision control tool. Compile the common commands used in GIT with appreciable ease. Present vital information about the revision control system such as working with remote repositories by the means of our PowerPoint format. This is a must-have virtual solution, especially for upper and mid-level management. So, hit the download icon now and instantly start building an impressive presentation. https://bit.ly/3nMK6c4
In this slide, I have a fully explanation about what is Git and why use it. I also give a fully explanation about the basic command that mostly use with git.
A Beginner's Guide to Git and GitHub, CLI version.
What is Git?
What is Github
Basic commands
Difference between Central and Distributed Version Controlling System
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumAbhijitNarayan2
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. This will be a beginner friendly session where we will explain to you how Git and Github works and how to use it for your future projects as well!
This slide discusses the most popular distributed version control system that is GIT and it's different commands that we need in our daily operations for project collaboration.
Introduction To Git For Version Control Architecture And Common Commands Comp...SlideTeam
Introduction To Git For Version Control Architecture And Common Commands Complete Deck is an impact virtual tool. Employ our PowerPoint presentation to acquaint your audience with the version management system. This PPT slideshow is ideal to effectively elucidate GIT version control software through the visual aid of industry-best diagrams. Elaborate on the need for GIT by your organization. Consolidate the advantages of the GIT distributed version control application using our PowerPoint layout. Data visualizations featured in this PPT template deck facilitate a better explanation of the GIT architecture. You can also convey the features of this distributed revision control tool. Compile the common commands used in GIT with appreciable ease. Present vital information about the revision control system such as working with remote repositories by the means of our PowerPoint format. This is a must-have virtual solution, especially for upper and mid-level management. So, hit the download icon now and instantly start building an impressive presentation. https://bit.ly/3nMK6c4
In this slide, I have a fully explanation about what is Git and why use it. I also give a fully explanation about the basic command that mostly use with git.
Git is an important part of daily programming (especially if you're working with a team) and is widely used in the software industry. Since there are many various commands you can use, mastering Git takes time. But some commands are used more frequently (some daily). So in this post, I will share and explain the most used Git commands that every developer should know. Note: To understand this PDF, you need to know the basics and advances of Git. https://www.9series.com/
a way to manage files and directories.
track changes over time.
recall previous versions.
source control is subset of VCS.
sharing on multiple computers
Types of vcs:
Local VCS
Centralized VCS
Distributed VCS
Features of git
commands in git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
The slide contains Git workflow, command line instructions to work with Git, examples of project management over GitHub.
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 Bash is a command line interface that allows you to interact with Git, a version control system that tracks changes in your code and lets you collaborate with other developers. Git Bash is based on a popular Unix shell called Bash, and it works on Windows operating systems. With Git Bash, you can create and manage Git repositories, stage and commit your code, push and pull from remote servers, create and merge branches, and much more. In this article, I will give you an introduction to Git Bash and show you how to use some basic commands. ¹²³
المصدر: محادثة مع Bing، 29/9/2023
(1) Git bash: Definition, commands, & getting started | Atlassian. https://www.atlassian.com/git/tutorials/git-bash.
(2) An introduction to Git: what it is, and how to use it - freeCodeCamp.org. https://www.freecodecamp.org/news/what-is-git-and-how-to-use-it-c341b049ae61/.
(3) Introduction to Git Bash: A Beginner's Guide to Using the Command Line .... https://marketsplash.com/tutorials/git/git-bash/.
(4) undefined. https://git-scm.com/book/en/v2/Getting-Started-Installing-Git.
GitHub is a web-based hosting service for version control using git. It is mostly used for computer code. It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its own features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
2. Terminology
CVCS / DVCS
What is GIT & what is GITHUB
Quick Start
Version control system
Branches
GIT basics
Comparison in GIT
Branching & Merging
GIT rebase
GIT stashing
3. Git Goals and Objectives
Repository contain: files, history, configuration managed by GIT
Working Directory / Repository
Tree stages of GIT (Working directory, Staging area /pro commit staging
area/,Commit /GIT repository - history/)
Remote repository (GITHUB)
Master branch
4. What you get from VERSION CONTROL SYSTEM
Save you from creating multiple backups of your files
Allow multiple people to work on the same time on file
Track changes & also who have made the changes
Easy to switch back to folder versions as and when requiered
Make you more productive
5. Version Control is the management of changes to documents, computer program,
large websites and other collection of information
- Centralized Version Control System (CVCS)
- Distributed Version Control System (DVCS)
6. - CVCS uses a central server to store all
files
- It works on a single repository to which
users can directly access a central server
- Central server can be local on remote
machine directly connected to each of
the programers workstation
7. - Centralized repozitory is not localy available
- Since everithing is centralized in any case of the central server getting crash or
corrupted will result in losing the entire data of project
8. - In DVCS every contributor has a local
copy or clone of the main repository
- The developer can update their local
repository with new data from the
central server by an operation called
“pull” and affect changes to the main
repository bu an operation called
“push” from their local repository
9. - All operations are very fast because the tool need to access the HDD only
- Committing new change-set can be done locally without manipulating the data on
the main repository
- If the central server get crashed at any point of the time, the data can be easily
recovered from anyone of the contributors local repositories
10. The most widely used modern version control system in the world today is Git. Git
is a mature, actively maintained open source project originally developed in 2005 by
Linus Torvalds, the famous creator of the Linux operating system kernel. A
staggering number of software projects rely on Git for version control, including
commercial projects as well as open source.
Design philosophy:
- Free and open source
- blazingly fast
- Distributed
- Data assurance
11. We’ve established that Git is a version control system, similar but better than the
many alternatives available. So, what makes GitHub so special? Git is a command-
line tool, but the centre around which all things involving Git revolve is the hub—
GitHub.com—where developers store their projects and network with like minded
people.
A repository (usually abbreviated to “repo”) is a location where all the files for a
particular project are stored. Each project has its own repo, and you can access it
with a unique URL.
12. - First step is to download GIT from the link below, it is available for all operation
systems:
https://git-scm.com/downloads
- GIT Basic start configuration
$ git config --global user.name “Your Name Here”
$ git config --global user.email “email@example.com”
$ git config --list (show all properties)
$git help <attribute> (example: $git help add)
13. Enter to the folder you want to use for the project and open terminal on it
$git init
Commiting first file
$ git status
$ git add file.txt | $ git add . (add all files you made changes on)
$ git commit –m “message with wich you want to commit the file”
$ git push origin master (explanation after)
If you want to see the changes from certain user
$ git log --author ”name”
15. Verify changes in GIT
$ git diff
Compare staged with repo in GIT
$git diff --staged
Delete file
$git rm file.txt
16. GIT – DVCS is a tool
GITHUB is
- Code hosting platform
- Central repository
- Repository hosting service
To create a central repository:
$ git pull origin master
$ git clone https://github.com/user/repo
$ git push origin master
17. - Branch in GIT is pointer to commit
- To create a new branch we use the following command:
$ git branch <branch_name>
$ git branch development
$ git checkout development (to switch branches)
$ git branch (to check in which branch you are)
18. - Get to the branch you want to merge the changes (for example from development
to master)
$ git checkout master
$ git merge development
$ git push origin master (sync with github)
19. $ git reset HEAD filename
(HEAD - alias for the current branch ex. $git reset master|development filename)
$ git reset HEAD~ filename
(HEAD~ last commit reverted | HEAD~5 delete the last 5 commits from the
history)
The prefered command for many cases is
$ git revert commit_id
You can coppy the commit_id from
$ git log
20. $ git reset HEAD filename
$ git checkout --filename
$git rm –rf directory
(r – recursive, f – force, all in the direcory)
$ git commit –m “message” | $ git push origin master
$ git mv filename new_filename
$ git mv filename new_dir_path
21. Command to verify last commit
$ git log
Get GIT abbrev commit hash
$ git log --abbrev --log
GIT oneline commit
$ git log --oneline --graph --decorate
Logs that have been executed last day or last 5 days
$ git log --since=“5 days ago”
$ git show commit_id
$ git help log
22. GIT alias is a short way to display a results from long command
In order to add an alias we need to add the alias at GIT global config
$ git config --global <shot_command> “long_command”
Example: $ git config global alias.history “log --all --graph --decorate --oneline”
or:
$ nano ~/gitconfig
24. Working directory and staging directory
$ git diff
$ git fiff filename
Compare working directory and repository
$ git diff HEAD (compare working directory with last commit)
$ git diff HEAD filename
Staging area and repository
$ git diff --staged HEAD
$ git diff --staged HEAD filename
Compare commits in GIT
$ git diff commit_it commit_it
$ git diff HEAD HEAD^ (compare last commit and the commit previews last head -
1)
25. Verify branch
$ git branch -a
Switch GIT branches
$ git checkout <branch_name>
Rename branch
$ git branch –m <old_name> <new_name>
Delete branch
$ git branch -d <branch_name>
(before delete branch switch to another)
Merge one branch to another
$ git merge <source>
Example (first move to master):
$ git merge development
26.
27. - GIT merge create a new “merge commit” in the development branch that ties
together the histories of both branches, giving you a branch structure that looks
like graph
- How this impact:
in this case development branch will have an extraneous merge commit
every time you need to incorporate upstream chanches. If master is very
active this can pollute your development branch history.
28. - As an alternative to merging you can rebase the development branch into master
branch
$ git chechout development_branch
$git rebase master
- This moves the entire development branch to begin on the top of the master
branch, efectively incorporating all of the new commits in the master. Instead of
using merge commit, re-base re-write the project history by creating brand new
commits for each commit in the original branch
- Benefits:
you get much cleanier project history, it also result in the perfectly linear
project history
29. What is GIT Stash?
- When you create a stash, you are saving uncommitted changes so that you can
work on other things without losing your changes.
Example: you are working on a function, but your boss want you to do something
immediately and you need to change branches and your code is not ready for
commit and you does not want to loose your work as well… so you stash
$ git stash save “message of what you were doing”
$ git stash list (list the changes made on stash with them id)
In order to work again on the stashed file:
$ git stash apply stash_id (example: stash@{1})
30. When you’re ready to finalize these saved changes, you have two options: apply or
pop.
- Apply will take the stashed changes, apply them to your working directory, and
keep the changes saved as a stash.
$ git stash apply stash@{0}
- Pop will do the exact same thing for the first two steps, but it will permanently
delete the stash.
$ git stash pop (will drag the very first stash on the stash list)
31. - Discard the stashed changes:
$ git stash drop stash@{0}
- Discard all stashed changes:
$ git stash clear