Top Banner
GUI Git
92

沒有 GUI 的 Git

Feb 19, 2017

Download

Technology

Chia Wei Tsai
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 沒有 GUI 的 Git

�� GUI � Git� � �

Page 2: 沒有 GUI 的 Git

1.çÑÙs 2.çÑC·�=��< 3.�B�L:�3.¦�˯ 4.I'Ã]�vw

�}v�xHÕz�¶ï

Page 3: 沒有 GUI 的 Git

rTÕ�Í_hJ\²

Page 4: 沒有 GUI 的 Git

� @afu ���https://www.youtube.com/watch?v=_yQlKEq-Ueg

Page 5: 沒有 GUI 的 Git

�è�

Page 6: 沒有 GUI 的 Git

Repository

Developer

Developer Developer

Developer

Developer Developer

Page 7: 沒有 GUI 的 Git

�è� - äMÂ�

Page 8: 沒有 GUI 的 Git

Repository

MainActivity.java

Page 9: 沒有 GUI 的 Git

Developer

Repository

MainActivity.java

Page 10: 沒有 GUI 的 Git

Developer

Repository

MainActivity.java

Developer

Page 11: 沒有 GUI 的 Git

�è� - mëÂ�

Page 12: 沒有 GUI 的 Git

Repository

MainActivity.java

Page 13: 沒有 GUI 的 Git

Developer

Repository

MainActivity.java

Page 14: 沒有 GUI 的 Git

Repository

MainActivity.java

Developer Developer

Page 15: 沒有 GUI 的 Git

Repository

MainActivity.java

Developer Developer

Page 16: 沒有 GUI 的 Git

!�

Page 17: 沒有 GUI 的 Git

Develop Repository

Develop Develop

Develop Repository

Office Repository

Develop

Develop Repository

Fork

Page 18: 沒有 GUI 的 Git

Develop Repository

Develop Develop

Develop Repository

Office Repository

Develop

Develop Repository

Commit

Page 19: 沒有 GUI 的 Git

Develop Repository

Develop Develop

Develop Repository

Office Repository

Develop

Develop Repository

Pull Request

Page 20: 沒有 GUI 的 Git

• ���Y+ (!Î�)

• »Ú���

• �}79� git �<4

� @oxxo ���

Page 21: 沒有 GUI 的 Git

�¤m GUI or CLI?

Page 23: 沒有 GUI 的 Git

https://www.facebook.com/groups/git.tw/permalink/991589810889687/?qa_ref=qd

Page 24: 沒有 GUI 的 Git

Git o��pµ

Page 26: 沒有 GUI 的 Git

Àq¹¿¡M

Page 27: 沒有 GUI 的 Git

# ¡M log �¦��ì¾ git ⇒ git config --global user.name weitsai

# ¡M±Ý-Aà git ⇒ git config --global user.email [email protected]

Page 28: 沒有 GUI 的 Git

# ¡MÄ- Editor (vim, sublime or atom…) git ⇒ git config --global core.editor vim

Page 29: 沒有 GUI 的 Git

½H�Å

Page 30: 沒有 GUI 的 Git

Local

Page 31: 沒有 GUI 的 Git

hJ�¯

â´¥

git �¯

git ⇒ git init

Page 32: 沒有 GUI 的 Git

â´¥

git �¯

git | master⚡ ⇒ touch test.md

hJ�¯

test

Page 33: 沒有 GUI 的 Git

â´¥

git �¯

git | master⚡ ⇒ git add test.md

test

hJ�¯

Page 34: 沒有 GUI 的 Git

â´¥

git �¯

git | master⚡ ⇒ git commit

test

hJ�¯

Page 35: 沒有 GUI 的 Git

â´¥

git �¯

git | master ⇒ echo ‘test’ >> test.md

hJ�¯

test

Page 36: 沒有 GUI 的 Git

â´¥

git �¯

git | master⚡ ⇒ git add test.md

test

hJ�¯

Page 37: 沒有 GUI 的 Git

â´¥

git �¯

git | master⚡ ⇒ git commit -m ‘Update’

test

hJ�¯

Page 38: 沒有 GUI 的 Git

���0…

Page 39: 沒有 GUI 的 Git

git | master ⇒ echo ‘test’ >> test.md git | master⚡ ⇒ git add test.md

Page 40: 沒有 GUI 的 Git

git | master ⇒ git cat-file -t 9daeafb9864cf43055ae93beb0afd6c7d144bfa4 blob

git | master ⇒ git cat-file -p 9daeafb9864cf43055ae93beb0afd6c7d144bfa4 test

Page 41: 沒有 GUI 的 Git

git | master ⇒ git commit -m ‘Add test file’ [master (root-commit) 77f64af] Add test file 1 file changed, 1 insertion(+) create mode 100644 test.md

git | master ⇒ git cat-file -t 77f64af commit

git | master ⇒ git cat-file -p 77f64af

Page 42: 沒有 GUI 的 Git

git | master ⇒ git cat-file -p 9098a4 100644 blob 9098a46b8a3cb674c82833688dfb5c77995053c2 test.md

git | master ⇒ git cat-file -t 9098a4 tree

Page 43: 沒有 GUI 的 Git

Commit

77f64af

Tree Blob

9daeaf 77f64af

Page 44: 沒有 GUI 的 Git
Page 45: 沒有 GUI 的 Git

Remote

Page 46: 沒有 GUI 的 Git

# �F�uÉ�iÑÛk git | master ⇒ git remote add origin {repo_url}

# å¼�uÉ�iÑÛk git | master ⇒ git remote rm origin

# ��uÉ�iÑÛk git | master ⇒ git remote -v

Page 47: 沒有 GUI 的 Git

# �F�uÉ�iÑÛk git | master ⇒ git push origin master

# ��uÉ�iÑÛk git | master ⇒ git pull origin master

# ��uÉ�iÑÛk git | master ⇒ git clone {repo_url}

Page 48: 沒有 GUI 的 Git

bé�Å

Page 49: 沒有 GUI 的 Git

# � commit ��Q�#��7�˯ git | master ⇒ git commit -v

# �Ï��FçÑ git | master ⇒ git add -p

# ftRK·� git | master ⇒ git checkout -f

Page 50: 沒有 GUI 的 Git

# �� commit ˯ git | master ⇒ git log

# º�·��l{ git | master ⇒ git log -p

# Ç�×.... git | master ⇒ git blame

Page 51: 沒有 GUI 的 Git

# ��·�˯ git | master ⇒ git diff

Page 52: 沒有 GUI 的 Git

# ª©��!� git | master ⇒ git checkout -b test

# ®$H%É�!� git | test ⇒ git branch # ®$L�!� í�Ó remote repo) git | test ⇒ git branch -a # �L�!�"1� commit git | test ⇒ git branch -vv

Page 53: 沒有 GUI 的 Git

# @�K� commit �Ð� git | master ⇒ git reset HEAD~1

# @�K? commit �Ð� git | master ⇒ git reset HEAD^^

# �~¦�@æ� commit çÑ git | master ⇒ git reset —hard

Page 54: 沒有 GUI 的 Git

# ^�³�; commit git | master ⇒ git revert HEAD~1

# &³!�:mëí���ʨî git | master ⇒ git merge —no-f q[branch]

# ' commit ˯:·� git | master ⇒ git rebase -i [commit]

Page 55: 沒有 GUI 的 Git

# më�M!��6��!� git | master ⇒ git merge —no-f {branch_name}

Page 56: 沒有 GUI 的 Git

Conflict

Page 57: 沒有 GUI 的 Git

git | master ⇒ echo ‘ � GUI � GIT’ > README.md git | master⚡ ⇒ git add README.md git | master⚡ ⇒ git commit -m ‘Add README’

Page 58: 沒有 GUI 的 Git

git | master ⇒ git checkout -b conflict git | conflict ⇒ echo ‘,� GUI � GIT’ > README.md git | conflict ⚡ ⇒ git add README.md git | conflict ⚡ ⇒ git commit -m ‘Update README’

Page 59: 沒有 GUI 的 Git

git | conflict ⇒ git checkout master git | master ⇒ echo ‘�� GUI � GIT’ > README.md git | master ⚡ ⇒ git add README.md git | master ⚡ ⇒ git commit -m ‘Update README(master)’

Page 60: 沒有 GUI 的 Git

git | master ⇒ git checkout conflict git | conflict ⇒ echo ‘,� GUI � GIT’ > README.md git | conflict ⚡ ⇒ git add README.md git | conflict ⚡ ⇒ git commit -m ‘Update README(conflict)’

Page 61: 沒有 GUI 的 Git

git | conflict ⇒ git rebase master

Page 62: 沒有 GUI 的 Git

git | conflict ⇒ vim README.md

Page 63: 沒有 GUI 的 Git

��

Page 64: 沒有 GUI 的 Git

��

Page 65: 沒有 GUI 的 Git

https://www.flickr.com/photos/appleboy/5488984404

Master - ÞMxH Develop - *(�xH

Feature - X����� Release - ·X develop bug Hotfix - «Ö·X master bug

Page 66: 沒有 GUI 的 Git

Commit

Page 67: 沒有 GUI 的 Git

• ­j&l{t�E

• ­j�e� 50 �n

• ­j*O���Á

• ­j��P���

• ­j¬g�-�#Z���aí��dê�î

• l{�E"�� 72 �n

• l{¬g|Ü�5� �:ïc�:�ï

Page 68: 沒有 GUI 的 Git

http://chris.beams.io/posts/git-commit/

Page 69: 沒有 GUI 的 Git

>}Ò�2

Page 70: 沒有 GUI 的 Git

SSH key

Page 71: 沒有 GUI 的 Git

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

Page 72: 沒有 GUI 的 Git
Page 73: 沒有 GUI 的 Git

Alias

Page 74: 沒有 GUI 的 Git

CRLF

Page 75: 沒有 GUI 的 Git

# OS X git | master ⇒ git config --global core.autocrlf input

# Windows git | master ⇒ git config --global core.autocrlf true

Page 76: 沒有 GUI 的 Git

Tool

Page 77: 沒有 GUI 的 Git

https://github.com/buunguyen/octotree

Page 78: 沒有 GUI 的 Git

https://rtyley.github.io/bfg-repo-cleaner/

Page 79: 沒有 GUI 的 Git

Security

Page 80: 沒有 GUI 的 Git

gitignore

Page 81: 沒有 GUI 的 Git

git ⇒ javac test.java git ⇒ git status

Page 82: 沒有 GUI 的 Git

http://gitignore.io/

Page 83: 沒有 GUI 的 Git

https://github.com/github/gitignore

Page 84: 沒有 GUI 的 Git
Page 85: 沒有 GUI 的 Git

ÌØJ�Ä

Page 86: 沒有 GUI 的 Git

https://help.github.com/articles/remove-sensitive-data/

Page 87: 沒有 GUI 的 Git

# å¼á8W¢¸ git ⇒ git filter-branch --force --index-filter \ 'git rm --cached --ignore-unmatch *.md' \ --prune-empty --tag-name-filter cat -- --all

Page 88: 沒有 GUI 的 Git

SVN

Page 89: 沒有 GUI 的 Git

# ^�U� SVN iÑ svn ⇒ git svn clone -r HEAD {Repo URL}

# °`·��Æ�#[Dy� SVN Server git | master⚡ ⇒ git svn rebase

# N²��V� Server � git | master⚡ ⇒ git svn dcommit

Page 90: 沒有 GUI 的 Git
Page 91: 沒有 GUI 的 Git

�§Gã• Git Book

• A successful Git branching model (Gitflow)

• iHower - !�*(\²&ßÔ

• How to Write a Git Commit Message

• Generating a new SSH key and adding it to the ssh-agent

Page 92: 沒有 GUI 的 Git

�§Gã• What are the best hosted version control services?