Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git - Monterail style
Search
Tymon Tobolski
July 01, 2015
Programming
210
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Git - Monterail style
Tymon Tobolski
July 01, 2015
More Decks by Tymon Tobolski
See All by Tymon Tobolski
Only possible with Elixir - ubots Case Study
teamon
0
300
Fun with Elixir Macros
teamon
1
590
Elixir GenStage & Flow
teamon
2
1.1k
Elixir - Bydgoszcz Web Development Meetup
teamon
2
990
Sidekiq
teamon
1
200
Rails Assets wroc_love.rb
teamon
1
800
Angular replacements for jQuery-based libraries
teamon
1
420
Angular replacements for jQuery-based libraries
teamon
2
340
Rails Assets LRUG
teamon
0
7.6k
Other Decks in Programming
See All in Programming
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
200
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
Contextとはなにか
chiroruxx
1
330
Oxlintのカスタムルールの現況
syumai
6
1.1k
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.4k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
660
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
710
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
400
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.7k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.3k
Featured
See All Featured
Everyday Curiosity
cassininazir
0
230
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
The Cult of Friendly URLs
andyhume
79
6.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
Making Projects Easy
brettharned
120
6.7k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Transcript
GIT MONTERAIL STYLE © Tymon Tobolski, 2015
Note about the language ... © Tymon Tobolski, 2015
BASICS © Tymon Tobolski, 2015
COMMIT FLOW © Tymon Tobolski, 2015
BRANCHING © Tymon Tobolski, 2015
PROTIP: NEW BRANCH $ git branch feature $ git checkout
feature is the same as $ git checkout -b feature © Tymon Tobolski, 2015
MERGING © Tymon Tobolski, 2015
PUSH & PULL © Tymon Tobolski, 2015
CONFIGURATION $ git config --global user.name "Tymon Tobolski" $ git
config --global user.email "
[email protected]
" © Tymon Tobolski, 2015
~/.gitconfig [user] name = Tymon Tobolski email =
[email protected]
[rerere]
enabled = true [github] user = teamon [alias] st = status ci = commit co = checkout br = branch ph = push pl = pull [core] excludesfile = /Users/teamon/.gitignore_global [push] default = simple © Tymon Tobolski, 2015
PROTIP: ALIASES # .gitconfig [alias] st = status ci =
commit co = checkout br = branch ph = push pl = pull # later in shell $ git co feature/JIRA-123 © Tymon Tobolski, 2015
.gitignore (RAILS APP) # Ignore bundler config. /.bundle # Ignore
the default SQLite database. /db/*.sqlite3 /db/*.sqlite3-journal # Ignore all logfiles and tempfiles. /log/*.log /tmp # Ignore personal setup /config/database.yml © Tymon Tobolski, 2015
~/.gitignore_global (SYSTEM WIDE) # Logs and databases *.log *.sql #
OS generated files .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes Icon? # Ruby stuff .ruby-version .rbenv-version .rbenv-vars # and more ... © Tymon Tobolski, 2015
~/.gitignore_global SETUP $ git config --global core.excludesfile ~/.gitignore_global REFERENCES ▸
http://islegend.com/development/setting-global-gitignore-mac-windows/ ▸ https://help.github.com/articles/ignoring-files/#create-a-global- gitignore © Tymon Tobolski, 2015
PROTIP: PROMPT google "git bash prompt" © Tymon Tobolski, 2015
COMMIT MESSAGE [JIRA-123] Capitalized, short (50 chars or less) summary
More detailed explanatory text, if necessary. It can span multiple lines. [skip ci] github.com/monterail/guidelines/blob/master/git.md © Tymon Tobolski, 2015
Write present-tense, imperative-style commit messages GOOD: [JIRA-123] Add currency service
BAD: [JIRA-123] Adds currency service BAD: [JIRA-123] Added currency service © Tymon Tobolski, 2015
If commit is for some reason not assigned to any
ticket, we use following tags: [fix] Changes fixing code not assigned to issue [docs] Changes of documentation, not affecting code [style] Changes that do not affect the meaning of the code [refactor] Changes that affect code, but not behavior of app [perf] Changes that improve performance [test] Adding missing tests [chore] Other, usually boring or repeating tasks © Tymon Tobolski, 2015
REBASE © Tymon Tobolski, 2015
"MERGE HELL" © Tymon Tobolski, 2015
CASE 1 TWO DEVELOPERS WORKING ON THE SAME FEATURE ©
Tymon Tobolski, 2015
merge rebase © Tymon Tobolski, 2015
CASE 2 MERGING MULTIPLE FEATURES © Tymon Tobolski, 2015
merge rebase © Tymon Tobolski, 2015
REBASE © Tymon Tobolski, 2015
REBASE Getting up to date with master $ git checkout
feat/abc $ git rebase master Merging feature into master $ git checkout master $ git merge --no-ff feat/abc © Tymon Tobolski, 2015
PROTIP: GIT UP $ gem install git-up $ git up
master up to date feature/ABC-123 rebasing... feature/ABC-456 fast-forwarding... preprod up to date github.com/aanand/git-up © Tymon Tobolski, 2015
QUESTIONS? © Tymon Tobolski, 2015