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 and Github: Tips and tricks
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Wendy Liu
November 26, 2013
Programming
400
2
Share
Git and Github: Tips and tricks
Presentation for HackMcGill. Intro to Git/Github plus various tips and tricks, all in one.
Wendy Liu
November 26, 2013
More Decks by Wendy Liu
See All by Wendy Liu
Git and Github: Version control for a happier you
dellsystem
0
350
Optimising your JavaScript
dellsystem
1
550
Git and Github: version control for the 21st century
dellsystem
1
320
Django: The web framework for perfectionists with deadlines
dellsystem
0
440
Git and GitHub: an introduction
dellsystem
2
270
What's in a name? Using first names as features for gender inference in Twitter
dellsystem
1
490
diva.js: A web-based document viewer for high-resolution images
dellsystem
0
370
Other Decks in Programming
See All in Programming
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
520
Running Swift without an OS
kishikawakatsumi
0
780
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.4k
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
770
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
490
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
870
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
150
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
230
おれのAgentic Coding 2026/03
tsukasagr
1
140
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
230
ラッコキーワード サービス紹介資料
rakko
1
3M
Thoughts on Productivity
jonyablonski
76
5.1k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
170
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
440
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Technical Leadership for Architectural Decision Making
baasie
3
320
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Transcript
HackMcGill :: January 29, 2014 tips & tricks and :
about me - Wendy Liu - 4th year Math &
CS - 3 years experience with Git - 137-day Github commit streak - dellsystem on Twitter, Github, IRC
what is git?
what is git? version control system!
svn/perforce: local vs. remote comparison to other systems
svn/perforce: local vs. remote hg/bzr: faster, more control comparison to
other systems
svn/perforce: local vs. remote hg/bzr: faster, more control cvs/rcs: no
comparison comparison to other systems
backup_dec_1_2012.zip backup_dec_8_2012.zip backup_dec_15_2012.zip backup_dec_22_2012.zip backup_dec_29_2012.zip backup_jan_5_2012.zip backup_jan_12_2012.zip backup_jan_19_2012.zip backup_jan_26_2012.zip
report_v1.doc report_v2.doc report_v3.doc report_v4.doc
keeps track of changes enter git.
keeps track of changes extremely flexible enter git.
keeps track of changes extremely flexible developed by linus torvalds
enter git.
keeps track of changes extremely flexible developed by linus torvalds
completely free to use (and open source!) enter git.
keeps track of changes extremely flexible developed by linus torvalds
completely free to use (and open source!) primarily command-line enter git.
website what is github?
website collaborative coding, via git what is github?
website collaborative coding, via git (mostly) free to use what
is github?
website collaborative coding, via git (mostly) free to use major
part of developer ecosystem (esp. OSS) what is github?
why git?
why git? diffs
why git? diffs backups
why git? diffs backups collaboration
what git can do for you versioning easy collaboration blame
tracking down bugs safe experimentation statistics
what github can do for you issue-tracking even easier collaboration
remote backups access your files from anywhere graphical, easy-to-use UI
now: how git works
repository directory on filesystem just metadata (changes) manual grouping of
changes
commit group of logically-related changes 1 or more files (add/delete/modify)
staging index CHANGES I WANT IN MY NEXT COMMIT ALL
THE OTHER CHANGES
git commit -m 'test' CHANGES I WANT IN MY NEXT
COMMIT ALL THE OTHER CHANGES a new commit, with message 'test'
CHANGES I WANT IN MY NEXT COMMIT ALL THE OTHER
CHANGES the commit with message 'test' (nothing here yet)
your computer REMOTE REPOSITORIES LOCAL REPOSITORY some server another server
github
now: git tips
rebasing git rebase -i [start commit] reorder, reword, edit, squash
commits
amending git commit --amend staged changes become part of previous
commit
force pushing git push origin master -f useful after amending/rebasing
multiple remotes git remote add origin [url] git remote add
upstream [different URL] useful when pulling from other developers
patch git add --patch stage one chunk at a time
diffing git diff (unstaged) git diff --cached (staged) git diff
--check (whitespace errors)
colours git config --global color.ui auto
fix your whitespace git stripspace git apply --whitespace=fix
good commit messages Fix bug (50 chars max, capitalised, imperative)
Longer description explaining what the commit does. Wrap at 72 characters. Don't forget the blank line. bit.ly/gitcommit
bisect git bisect (or, "when did this bug first appear?")
ignoring .gitignore (untracked files) git update-index --assume-unchanged (tracked files) git
status --ignored
better pulls git pull vs git fetch & git merge
aliases git s = git status git add = git
add --patch git ds = git diff --staged git amend = git commit --amend git say = git commit -m git un = reset --soft HEAD^1
fixing merge conflicts 1. Don't panic 2. git status 3.
Look for the <<< 4. Stage & commit
moving files git mv [source] [destination] instead of: mv [source]
[destination] git rm [source] git add [destination]
sensitive data help.github.com/articles/remove-sensitive-data
selective staging git add --update (only tracked files) git add
--all (all files)
view configuration git config --list
pushing to remotes git push origin master git push origin
localbranch:remotebranch git push origin :remotebranch (deletes it)
branch tracking git push origin master -u git push origin
local:remote -u
stashing edits git stash git stash apply git stash pop
(applies, then removes from stack)
fixing mistakes git checkout (undo edits) git reset --soft (keeps
edits) git reset --hard (loses edits)
merge strategies git merge --strategy=[strategy] strategies: recursive (default), ours, theirs,
etc
now: github tips
keyboard shortcuts press ? to bring up the help
issues in commits "Fix #54" -> closes issue #54 from
the commit "For #54" -> links to #54 from commit, & vice versa
all from your browser edit, commit, send a pull request
... all without leaving your browser
blame who introduced this line, and when, and why
file rendering markup, geoson, csv, and more
integration with travis continuous integration (automated testing)
thanks! git-scm.com/book help.github.com