SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
Coworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with git
Collaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for git
Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
LOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, Antwerp
April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015
whoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoami
Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
• System administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.eu
• Git user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ years
• DevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believer
• Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004
• @roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie on irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/github
inuits.eu
Ops <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 Dev
• Infrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as Code
▶ SSSSSSSSSSSSSSSSSCM all the things
▶ MMMMMMMMMMMMMMMMMonitoring
▶ CCCCCCCCCCCCCCCCConfiguration
▶ AAAAAAAAAAAAAAAAApplication deployment
• Taking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software development
▶ UUUUUUUUUUUUUUUUUnderstanding
▶ MMMMMMMMMMMMMMMMMonitoring
▶ HHHHHHHHHHHHHHHHHigh Availability
▶ ……………………………………………
Me and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and git
• I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)
• Private forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforge
• 5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git
• The Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot git
• GGGGGGGGGGGGGGGGGit/Hg are the de-facto standards in OS
projects
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.
Source: http://git-scm.com/
git loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit log
• Initiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus Torvalds
• Replacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeper
• Created for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel development
• Now used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projects
git is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributed
• EEEEEEEEEEEEEEEEEverything can be done in local (except
pull&push)
• WWWWWWWWWWWWWWWWWork with several remotes
• SSSSSSSSSSSSSSSSShare code with anyone
• NNNNNNNNNNNNNNNNNo unique central repository
• AAAAAAAAAAAAAAAAA lot of workflows possible
A teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA team
• OOOOOOOOOOOOOOOOOne person
• 1111111111111111100 people
• CCCCCCCCCCCCCCCCCoders, testers, readers?
A repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than code
• CCCCCCCCCCCCCCCCCode changes
• CCCCCCCCCCCCCCCCCommit messages
• DDDDDDDDDDDDDDDDDates
• BBBBBBBBBBBBBBBBBranches
• TTTTTTTTTTTTTTTTTags
The Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit Message
The commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit message
• NNNNNNNNNNNNNNNNNever underestimate the commit message
• WWWWWWWWWWWWWWWWWill be seen in many occasions: git logs,
cherry-picks, git blame, …
• AAAAAAAAAAAAAAAAAlways available with the repository, offline
FormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormat
• OOOOOOOOOOOOOOOOOne short line with a ticket number
• <<<<<<<<<<<<<<<<<blank line>
• AAAAAAAAAAAAAAAAA more complete description, with context
RebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasing
• SSSSSSSSSSSSSSSSStep 1: you pull
• SSSSSSSSSSSSSSSSStep 2: you commit
• SSSSSSSSSSSSSSSSStep 3: colleague push
• SSSSSSSSSSSSSSSSStep 4: you pull
• SSSSSSSSSSSSSSSSStep 5: you push
d705683 dce1845 7d9d95d 6cea694
dd590b4
ccb3389
85c05ba
ccb3389
Before:
d705683 dce1845 7d9d95d 6cea694
dd590b4
ccb3389
85c05ba
ccb3389
After:
d705683 dce1845 7d9d95d dd590b4 6fb1d1a
rebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasing
• CCCCCCCCCCCCCCCCCleaner project history
• LLLLLLLLLLLLLLLLLess commits
• """""""""""""""""Single-line" commit history
• gggggggggggggggggit pull --rebase
SquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashing
Daily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily work
• SSSSSSSSSSSSSSSSStep 1: code on your branch
• SSSSSSSSSSSSSSSSStep 2: commit
• SSSSSSSSSSSSSSSSStep 3: code again
• SSSSSSSSSSSSSSSSStep 4: commit
• SSSSSSSSSSSSSSSSStep 5: GOTO Step 1
What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?
A nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changes
A big mess
No one would merge that
4dd6437 8ac0fed 3092c78 f55d65e a4c8b39 2ac72a4 48e6f6f 42b3af2 b7d0830 c0cf800 7df0c0a cfe76f4
Before:
4dd6437 8ac0fed 3092c78 f55d65e a4c8b39 2ac72a4 48e6f6f 42b3af2 b7d0830 c0cf800 7df0c0a cfe76f4
After:
4dd6437 8ac0fed 3092c78 4fcbe28
git rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -i
• CCCCCCCCCCCCCCCCChanges the git history
• sssssssssssssssssquash, delete, change, reorder commits
• gggggggggggggggggit hashes are unique, any change change
them
The bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro code
Never change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits that
are already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushed
Merge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squash
git merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squash
• TTTTTTTTTTTTTTTTThe merge is done but without commits
• IIIIIIIIIIIIIIIIIt allows you to commit all in once
• EEEEEEEEEEEEEEEEEasily squash a temp branch in a commit
d705683 dce1845 7d9d95d 6cea694
935c8e1 bcdb4bf 2aac4c7
d705683 dce1845 7d9d95d 6cea694
2679d42
935c8e1 bcdb4bf 2aac4c7
AmendAmendAmendAmendAmendAmendAmendAmendAmendAmendAmendAmendAmendAmendAmendAmendAmend
git commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amend
• CCCCCCCCCCCCCCCCChange the last commit
• AAAAAAAAAAAAAAAAAdd files, change commit message
• DDDDDDDDDDDDDDDDDo it before pushing!
Additional tips
Use SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH sockets
$ cat .ssh/config
Host githost
controlmaster auto
controlpath /tmp/ssh-%r@%h:%p
ControlPersist 300
• UUUUUUUUUUUUUUUUUse only one SSH connection
• DDDDDDDDDDDDDDDDDo not disconnect SSH
Find the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commit
$ git name-rev --name-only 106cb38dd0bc5ea2d2d0adef0b40
06bd61884e42
remotes/origin/8.5.2~1
git autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrect
$ git config help.autocorrect 10
$ git pusk
WARNING: You called a Git command named 'pusk', which does not
Continuing under the assumption that you meant 'push'
in 1.0 seconds automatically...
GPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commits
• gggggggggggggggggit commit -S
• SSSSSSSSSSSSSSSSSign PR, merge commits
• DDDDDDDDDDDDDDDDDo not sign every commit (then it becomes
useless)
HomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomework
• gggggggggggggggggit reflog
• gggggggggggggggggit aliases
• gggggggggggggggggit bisect
• gggggggggggggggggit blame
• FFFFFFFFFFFFFFFFFETCH_HEAD
ConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusion
conclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusion
• GGGGGGGGGGGGGGGGGit is powerful
• AAAAAAAAAAAAAAAAAny commit can be changed
• YYYYYYYYYYYYYYYYYou can do anything
• AAAAAAAAAAAAAAAAA commit = A logical change
• AAAAAAAAAAAAAAAAA clean history brings you easiest
blame/bisect
• RRRRRRRRRRRRRRRRRemember that git is decentralized
Thank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank you
Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?
Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2
ContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContact
Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
julien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eu
@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie
inuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuits
https://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.eu
info@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.eu
+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636

Contenu connexe

Tendances

Managing a R&D Lab with Foreman
Managing a R&D Lab with ForemanManaging a R&D Lab with Foreman
Managing a R&D Lab with ForemanJulien Pivotto
 
An introduction to the Pulp project
An introduction to the Pulp projectAn introduction to the Pulp project
An introduction to the Pulp projectJulien Pivotto
 
Getting the maximum out of systemd
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemdJulien Pivotto
 
systemd and configuration management
systemd and configuration managementsystemd and configuration management
systemd and configuration managementJulien Pivotto
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to GitlabJulien Pivotto
 
Demystifying the Foreman
Demystifying the ForemanDemystifying the Foreman
Demystifying the ForemanJulien Pivotto
 
CentOS Config Management SIG
CentOS Config Management SIGCentOS Config Management SIG
CentOS Config Management SIGJulien Pivotto
 
Rapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypythonRapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypythonAlbert Huang
 
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...NETWAYS
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as CodeKris Buytaert
 
Managing releases effectively through git
Managing releases effectively through gitManaging releases effectively through git
Managing releases effectively through gitMohd Farid
 
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java WorldFeelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java WorldKen Kousen
 
We Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese ShopWe Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese ShopTzu-ping Chung
 
떠먹는 '오브젝트' Ch05 책임 할당하기
떠먹는 '오브젝트' Ch05 책임 할당하기떠먹는 '오브젝트' Ch05 책임 할당하기
떠먹는 '오브젝트' Ch05 책임 할당하기Covenant Ko
 
JPA 스터디 Week1 - 하이버네이트, 캐시
JPA 스터디 Week1 - 하이버네이트, 캐시JPA 스터디 Week1 - 하이버네이트, 캐시
JPA 스터디 Week1 - 하이버네이트, 캐시Covenant Ko
 
The influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsKris Buytaert
 

Tendances (20)

RPM experiments
RPM experimentsRPM experiments
RPM experiments
 
Managing a R&D Lab with Foreman
Managing a R&D Lab with ForemanManaging a R&D Lab with Foreman
Managing a R&D Lab with Foreman
 
An introduction to the Pulp project
An introduction to the Pulp projectAn introduction to the Pulp project
An introduction to the Pulp project
 
Getting the maximum out of systemd
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemd
 
systemd and configuration management
systemd and configuration managementsystemd and configuration management
systemd and configuration management
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
 
Demystifying the Foreman
Demystifying the ForemanDemystifying the Foreman
Demystifying the Foreman
 
DNSSec
DNSSecDNSSec
DNSSec
 
CentOS Config Management SIG
CentOS Config Management SIGCentOS Config Management SIG
CentOS Config Management SIG
 
Rapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypythonRapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypython
 
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
 
True Git
True Git True Git
True Git
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as Code
 
Managing releases effectively through git
Managing releases effectively through gitManaging releases effectively through git
Managing releases effectively through git
 
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java WorldFeelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
 
We Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese ShopWe Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese Shop
 
떠먹는 '오브젝트' Ch05 책임 할당하기
떠먹는 '오브젝트' Ch05 책임 할당하기떠먹는 '오브젝트' Ch05 책임 할당하기
떠먹는 '오브젝트' Ch05 책임 할당하기
 
JPA 스터디 Week1 - 하이버네이트, 캐시
JPA 스터디 Week1 - 하이버네이트, 캐시JPA 스터디 Week1 - 하이버네이트, 캐시
JPA 스터디 Week1 - 하이버네이트, 캐시
 
Python x Django
Python x DjangoPython x Django
Python x Django
 
The influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devops
 

Similaire à Git Collaboration Tips

Gitflow 깃플로우 공유
Gitflow 깃플로우 공유Gitflow 깃플로우 공유
Gitflow 깃플로우 공유joonjhokil
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker streetKris Buytaert
 
Enterprise git
Enterprise gitEnterprise git
Enterprise gitPedro Melo
 
Refactoring to Go modules: why and how
Refactoring to Go modules: why and howRefactoring to Go modules: why and how
Refactoring to Go modules: why and howLeon Stigter
 
Contributing to YUI
Contributing to YUIContributing to YUI
Contributing to YUIDav Glass
 
Git Ninja (bigapp KT)
Git Ninja (bigapp KT)Git Ninja (bigapp KT)
Git Ninja (bigapp KT)Ashok Kumar
 
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMSDevopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMSKris Buytaert
 
Using Go in DevOps
Using Go in DevOpsUsing Go in DevOps
Using Go in DevOpsEficode
 
Natalie Pistunovich - Using Go In Dev Ops
Natalie Pistunovich - Using Go In Dev OpsNatalie Pistunovich - Using Go In Dev Ops
Natalie Pistunovich - Using Go In Dev OpsFraugster
 
From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove Kris Buytaert
 
Git censored.key
Git censored.keyGit censored.key
Git censored.keymkramer2
 
GitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposGitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposWeaveworks
 
Its not about the tooling
Its not about the toolingIts not about the tooling
Its not about the toolingBram Vogelaar
 
Alfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with AlfrescoAlfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with AlfrescoRichard Esplin
 
Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!CollabNet
 

Similaire à Git Collaboration Tips (20)

Gitflow 깃플로우 공유
Gitflow 깃플로우 공유Gitflow 깃플로우 공유
Gitflow 깃플로우 공유
 
Git
GitGit
Git
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
GIT from n00b
GIT from n00bGIT from n00b
GIT from n00b
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker street
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
 
Refactoring to Go modules: why and how
Refactoring to Go modules: why and howRefactoring to Go modules: why and how
Refactoring to Go modules: why and how
 
Pinto+Stratopan+Love
Pinto+Stratopan+LovePinto+Stratopan+Love
Pinto+Stratopan+Love
 
Contributing to YUI
Contributing to YUIContributing to YUI
Contributing to YUI
 
Git Ninja (bigapp KT)
Git Ninja (bigapp KT)Git Ninja (bigapp KT)
Git Ninja (bigapp KT)
 
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMSDevopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
 
Using Go in DevOps
Using Go in DevOpsUsing Go in DevOps
Using Go in DevOps
 
Natalie Pistunovich - Using Go In Dev Ops
Natalie Pistunovich - Using Go In Dev OpsNatalie Pistunovich - Using Go In Dev Ops
Natalie Pistunovich - Using Go In Dev Ops
 
From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove
 
Git censored.key
Git censored.keyGit censored.key
Git censored.key
 
GitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposGitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your Repos
 
Its not about the tooling
Its not about the toolingIts not about the tooling
Its not about the tooling
 
Alfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with AlfrescoAlfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with Alfresco
 
Hacktoberfest 2021
Hacktoberfest 2021Hacktoberfest 2021
Hacktoberfest 2021
 
Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!
 

Plus de Julien Pivotto

What's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemJulien Pivotto
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingJulien Pivotto
 
What's new in Prometheus?
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?Julien Pivotto
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana LokiJulien Pivotto
 
Why you should revisit mgmt
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmtJulien Pivotto
 
Observing the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusJulien Pivotto
 
Monitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusJulien Pivotto
 
5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service DiscoveryJulien Pivotto
 
Prometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionJulien Pivotto
 
Powerful graphs in Grafana
Powerful graphs in GrafanaPowerful graphs in Grafana
Powerful graphs in GrafanaJulien Pivotto
 
HAProxy as Egress Controller
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress ControllerJulien Pivotto
 
Improved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerJulien Pivotto
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with KeycloakJulien Pivotto
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaborationJulien Pivotto
 
Incident Resolution as Code
Incident Resolution as CodeIncident Resolution as Code
Incident Resolution as CodeJulien Pivotto
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusJulien Pivotto
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusJulien Pivotto
 
An introduction to Ansible
An introduction to AnsibleAn introduction to Ansible
An introduction to AnsibleJulien Pivotto
 

Plus de Julien Pivotto (20)

The O11y Toolkit
The O11y ToolkitThe O11y Toolkit
The O11y Toolkit
 
What's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its Ecosystem
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
 
What's new in Prometheus?
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
Why you should revisit mgmt
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmt
 
Observing the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From Prometheus
 
Monitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with Prometheus
 
5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery
 
Prometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an Introduction
 
Powerful graphs in Grafana
Powerful graphs in GrafanaPowerful graphs in Grafana
Powerful graphs in Grafana
 
YAML Magic
YAML MagicYAML Magic
YAML Magic
 
HAProxy as Egress Controller
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress Controller
 
Improved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and Alertmanager
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
Incident Resolution as Code
Incident Resolution as CodeIncident Resolution as Code
Incident Resolution as Code
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
An introduction to Ansible
An introduction to AnsibleAn introduction to Ansible
An introduction to Ansible
 

Dernier

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Dernier (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Git Collaboration Tips

  • 1. Coworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with git Collaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for git Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto LOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, Antwerp April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015
  • 2. whoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoami Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto • System administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.eu • Git user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ years • DevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believer • Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004 • @roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie on irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/github
  • 4. Ops <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 Dev • Infrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as Code ▶ SSSSSSSSSSSSSSSSSCM all the things ▶ MMMMMMMMMMMMMMMMMonitoring ▶ CCCCCCCCCCCCCCCCConfiguration ▶ AAAAAAAAAAAAAAAAApplication deployment • Taking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software development ▶ UUUUUUUUUUUUUUUUUnderstanding ▶ MMMMMMMMMMMMMMMMMonitoring ▶ HHHHHHHHHHHHHHHHHigh Availability ▶ ……………………………………………
  • 5. Me and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and git • I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago) • Private forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforge • 5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git • The Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot git • GGGGGGGGGGGGGGGGGit/Hg are the de-facto standards in OS projects
  • 6. 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. Source: http://git-scm.com/
  • 7. git loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit log • Initiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus Torvalds • Replacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeper • Created for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel development • Now used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projects
  • 8. git is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributed • EEEEEEEEEEEEEEEEEverything can be done in local (except pull&push) • WWWWWWWWWWWWWWWWWork with several remotes • SSSSSSSSSSSSSSSSShare code with anyone • NNNNNNNNNNNNNNNNNo unique central repository • AAAAAAAAAAAAAAAAA lot of workflows possible
  • 9. A teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA team • OOOOOOOOOOOOOOOOOne person • 1111111111111111100 people • CCCCCCCCCCCCCCCCCoders, testers, readers?
  • 10. A repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than code • CCCCCCCCCCCCCCCCCode changes • CCCCCCCCCCCCCCCCCommit messages • DDDDDDDDDDDDDDDDDates • BBBBBBBBBBBBBBBBBranches • TTTTTTTTTTTTTTTTTags
  • 11. The Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit Message
  • 12. The commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit message • NNNNNNNNNNNNNNNNNever underestimate the commit message • WWWWWWWWWWWWWWWWWill be seen in many occasions: git logs, cherry-picks, git blame, … • AAAAAAAAAAAAAAAAAlways available with the repository, offline
  • 13. FormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormat • OOOOOOOOOOOOOOOOOne short line with a ticket number • <<<<<<<<<<<<<<<<<blank line> • AAAAAAAAAAAAAAAAA more complete description, with context
  • 15. • SSSSSSSSSSSSSSSSStep 1: you pull • SSSSSSSSSSSSSSSSStep 2: you commit • SSSSSSSSSSSSSSSSStep 3: colleague push • SSSSSSSSSSSSSSSSStep 4: you pull • SSSSSSSSSSSSSSSSStep 5: you push
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. d705683 dce1845 7d9d95d 6cea694 dd590b4 ccb3389 85c05ba ccb3389
  • 21.
  • 22.
  • 23. Before: d705683 dce1845 7d9d95d 6cea694 dd590b4 ccb3389 85c05ba ccb3389 After: d705683 dce1845 7d9d95d dd590b4 6fb1d1a
  • 24. rebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasing • CCCCCCCCCCCCCCCCCleaner project history • LLLLLLLLLLLLLLLLLess commits • """""""""""""""""Single-line" commit history • gggggggggggggggggit pull --rebase
  • 26. Daily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily work • SSSSSSSSSSSSSSSSStep 1: code on your branch • SSSSSSSSSSSSSSSSStep 2: commit • SSSSSSSSSSSSSSSSStep 3: code again • SSSSSSSSSSSSSSSSStep 4: commit • SSSSSSSSSSSSSSSSStep 5: GOTO Step 1
  • 27.
  • 28. What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have? A nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changes A big mess No one would merge that
  • 29. 4dd6437 8ac0fed 3092c78 f55d65e a4c8b39 2ac72a4 48e6f6f 42b3af2 b7d0830 c0cf800 7df0c0a cfe76f4
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. Before: 4dd6437 8ac0fed 3092c78 f55d65e a4c8b39 2ac72a4 48e6f6f 42b3af2 b7d0830 c0cf800 7df0c0a cfe76f4 After: 4dd6437 8ac0fed 3092c78 4fcbe28
  • 38. git rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -i • CCCCCCCCCCCCCCCCChanges the git history • sssssssssssssssssquash, delete, change, reorder commits • gggggggggggggggggit hashes are unique, any change change them
  • 39. The bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro code Never change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits that are already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushed
  • 40. Merge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squash
  • 41. git merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squash • TTTTTTTTTTTTTTTTThe merge is done but without commits • IIIIIIIIIIIIIIIIIt allows you to commit all in once • EEEEEEEEEEEEEEEEEasily squash a temp branch in a commit
  • 42.
  • 43. d705683 dce1845 7d9d95d 6cea694 935c8e1 bcdb4bf 2aac4c7
  • 44.
  • 45. d705683 dce1845 7d9d95d 6cea694 2679d42 935c8e1 bcdb4bf 2aac4c7
  • 47. git commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amend • CCCCCCCCCCCCCCCCChange the last commit • AAAAAAAAAAAAAAAAAdd files, change commit message • DDDDDDDDDDDDDDDDDo it before pushing!
  • 48.
  • 50. Use SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH sockets $ cat .ssh/config Host githost controlmaster auto controlpath /tmp/ssh-%r@%h:%p ControlPersist 300 • UUUUUUUUUUUUUUUUUse only one SSH connection • DDDDDDDDDDDDDDDDDo not disconnect SSH
  • 51. Find the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commit $ git name-rev --name-only 106cb38dd0bc5ea2d2d0adef0b40 06bd61884e42 remotes/origin/8.5.2~1
  • 52. git autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrect $ git config help.autocorrect 10 $ git pusk WARNING: You called a Git command named 'pusk', which does not Continuing under the assumption that you meant 'push' in 1.0 seconds automatically...
  • 53. GPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commits • gggggggggggggggggit commit -S • SSSSSSSSSSSSSSSSSign PR, merge commits • DDDDDDDDDDDDDDDDDo not sign every commit (then it becomes useless)
  • 54. HomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomework • gggggggggggggggggit reflog • gggggggggggggggggit aliases • gggggggggggggggggit bisect • gggggggggggggggggit blame • FFFFFFFFFFFFFFFFFETCH_HEAD
  • 56. conclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusion • GGGGGGGGGGGGGGGGGit is powerful • AAAAAAAAAAAAAAAAAny commit can be changed • YYYYYYYYYYYYYYYYYou can do anything • AAAAAAAAAAAAAAAAA commit = A logical change • AAAAAAAAAAAAAAAAA clean history brings you easiest blame/bisect • RRRRRRRRRRRRRRRRRemember that git is decentralized
  • 57. Thank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank you Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question? Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2
  • 58. ContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContact Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto julien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eu @roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie inuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuits https://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.eu info@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.eu +32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636