This document provides an introduction to Git and version control systems. It begins with a poll asking about experience with Git, SVN, and git rebase. It then discusses key Git concepts like distributed version control, the working/staging area, and how Git works. It covers the different types of version control systems and compares centralized and distributed models. The document dives deeper into Git objects like blobs, trees, commits and references. It also distinguishes between low-level plumbing commands and higher-level porcelain commands.
Deep dark-side of git: How git works internallySeongJae Park
Describe how git works internally using small and perfect plumbing commands.
The slide have been used at GDG DevFest 2014 and SOSCON 2014.
The slide can be updated later. And, the latest version would always be provided from this page always.
A Git tutorial for rookies that covers most aspects of basic Git usage for a medium sized project.
This was originally a semestral lecture given at the TU Wien for the course "Software Engineering and Project Management"
Advanced Git: A talk on the finer parts of Git.
Covering basic to somewhat advanced Git usage for development tasks. Goes into some detail on some parts of Git that may confuse many
Deep dark-side of git: How git works internallySeongJae Park
Describe how git works internally using small and perfect plumbing commands.
The slide have been used at GDG DevFest 2014 and SOSCON 2014.
The slide can be updated later. And, the latest version would always be provided from this page always.
A Git tutorial for rookies that covers most aspects of basic Git usage for a medium sized project.
This was originally a semestral lecture given at the TU Wien for the course "Software Engineering and Project Management"
Advanced Git: A talk on the finer parts of Git.
Covering basic to somewhat advanced Git usage for development tasks. Goes into some detail on some parts of Git that may confuse many
Through this tutorial, you can learn Git & GitHub fundamentals very easily. I have explained both theory and practical. I hope you will enjoy it. Happy Git.!!
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.
Through this tutorial, you can learn Git & GitHub fundamentals very easily. I have explained both theory and practical. I hope you will enjoy it. Happy Git.!!
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.
PT.BUZOO INDONESIA is No1 Japanese offshore development company in Indonesia.
We are professional of web solution and smartphone apps. We can support Japanese, English and Indonesia.
We are hiring now at http://buzoo.co.id/
Slicing Up the Mobile Services Revenue PieSam Gellar
- In terms of mobile revenues, the worldwide mobile market stood at 718.4 billion at end-2006. It is expected to increase at a strong rate and reach 1,094.9 by end-2012.
- Advanced and emerging countries have different arrangements for sharing revenue generated from premium SMS services. In developed countries, content owners and
aggregators get a higher share than their counterparts in developing countries. In most of the emerging markets, the operators share is quite high (sometimes as high as 60 percent), as is the case in India and the Philippines. However, there are a few exceptions. In China, operators get only 20-30 percent of the total revenue through premium SMS services, while aggregators and content owners share the remainder.
- The worldwide mobile handset market is experiencing tremendous growth. It is estimated that
approximately 1,144 million handsets were shipped to customers worldwide in FY-2007, and the market is expected to be worth USD 166.1 billion. In 2006, the number of handsets sold worldwide exceeded 990 million. This number is expected to grow at a CAGR of just over
10.8 percent from 2006 to 2011.
- The revenue sharing arrangement in advanced markets such as the US and the UK is in favour of content providers. However, in emerging markets, such as
India, operators account for a larger share.
핑그래프(Fingra.ph)를 통해 모바일 광고에 대한 광고 효과 분석을 통해 광고주에게 보다 효율적인 광고 서비스를 제공할 수 있습니다. 핑그래프는 노출, 클릭, 다운로드 뿐만 아니라 사용자, 실행회수 등을 활용한 "광고 분석 장치 및 방법"에 대한 특허를 보유하고 있습니다.
GIT: Content-addressable filesystem and Version Control SystemTommaso Visconti
Git presentation, internals, advanced use and workflow examples.
Presentation by Tommaso Visconti http://www.tommyblue.it for DrWolf srl http://www.drwolf.it
Git is a distributed version control system that is used for software development, and allows many software developers to work on a given project without requiring them to share a common network.
This presentation helps you to know what is Git, how it works, and how you can use it.
Git is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.
Git is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Git's goals include speed, data integrity, and support for distributed, non-linear workflows
Design Systems are most successful when they have a solid process in place to manage, maintain, and share component code across multiple teams and codebases. The best way to achieve this is to manage code using a version control system like Git. Git is the defacto industry standard tool for storing and editing code for a reason - it's powerful, scalable, flexible... but can be confusing or intimidating, whether you're a newbie or you use it every day!
In this workshop, Katie Sylor-Miller, the creator of OhShitGit.com, and co-author of The Design Systems Handbook, will teach you all you need to know to use Git as a tool for managing your Design System code.
We'll walk through everything you need to know to create, contribute to, maintain, and share your design system code as a standalone repo in Git. We'll go over how the fundamental structures in Git and how it all works under the hood. We'll create our own repos and get comfortable running common git commands in the terminal. We'll learn about best practices, workflows, and tools that will keep your commits in order and reduce the panic caused by merge conflicts. And, we'll cover some cool features in the Github UI to help you document, manage, and share your Design System code.
Git is a distributed revision control system that is widely used in the software development industry. The presentation was used in a lecture delivered in BITS-Pilani, India. The lecture served as a basic crash course on Git.
First, it sets off with a guide to install and configure git on various platforms.
Then, the basic working concepts of Git are explained.
This is followed by a detailed step-by-step guided demonstration of a sample workflow in Git.
Afterwards, Some auxillary commands that are frequently used are discussed briefly.
Finally, basic concepts of branching and merging are detailed.
The presentation ends with a few possible merge conflicts that occur in Git.
The Basics of Open Source Collaboration With Git and GitHubBigBlueHat
A revised/minimized version of Nick Quaranto's (http://www.slideshare.net/qrush ) presentation on the same topic. This revised version was used to present Git to a group of students at ECPI who were not yet familiar with the concepts of version control or Git.
Similar to Git: An introduction of plumbing and porcelain commands (20)
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
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
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.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
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.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
9. Version Control System
• storing content
• tracking changes to the content
• distributing the content
• keep accurate yet human-readable history
10. VCS: Types and choices
• No remote repository
• Central repository
• Distributed (with remote) repository
11. Brutal Force VCS
• Been there, done that.
• Really not very informative
• Which version to use?
essay.doc
essay_2.doc
essay3.doc
essay_final.doc
essay_final2.doc
eassay_final3.doc
esassy_finalfinal.doc
esassy_finalfinal2.doc
13. VCS Design
Centralized model
all changes to the repository must transact via one
specific repository for it to be recorded in history at all.
Distributed model
where there will often be publicly accessible repositories
for collaborators to "push" to, but commits can be made
locally and pushed to these public nodes later, allowing
offline work.
17. Distributed VCS
• distributed workflows
• safeguard against data corruption
• (reasonably) high performance
• collaborators could work offline
• collaborators could determine when their work are
ready to share
19. Git Commands: Plumbing and Porcelain
plumbing
plumbing consists of low-level commands that enable
basic content tracking and the manipulation of directed
acyclic graphs (DAG)
porcelain
smaller subset of git commands that most Git end users
are likely to need to use for maintaining repositories and
communicating between repositories for collaboration
21. High Level Commands (Porcelain)
commit/push/pull/merge/…
• meant to be readable by human
• not meant to be parsed
• susceptible to changes/evolutions
22. Describing Changeset with Hash Value
Pros
• Same content never duplicate
Cons
• Managing multiple files?
• Managing history?
• Hard to understand hash values
24. Git Vernaculars
blob
stores file content.
tree
stores directory layouts and filenames.
commit
stores commit info and forms the Git commit graph.
tag
stores annotated tag
25. Git: A Quick Glance
• Content address-able database
• Key is SHA-1 hash of object’s content
• Value is the content
• Same content never duplicate
26. Setup
$ git init demo; cd demo
Initialized empty Git repository in demo/.git/
# monitoring .git folder
# if you are using bash, then…
$ while :; do tree .git; sleep 2; done
42. commit Object
• contains metadata about its ancestors
• can have zero or many (theoretically unlimited) parent commits
• initial commit has no parent
• three-way merge commit has three parents
48. HEAD/head in Git
• HEAD is symbolic references. It points to another
reference
• use ref, not SHA-1
$ cat .git/HEAD
ref: refs/heads/master
$ git branch
* master
71. $ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: index.html
no changes added to commit (use "git add" and/or "git commit -a")
Basic Merge Conflicts
72. <<<<<<< HEAD
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> some-remote-branch
<<<<<<< HEAD
(local) HEAD content is here
=======
some-remote-branch content is here
>>>>>>> some-remote-branch
Basic Merge Conflicts
73. $ git mergetool
This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more
details.
'git mergetool' will now attempt to use one of the following tools:
opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse
diffmerge ecmerge p4merge araxis bc3 codecompare vimdiff emerge
Merging:
index.html
Normal merge conflict for 'index.html':
{local}: modified file
{remote}: modified file
Hit return to start merge resolution tool (opendiff):
Basic Merge Conflicts
83. • replays commits
• moves commits
• changes commit history
• changes commit parent/ancestor
rebase
84. Branches in Git
• just like parallel universes
• nothing more than references to
commit
85. # list local branches
$ git branch
# list local and remote branches
$ git branch -a
# show branches with reference
$ git branch -v
# show branch tracking info
$ git branch -vv
List all Branches
86. $ git remote -vv
$ git remote set-url http://example.com/foo.git
$ git remote add staging git://git.kernel.org/.../gregkh/staging.git
# or just edit .git/info
Setting Tracking Info
87. Caret and Tilde
• caret(~n): depth-first n-th parent
commit
• tilde(^n): breadth-first n-th
parent commit
• See
$ git help rev-parse
Revision Selection
G H I J
/ /
D E F
| /
| / |
|/ |
B C
/
/
A
A = = A^0
B = A^ = A^1 = A~1
C = A^2 = A^2
D = A^^ = A^1^1 = A~2
E = B^2 = A^^2
F = B^3 = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2 = B^^2 = A^^^2 = A~2^2
I = F^ = B^3^ = A^^3^
J = F^2 = B^3^2 = A^^3^2
88. push.default
nothing
do not push anything (error out) unless a refspec is explicitly given. This is primarily meant for people
who want to avoid mistakes by always being explicit.
current
push the current branch to update a branch with the same name on the receiving end. Works in both
central and non-central workflows.
upstream
push the current branch back to the branch whose changes are usually integrated into the current
branch (which is called @{upstream}). This mode only makes sense if you are pushing to the same
repository you would normally pull from (i.e. central workflow).
simple
in centralized workflow, work like upstream with an added safety to refuse to push if the upstream
branch's name is different from the local one. When pushing to a remote that is different from the
remote you normally pull from, work as current.
This is the safest option and is suited for beginners.
113. Recover Deleted Branch
$ git branch -d test-branch
Deleted branch test-branch (was 1fa215b).
$ git checkout 1fa215b
HEAD is now at 1fa215b... test commit
$ git co -b test-branch
• Do it before garbage collection
114. Reset Indices
$ git reset --soft
Does not touch the index file or the working tree at all (but resets the head
to <commit>, just like all modes do). This leaves all your changed files
"Changes to be committed", as git status would put it.
$ git reset --mixed
Resets the index but not the working tree (i.e., the changed files are
preserved but not marked for commit) and reports what has not been
updated.
This is the default action.
$ git reset --hard
Resets the index and working tree. Any changes to tracked files in the
working tree since <commit> are discarded.
115. Diagnose Problems
$ git reflog
1fa215b HEAD@{0}: checkout: moving from 1fa215b to test-branch
1fa215b HEAD@{1}: checkout: moving from master to 1fa215b
ded15c0 HEAD@{2}:
…
117. Put git-[command] in your $PATH
# show differences between two branches, group by commit
$ git peach
ded15c0 another test commit (2 days ago) <Jingwei "John" Liu>
test.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
118. Put git-[command] in your $PATH (cont)
#!/usr/bin/env bash
# Author: Jingwei Liu <liujingwei02@meituan.com>
# Last Modified: Mar 26 2014 05:52:42 PM
set -e
# show changed files in git cherry
if [[ -n $1 ]]; then
if [[ $1 =~ ^[0-9]*$ ]] ; then
upstream="HEAD~$1"
else
upstream=$1
fi
else
upstream="master"
fi
git cherry $upstream | awk '{print $2}' | xargs git show --stat --
pretty=format:'%Cred%h%Creset %Creset %s %Cgreen(%cr) %C(bold blue)<
%an>%Creset'
120. References
• git-scm.com
• gitready.com
• ProGit
• Deep Darkside of Git (source of a large portion of slides)
• Just use it, and read git help [command]
http://xkcd.com/1296/