Hi, thanks for watching my slide, but this is old version, click here to visit the newest version.

歡迎來到 GitHub 新手村


Denny Huang

2013/10/03

Who am I ?


Denny Huang

http://hackgen.sitcon.org/

歡迎來到新手村

是否寫過程式?

小專題/中大型
專案開發經驗

版本控制經驗

Shell 熟悉程度

Git / GitHub

It's different

Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>
Source:  Code Smart, Don't Code hard  by 畢玉泉(CrBoy)<[email protected]>

攻城屍的救星

版本控制

版本控制類型

本地端版本控制


集中式版本控制系統


分散式版本控制系統

整裝待發

環境設定

git config --global user.email "[email protected]"

git config --global user.name "Your Name"

git config --global color.ui true

git config --global core.editor vim

環境設定

git config --global alias.co commit

git config --global alias.lg "log --color --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"

.gitconfig

Why --global?

Show branch names in $PS1

Halloween Bash Profile Generator

function parse_git_branch {
   git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* (.*)/(\1)/'
}

export PS1="\h:\W \u\$(parse_git_branch)$ "

開始冒險

Lv.1

Mission 1

Create a new repo


Reward: 10 exp

Public / Private

http://github.com/edu

README.md

Markdown Cheatsheet

.gitignore

License

Lv.1

Mission Complete!

Lv.1

Mission 2

Delete the repository


Reward: 10 exp

Lv.1

Mission Complete!

Lv.1

Mission 3

Create an new repo without initialization


Reward: 10 exp

Lv.1

Mission Complete!

About protocol

https / ssh

Lv.1

Mission 4

Create a new local repository

and push to github via https


Reward: 470 exp

git help <command>

git init

touch README.md

git status

圖片來源
圖片來源

Add file to staging area

Untrack file

Unstage file

Before commit

Commit

何時該 commit?

commit log 怎麼寫?

Show commit log

SPECIFYING REVISIONS

gitrevisions(7) Manual Page

Remove file

Rename file

Checkout to previous version

Checkout file from previous version

Stash files

Reset to previous version

Add remote repo

圖片來源

Push to remote repo

List branches

Lv.6

Mission Complete!

Lv.6

Mission 5

Clone your repo via ssh

try to commit and push


Reward: 40 exp

git clone




Please make sure you have the correct access rights

and the repository exists.

Generating SSH keys

Lv.6

Mission Complete!

Lv.6

Mission 6

Pull from remote repo

Resolving conflict


Reward: 160 exp

Add a new commit at remote via https repo.

git pull

git fetch + git merge

git pull --rebase

Merge conflict

Lv.8

Mission Complete!

攻城屍們!繼續冒險吧!

Git Branch

A successful Git branching model

Something useful

Just for fun

Resources

Thanks for listening!




本投影片採用創用 CC「姓名標示—相同方式分享 3.0 台灣」授權條款