Enviar pesquisa
Carregar
Git & git hub v1.2
•
Transferir como PPTX, PDF
•
0 gostou
•
306 visualizações
Chris Chen
Seguir
Easy to introduce git & github
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 57
Baixar agora
Recomendados
Git 入门实战
Git 入门实战
icy leaf
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao
工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
Git Tutorial
Git Tutorial
Drake Huang
Git 入門與實作
Git 入門與實作
奕浦 郭
First meetingwithgit
First meetingwithgit
Rhythm Sun
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
flylon
Git and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai
Recomendados
Git 入门实战
Git 入门实战
icy leaf
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao
工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
Git Tutorial
Git Tutorial
Drake Huang
Git 入門與實作
Git 入門與實作
奕浦 郭
First meetingwithgit
First meetingwithgit
Rhythm Sun
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
flylon
Git and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai
初心者 Git 上手攻略
初心者 Git 上手攻略
Lucien Lee
Git基礎介紹
Git基礎介紹
Max Ma
版本控制 使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
Introduction to git
Introduction to git
Bo-Yi Wu
Git Essence Tutorial
Git Essence Tutorial
Ho Kim
Git與source tree 基礎教學
Git與source tree 基礎教學
Duncan Chen
Git 使用介绍
Git 使用介绍
medcl
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
Jui An Huang (黃瑞安)
連哈秋都懂的Git教學
連哈秋都懂的Git教學
hydai
Git Tutorial 教學
Git Tutorial 教學
Wen-Tien Chang
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)
Hsin-lin Cheng
A successful git branching model 導讀
A successful git branching model 導讀
Wen Liao
Git 教學
Git 教學
Ming-Sian Lin
Submodule && subtree
Submodule && subtree
哲 于
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
Cloud Tu
寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
Will Huang
Git & Sourcetree 介紹
Git & Sourcetree 介紹
Adison wu
Git in a nutshell
Git in a nutshell
Nelson Tai
Git原理与实战 201607
Git原理与实战 201607
Charles Tang
Git使用入门
Git使用入门
dpf2e
Mais conteúdo relacionado
Mais procurados
初心者 Git 上手攻略
初心者 Git 上手攻略
Lucien Lee
Git基礎介紹
Git基礎介紹
Max Ma
版本控制 使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
Introduction to git
Introduction to git
Bo-Yi Wu
Git Essence Tutorial
Git Essence Tutorial
Ho Kim
Git與source tree 基礎教學
Git與source tree 基礎教學
Duncan Chen
Git 使用介绍
Git 使用介绍
medcl
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
Jui An Huang (黃瑞安)
連哈秋都懂的Git教學
連哈秋都懂的Git教學
hydai
Git Tutorial 教學
Git Tutorial 教學
Wen-Tien Chang
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)
Hsin-lin Cheng
A successful git branching model 導讀
A successful git branching model 導讀
Wen Liao
Git 教學
Git 教學
Ming-Sian Lin
Submodule && subtree
Submodule && subtree
哲 于
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
Cloud Tu
寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
Will Huang
Git & Sourcetree 介紹
Git & Sourcetree 介紹
Adison wu
Git in a nutshell
Git in a nutshell
Nelson Tai
Mais procurados
(20)
初心者 Git 上手攻略
初心者 Git 上手攻略
Git基礎介紹
Git基礎介紹
版本控制 使用Git & git hub
版本控制 使用Git & git hub
Introduction to git
Introduction to git
Git Essence Tutorial
Git Essence Tutorial
Git與source tree 基礎教學
Git與source tree 基礎教學
Git 使用介绍
Git 使用介绍
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
連哈秋都懂的Git教學
連哈秋都懂的Git教學
Git Tutorial 教學
Git Tutorial 教學
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)
A successful git branching model 導讀
A successful git branching model 導讀
Git 教學
Git 教學
Submodule && subtree
Submodule && subtree
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
寫給大家的 Git 教學
寫給大家的 Git 教學
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
Git & Sourcetree 介紹
Git & Sourcetree 介紹
Git in a nutshell
Git in a nutshell
Semelhante a Git & git hub v1.2
Git原理与实战 201607
Git原理与实战 201607
Charles Tang
Git使用入门
Git使用入门
dpf2e
Git+使用教程
Git+使用教程
gemron
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
Wen-Tien Chang
Git introduction
Git introduction
mythnc
20170510 git 懶人包
20170510 git 懶人包
Chen-Ming Yang
Git share
Git share
mactanxin
Git 实战
Git 实战
Edward Lee
Git基础培训
Git基础培训
诸葛修车网-诸葛商城
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou
Git and git hub
Git and git hub
唯 李
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
Learn git
Learn git
甘 李
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
Wei-Yuan Chang
Github简介及实用入门
Github简介及实用入门
Rongxing Liu
20150313 ian git
20150313 ian git
LearningTech
Git basis - usage
Git basis - usage
Eason Cao
Git内部培训文档
Git内部培训文档
superwen
Git教學
Git教學
Sitg Yao
Semelhante a Git & git hub v1.2
(19)
Git原理与实战 201607
Git原理与实战 201607
Git使用入门
Git使用入门
Git+使用教程
Git+使用教程
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
Git introduction
Git introduction
20170510 git 懶人包
20170510 git 懶人包
Git share
Git share
Git 实战
Git 实战
Git基础培训
Git基础培训
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Git and git hub
Git and git hub
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Learn git
Learn git
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
Github简介及实用入门
Github简介及实用入门
20150313 ian git
20150313 ian git
Git basis - usage
Git basis - usage
Git内部培训文档
Git内部培训文档
Git教學
Git教學
Git & git hub v1.2
1.
Git & GitHub SW
Chris 1
2.
Outline Why Git? Install Git
& setting Git local process GitHub Git vs SVN Appendix 2
3.
Why Git? 集中式版本控制系統(VCS)如 :
CVS、Subversion及Perforce 3 優點: 每個人皆能得知其它人對此專案做了 些什麼修改有一定程度的瞭解。 管理員可調整存取權限,限制各使用 者能做的事。 維護集中式版本控制系統也比維護散 落在各使用者端的資料庫來的容易。 缺點: 無法連上伺服器時,開發需要參考歷 史紀錄或是即時commit則必須等到可 以連線的狀態。 如果伺服器用來儲存 資料庫的硬碟損毀,除了本地端電腦 的版本,專案開發的歷史的所有資訊 都會遺失。
4.
Why Git? 分散式版本控制系統(DVCS)如 :
Git、Mercurial、Bazaar、Darcs 4 特色: 客戶端不只是取出最後一版的檔 案,而是完整複製整個儲存庫。 即使是整個系統賴以運作的電腦 損毀,皆可將任何一個客戶端先 前複製的資料還原到伺服器。 每一次的取出動作實際上就是完 整備份整個儲存庫。
5.
Repository SVN: 集中式的管理系統使開發成員 只需對應一個server端的repository。 Checkout 出來的結果會將server上 的檔案copy至user端,所有的 commit,
restore甚至查詢歷史紀錄 都需要連上server。 Git : 分散式系統不是用”checkout “, 而是利用clone的方式將檔案copy至 user端。並在本地保有一個local的 repository。這些檔案都保有完整的 歷史資訊,且所有的commit , restore 等等的操作都可以在本地端 完成。 5
6.
Install Git Ubuntu: $sudo apt-get
install git Fedora: $sudo yum install git 確認目前Git版本: $git --version 6
7.
.gitconfig 利用vim .gitconfig 修改相關git帳號及外觀 [user] name
= Chris Chen email = chris.yn.chen@example.com [color] diff = auto status = auto branch = auto interactive = true 7
8.
.bashrc 利用vim ~/.bashrc修改相關環境變數: function git_branch
{ ref=$(git symbolic-ref HEAD 2> /dev/null) || return; echo "("${ref#refs/heads/}") "; } function git_since_last_commit { now=`date +%s`; last_commit=$(git log --pretty=format:%at -1 2> /dev/null) || return; seconds_since_last_commit=$((now-last_commit)); minutes_since_last_commit=$((seconds_since_last_commit/60)); hours_since_last_commit=$((minutes_since_last_commit/60)); minutes_since_last_commit=$((minutes_since_last_commit%60)); echo "${hours_since_last_commit}h${minutes_since_last_commit}m "; } PS1="u[[033[1;32m]w[033[0m]] [033[0m][033[1;36m]$(git_branch)[033[0;33m]$(git_since_last_commit)[033[0m]$ “ *以上加入後請重啟console 8
9.
git init &
git clone 有兩種方式匯入Git repository 1. 新增及初始化一個 Git Repository $ git init 2. 從其它伺服器複製一份已存在的Git儲存庫。 $ git clone [url] 9
10.
.git .git目錄包含一個Git儲存庫架構必要的所 有檔案。 10 -- 供GitWeb 程式使用 --
包含了專案特有的配置選項 -- 供GitWeb 程式使用 --指向當前分支 --用戶端或服務端鉤子腳本。 --保存了一份不希望在 .gitignore 檔中管理的忽略模式 (ignored patterns) 的全域可執行檔。 --目錄存放所有資料內容 (包含log) --目錄存放指向資料 (分支) 的提交物件的指標
11.
git local workflow 11 (git
checkout) (git add) (git commit)
12.
File Status Lifecycle 12 新增檔案的 狀態屬於 untracked
13.
git add &
git status 13 追蹤新增檔案 $ git add <file> $ git add --all 檢視檔案狀態 $ git status
14.
git commit 14 提交檔案至repository $
git commit <file> $ git commit --all $git commit -a $ git commit -a -s (s代表sign in your email)
15.
git log 15 檢視repository
歷史紀錄 $ git log 檢視repository 歷史紀錄 且包含code diff $ git log -p SHA-1查核值 User 日期 Commit 描述
16.
git log 16 抓log關鍵字 $
git log | -i grep XXX 抓檔案關鍵字是誰改的 先到該檔案路徑下 $git log -p XXX.java $/ abc (查詢abc) 若要找下一個按n , 回到第一個p
17.
git diff 版本比較 $ git
diff <SHA-1> <SHA-1> $ git diff --staged 17
18.
git revert 還原之前版本 (commit會繼續往前,
目的是留下紀錄) $ git revert <SHA-1> 18 A B C D
19.
git branch &
git checkout Local端設置branch $ git branch <branch name> 切換branch $ git checkout <branch name> 19
20.
git merge 將某個branch merge至現在branch的位置 $
git merge <branch name> 若B branch 是由A的HEAD分支出來的,之後B的parent commit 也是A的HEAD,則就是fast-forward merge 20
21.
git merge Fast-forward merge: 當然
也可以強制不使用fast-forward merge $ git merge --no-ff <branch name> 21
22.
git merge 遇到conflict的處理狀況: 此時就要和修改相同地方的人 討論一下改正後commit即可 22
23.
git merge 利用圖示確認歷史紀錄 $ git
log --graph --oneline 23
24.
git reset &
git amend 還原狀態 $ git commit --amend =>commit 還原 $ git reset HEAD <file> => 從staging area 還原至unmodified 狀態 $ git reset --soft HEAD^ $ git reset --hard HEAD^ 24 Modify Gerri changes: $ git add src/com/asus/sensorapi/service/AsusProcess.java $ git commit --amend $ git push amax HEAD:refs/changes/53/171153 (後面兩團數為gerri 上的號碼)
25.
git reset 恢復某個檔案至untracked file狀態 $
git reset xxx.java 恢復所有untracked file狀態 $ git reset -- . 25
26.
git rebase Git rebase
和 git merge有 些不同如右圖: $ git rebase <new base commit> 26 <<Before>> <<After>>
27.
git tag 若要像SVN tag版本 $
git tag <name> <SHA-1> 27
28.
git stash 當正在進行專案中某一部分的工作,而想轉到其他分支上進行一些工作。問 題是,不想只為了待會要回到這個工作點,就把做到一半的工作進行提交。 解決這個問題的辦法就是 git
stash 命令。 丟進暫存區 $ git stash 取出最新的一筆 stash 暫存資料. 但是 stash 資料不移除 $ git stash pop 列出所有暫存區的資料 $ git stash list 列出所有暫存區的資料 $ git stash apply stash@{2} 取出最新的一筆, 並移除. $ git stash drop stash@{2} 刪除某個暫存資料 $ git stash clear 把 stash 都清掉 28
29.
git blame 查找特定修改人及log $ git
blame <file> $ git log 29
30.
Git workflow 30 Staging Area
31.
31 Repo command
32.
Repo forall • 回到某一版 先確認build
id : build/core/build_id.mk $ git log |grep LRX21M (LRX21M 是build ID) $ Git tag => 確認要跳去哪個tag $ repo_asus forall -c ‘git reset --hard android-5.0.2_r1‘ (後面接tag 即可) $ repo_asus forall -c 'git reset --hard 044030362_201410070948' 32
33.
GitHub 33
34.
GitHub https://github.com/ 34
35.
Create a repository 35 GitHub
36.
Git 和 GitHub相互溝通有兩種方式: 1.
HTTPS (使用密碼,email 和GitHub伺服器驗證) 2. SSH key (使用金鑰 和GitHub伺服器驗證) – 金要分成公鑰(Public Key) 用來加密 , 私鑰 (Private Key) 用來解密 – SSH會在 ~/.ssh下儲存私鑰, 登入時使用 開始時須打造這兩把鑰匙: (啥? ~/.ssh 找不到??) 自己的鑰匙自己做! $mkdir ~/.ssh 36 GitHub
37.
37 GitHub
38.
38 GitHub
39.
39 測試GitHub公鑰是否連接正常: $ ssh –T
github.com GitHub
40.
接著把我們的code push至server上 首先在GitHub的repository中複製SSH 40 GitHub 12345
41.
先加入remote 位置: $ git
remote add <remote name> <your GitHub SSH address> 將檔案push至server: $ git push <remote name> master 41 GitHub 刪除remote: git remote rm <target remote>
42.
push 完GitHub上就有相關資訊嘍~ 42 GitHub 12345 Your Files Log
and Branch Current branch SSH URL
43.
接著試試看push其它的branch至server: $ git push
< remote name > <other branch> 刪除 remote branch的方式: $ git push <remote name> : <branchName> 43 GitHub
44.
將server 的HEAD update到local
repo端: $ git pull <name> master *git fetch : 同步遠端伺服器上的資料到本地。 *git pull = git fetch + git merge 44 GitHub
45.
當遇到 conflict 的做法和之前一樣: 修改完,
git add + git commit *git pull = git fetch + git merge 45 GitHub
46.
當遇到 remote 中檔案被刪除時,pull下來的檔案 會直接在本機端工作目錄中刪除。 46 GitHub
47.
在push到remote時有可能遇到以下情況: 此時代表server上有其他更新(non-fast-forward updates),避 免遺失掉歷史紀錄,建議先pull merge後在push吧! 47 GitHub
48.
Git workflow Review 48 Staging Area
49.
Git gui tool 49 看了這麼多command
line是不是眼都花了!? 當然下列有些GUI tool 大家可以自己挑喜歡的用嘍~ Gitg $ sudo yum install gitg (Fedora) $ sudo apt-get install gitg (Ubuntu) Gitk $ sudo yum install gitk (Fedora) $ sudo apt-get install gitk (Ubuntu) Git-cola $ sudo yum install git-cola (Fedora) $ sudo apt-get install git-cola (Ubuntu) Giggle $ sudo yum install giggle (Fedora) $ sudo apt-get install giggle (Ubuntu)
50.
Git 50 SVN
51.
Git vs SVN 51
52.
Appendix 52
53.
自動補齊 在bash shell底下可自動補完打到一半的git 指令 Ubuntu: $sudo
apt-get install git-core bash-completion Fedora: $sudo yum install git bash-completion 53
54.
自動忽略 Git 可忽略某些檔案,使其無法被add &
commit 通常有以下兩種方式: 1. 在專案底下新增.gitignore 2. $GIT_DIR/info/exclude. 54
55.
Fedora 新增帳號 55 Root password
:xxx
56.
Fedora 連接網路 56 Fedora setting: 若要連線至網路請選擇橋接介 面卡,並可用ifconfig確認連線 IP
address是否正確
57.
Reference Udacity https://www.udacity.com/ Git SCM
http://git-scm.com/book/zh-tw/v1 連猴子都懂的Git入門指南 http://backlogtool.com/git-guide/tw/reference/git-svn.html Yakiloo http://yakiloo.com/getting-started-git-flow/ Tomtang’s Blog http://it.tomtang.idv.tw/2013/08/svn-git.html Yorkxin’s Blog http://blog.yorkxin.org/posts/2011/07/29/git-rebase/ Git-tower http://www.git-tower.com/ 57
Notas do Editor
version control system
Distributed version control system
時間為多久沒跟remote push
Info : .gitignore 主要存放忽略哪些檔名 Object: 主要存放log
SHA-1
SHA-1
SHA-1
空白列或者以#開頭的列會被忽略。 可使用標準的Glob pattern。 可以/結尾,代表是目錄。 可使用!符號將特徵反過來使用。
Baixar agora