SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
快速上手 Git 版本控制
        Bo-Yi Wu
 appleboy AT gmail.com
       2012.02.05
我是誰 ?

   現任台灣 CodeIgniter 站長
   現任 CodeIgniter User Guide 翻譯
   About me:
       部落格 : http://blog.wu-boy.com
       Twitter: https://twitter.com/#!/appleboy
       Plurk: http://www.plurk.com/appleboy46
       Github: https://github.com/appleboy
       About me: http://about.me/appleboy

                                                   2
上課內容有任何疑問
    請馬上打斷
也許您的問題就是大家的問題

            3
版本控制需求

   版本控制三大好處
       備份程式 ( 美工設計師可以儲存各版本圖片 )
       控管進度 ( 團隊合作 )
       任意復原 ( 改爛了沒關係 )




                                  4
版本控制分類

   本地端版本控制 (Local Version Control)
   集中式版本控制 (Centralized Version Control)
   分散式版本控制 (Distributed Version Control)




                                            5
本地端版本控制



1.改檔名 ?
2.用日期區別 ?
3.檔案備份 ?
4.擴充硬碟 ?
5.撰寫 Script?


                    6
集中式版本控制 (SVN)




Server 掛掉該如何處理呢?
                    7

( 員工 : 掛掉最好!! XD)
分散式版本控制系統 (Git,Mercurial)




  大家都是 Server 不必煩惱主機掛掉      8
Git 設計目標

   簡單快速 (Speed)
   設計簡單 (Simple design)
   動態線性開發 (non-linear development)
       大家可以互相合併,不需要有固定主分支 (master)
       無限制平行處理 ( 隨意開 branch)
   完全分散式處理 (Fully distributed)
   處理極大量資料 (Linux Kernel)

                                      9
Git Basics( 基礎介紹 )

   直接記錄快照,而非比較差異
   所有操作幾乎都在本機端執行 ( 分散式好處 )
       不需要網路
       大家都有備份
   資料完整性
       用 checksum SHA-1 hash 比對驗證檔案
   檔案三種狀態
       增加 staging 觀念 ( 後面會講解 )
                                       10
安裝 Git

   Installing on Linux
       yum install git-core
       apt-get install git-core
       http://help.github.com/linux-set-up-git/
   Installing on Windows ( 小烏龜 )
       Tortoisegit (Windwos Git GUI) 不推薦安裝
       Msysgit (The official Git for Windows)
       安裝步驟 http://help.github.com/win-set-up-git/

                                                      11
動手操作

   安裝步驟 http://help.github.com/win-set-up-git/
       http://code.google.com/p/msysgit/downloads/list
       請下載 Git-1.7.9-preview20120201.exe
       設定 SSH Keys ( 參考上述文件操作 )




                                                          12
Git 初始化設定

   個人設定檔
       Linux: ~/.gitconfig
       Windows: C:Documents and Settings$USER
   設定個人資訊
       git config --global user.name "Bo-Yi Wu"
       git config --global user.email appleboy.tw@xxx.com
       設定完成皆會寫到 .gitconfig 檔案



                                                         13
線上文件

   透過三種方式查詢
       git help config
       git config help
       man git-config




                                 14
請先註冊 ( 擇一即可 )




https://github.com/   https://bitbucket.org/


                                               15
Github 跟 Bitbucket 差異

   Github
       功能強大
       私有 repository 需要收費
       真正 Social Coding
       許多 Open Source 專案都在此紮根 ...
   Bitbucket
       功能較少
       私有 repository 完全免費

                                     16
開始操作 Git




兩種方式建立
Git Repository


                 17
建立新的 Git Repository

   任何目錄下執行
       $ git init
   初始化 github 或 bitbucket host 專案
       Format: git clone [url]
       $ git clone git://github.com/appleboy/test.git
       $ git clone git://github.com/appleboy/test.git abc
   專案底下會出現 .git 目錄
       .git 目錄記載所有版本資訊

                                                             18
git clone example

$ git clone git://github.com/phpbb/phpbb3.git
Cloning into phpbb3...
remote: Counting objects: 108296, done.
remote: Compressing objects: 100% (24699/24699), done.
remote: Total 108296 (delta 74585), reused 105904 (delta 72611)
Receiving objects: 100% (108296/108296), 23.78 MiB | 589 KiB/s,
done.
Resolving deltas: 100% (74585/74585), done.



                                                              19
Git 四種 protocol

   file://
        本地端 (Local) 執行
   git://
        Read-Only access
   https:// ssh://
        Read+Write access
        建議用此方法 ( 避開公司防火牆 )


                                  20
第一次 commit

   新增一個檔案
       $ touch README
   把檔案加入專案
       $ git add README
   提交變更
       $ git commit




                               21
檔案狀態




用 git status 檢查檔案狀態   22
檔案操作
   untracked → staged (add the new file)
       $ git add file_name
   unmodified → modified (edit the file)
       $ echo 'test' > file_name
   modified → staged (stage the file)
       $ git add file_name
   staged → unmodified (commit)
       $ git commit
   unmodified → untracked (remove the file)
       $ git rm file_name                     23
忽略檔案 (Ignoring Files)

   在專案目錄底下新增 .gitignore
       任意正規寫法都可以
       *.o ( 不把 .o 檔加入 repository)
       !lib.o ( 除了 lib.o 之外,其餘都略過 )




                                       24
小技巧 ( 密碼檔案 )

   可以新增 config.php.sample
   略過 config.php
       將 config.php 寫到 .gitignore




                                     25
觀看檔案差異 (git diff)

   觀看目前跟上一版本差異
       $ git diff
   觀看 stage 跟上一版本差異 ( 已經 git add 過 )
       $ git diff --cached




                                        26
更改檔名 (git mv)

   $ git mv README.txt README
       等同於
       $ mv README.txt README
       $ git rm README.txt
       $ git add README




                                 27
查看歷史紀錄 (git log)

   列出修改檔案清單
       $ git log --stat
       $ git log --pretty=format:"%h - %an, %ar : %s"




                                                         28
小技巧 ( 改爛還原就好 )

   staged → modified (stage 狀態還原到 unstage)
       $ git reset HEAD <file>
   modified → unmodified ( 改爛了沒關係 )
       $ git checkout -- <file>
   修改最後一次 commit log
       $ git commit --amend




                                              29
上傳到 Remote Server

   預設 branch 叫 master
       $ git branch -a
   預設 remote 叫 origin
       $ git remote -v




                                 30
上傳到 github

   新增遠端 Server
       Format: git remote add [short_name] [url]
       $ git remote add origin git@xxxxxxx
   上傳變更檔案到 Server
       Format: git push [short_name] [branch_name]
       $ git push -u origin master




                                                      31
遠端更新及合併檔案

   直接下載檔案
       Format: git fetch [short_name]
       $ git fetch origin
   下載檔案並且 merge
       $ git pull [short_name] [branch_name]
       $ git pull origin master
   git pull = git fetch + git merge
       git fetch origin + git merge origin/master

                                                     32
如何使用標籤 (Tag)
   列出既有標籤
       $ git tag -l
   新增標籤
       $ git tag -a v1.4 -m 'my version 1.4'
       $ git tag -a v1.4 9fceb02
   上傳標籤
       $ git push origin v1.4
       $ git push origin --tags ( 上傳所有標籤 )
   刪除標籤
       $ git tag -d <tagname>
                                                33
       $ git push origin :refs/tags/v1.4
如何使用分支 git branch




原來只有一個 master branch


                       34
新增 branch




    新增 iss53 branch




                      35
Git branch 指令
   新增 branch
       $ git branch [branch_name]
       $ git branch iss53
   刪除 branch( 小心使用 )
       $ git branch -d iss53
       $ git branch -D iss53 ( 強制刪除 )
   切換 branch
       $ git checkout [branch_name]
       $ git checkout -b [branch_name] ( 新增且切換 )
       $ git checkout -b test
                                                    36
       等同於 git branch test && git checkout test
iss53 提交 commit




$ vim index.html
$ git commit -a -m 'new footer [issue 53]'

                                             37
建立 hotfix 分支




$ git checkout -b 'hotfix'
Switched to a new branch "hotfix"
$ git commit -a -m 'fixed email address'




                                           38
合併分支 master+hotfix




$ git checkout master
$ git merge hotfix
$ git branch -d hotfix


                          39
管理 branch 架構

   列出全部 branch
       $ git branch -a
   詳細列出 branch
       $ git branch -v
   列出已經 merge 的 branch
       $ git branch --merged
   列出尚未 merge 的 branch
       $ git branch --no-merged

                                   40
管理遠端 branch

   上傳 branch
       Format: git push origin [branch_name]
   刪除 branch
       Format: git push origin :[branch_name]
       $ git push origin :hotfix




                                                 41
Git branch 設計

   主要分支
       master 主程式 ( 除非重大 bug ,則會分出 hotfix
        分支 )
       develop 開發分支 ( 用來在另外分支出 Release,
        feature)
   次要分支
       Hotfixes( 由 master 分支,馬上修正 bug)
       Feature( 由 develop 分支,開發新功能 )
       Release( 由 develop 分支,開發下一版 release)
                                               42
主要分支




       43
新分支 Feature branches

   branch off from: develop
   merge back into: develop
       $ git checkout -b feature develop
       $ edit …..
       $ git commit -a -m ”....”
       $ git checkout develop
       $ git merge --no-ff feature
       $ git branch -d myfeature
       $ git push origin develop
                                            44
git merge --no-ff




                    45
Release branches
   $ git checkout -b release-1.3 develop
   $ git commit -a -m "Update: release 1.3"
   $ git checkout master
   $ git merge --no-ff release-1.3
   $ git tag -a v1.3 -m "Release v1.3 Tag"
   $ git checkout develop
   $ git merge --no-ff release-1.3
   $ git push
   $ git push origin v1.3
                                               46
   $ git branch -d release-1.3
重大 issue ( Hotfix branches )

   branch off from: master
   merge back into: develop and master

$ git checkout -b hotfix-1.3.1 master
$ git commit -a -m "Hotfix: release 1.3.1"
$ git checkout master
$ git merge --no-ff hotfix-1.3.1
$ git tag -a v1.3.1 -m "Hotfix v1.3.1 Tag"
$ git checkout develop
$ git merge --no-ff hotfix-1.3.1
$ git branch -d hotfix-1.3.1
$ git push
$ git push origin v1.3.1


                                             47
Git Submodule




     專案用到很多
    Open Source
(Blueprintcss, jQuery..)


                           48
Git Submodule




可以任意將他人的專案掛載在
    任何目錄底下


                   49
建立 Git Submodule

   $ git submodule add <repository> [<path>]
       注意 path 部份,請勿先建立空目錄
       $ git submodule add repository_url user_guide




                                                        50
Git Submodule

   git status 會發現多出兩個檔案
       new file: .gitmodules
       new file: user_guide
   open .gitmodules




                                  51
Commit submodule




多出 git submodule 小圖示

                       52
clone project with Git Submodule

   $ git clone github_repository test
   將 module 寫入 .git/config
       $ git submodule init
   下載 submodule 程式碼
       $ git submodule update




                                         53
更新已安裝 module

   切換到 sub module 目錄
       $ cd user_guide/
   更新檔案
       $ git pull origin master
   回到專案目錄並且更新 submodule commit ID
       $ cd /xxx/project
       git commit -a -m ”update” && git push
   檢查是否有相同的 commit ID
       git submodule status                    54
移除 Sub module

   移除目錄
       git rm --cached [ 目錄 ]
       git rm [ 目錄 ]
   修改 .gitmodules ,移除不需要的 module
   修改 .git/config ,移除 submodule URL
   執行 commit
       git add . && git commit -m "Remove sub module"
   最後 syn module 資料
       git submodule sync                               55
參考資料

   Pro Git http://progit.org/book/
   Git 文章系列 http://blog.wu-boy.com/tag/git/




                                               56
謝謝大家




大家辛苦了

        57

Weitere ähnliche Inhalte

Was ist angesagt?

Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Cloud Tu
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作奕浦 郭
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作Bo-Yi Wu
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战icy leaf
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略Lucien Lee
 
幸福快樂的完美結局
幸福快樂的完美結局幸福快樂的完美結局
幸福快樂的完美結局Anna Su
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀Wen Liao
 
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台Bo-Yi Wu
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Wen-Tien Chang
 
Git and git hub
Git and git hubGit and git hub
Git and git hub唯 李
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學Duncan Chen
 
Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介Bo-Yi Wu
 
運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率Bo-Yi Wu
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學littlebtc
 
電子內容管理 使用Git 與 github 1
電子內容管理   使用Git 與 github 1電子內容管理   使用Git 與 github 1
電子內容管理 使用Git 與 github 1Alan Tsai
 
Yet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upYet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upWen-Tien Chang
 
Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學芳本 林
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Will Huang
 

Was ist angesagt? (20)

Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
 
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略
 
幸福快樂的完美結局
幸福快樂的完美結局幸福快樂的完美結局
幸福快樂的完美結局
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
 
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
 
Git and git hub
Git and git hubGit and git hub
Git and git hub
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
 
Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介
 
運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
 
電子內容管理 使用Git 與 github 1
電子內容管理   使用Git 與 github 1電子內容管理   使用Git 與 github 1
電子內容管理 使用Git 與 github 1
 
Yet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upYet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom up
 
Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
 

Andere mochten auch

Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式Bo-Yi Wu
 
Introduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript ConferenceIntroduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
 
Git Flow and JavaScript Coding Style
Git Flow and JavaScript Coding StyleGit Flow and JavaScript Coding Style
Git Flow and JavaScript Coding StyleBo-Yi Wu
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in phpBo-Yi Wu
 
Phpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniterPhpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniterBo-Yi Wu
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel frameworkBo-Yi Wu
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web frameworkBo-Yi Wu
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding styleBo-Yi Wu
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Bo-Yi Wu
 
Git 實務圖解
Git 實務圖解Git 實務圖解
Git 實務圖解Pokai Chang
 
How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsBo-Yi Wu
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniterBo-Yi Wu
 
2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy
2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy
2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxyBo-Yi Wu
 
You must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular LibraryYou must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular LibraryBo-Yi Wu
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xBo-Yi Wu
 
Automating your workflow with Gulp.js
Automating your workflow with Gulp.jsAutomating your workflow with Gulp.js
Automating your workflow with Gulp.jsBo-Yi Wu
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
Golang server design pattern
Golang server design patternGolang server design pattern
Golang server design pattern理 傅
 

Andere mochten auch (20)

Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
 
Introduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript ConferenceIntroduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript Conference
 
Git Flow and JavaScript Coding Style
Git Flow and JavaScript Coding StyleGit Flow and JavaScript Coding Style
Git Flow and JavaScript Coding Style
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in php
 
Phpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniterPhpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniter
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel framework
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
Git 實務圖解
Git 實務圖解Git 實務圖解
Git 實務圖解
 
How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjs
 
Mercurial 簡介
Mercurial 簡介Mercurial 簡介
Mercurial 簡介
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniter
 
2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy
2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy
2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy
 
You must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular LibraryYou must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular Library
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
 
Automating your workflow with Gulp.js
Automating your workflow with Gulp.jsAutomating your workflow with Gulp.js
Automating your workflow with Gulp.js
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Golang server design pattern
Golang server design patternGolang server design pattern
Golang server design pattern
 

Ähnlich wie Introduction to git

Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹PingLun Liao
 
Git使用入门
Git使用入门Git使用入门
Git使用入门dpf2e
 
Git &amp; git hub v1.2
Git &amp; git hub v1.2Git &amp; git hub v1.2
Git &amp; git hub v1.2Chris Chen
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)flylon
 
20170510 git 懶人包
20170510 git 懶人包20170510 git 懶人包
20170510 git 懶人包Chen-Ming Yang
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence TutorialHo Kim
 
First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgitRhythm Sun
 
Git初步入門
Git初步入門Git初步入門
Git初步入門recast203
 
Git内部培训文档
Git内部培训文档Git内部培训文档
Git内部培训文档superwen
 
Git+使用教程
Git+使用教程Git+使用教程
Git+使用教程gemron
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607Charles Tang
 
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Hsin-lin Cheng
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍medcl
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報Bachue Zhou
 

Ähnlich wie Introduction to git (20)

Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Git 教學
Git 教學Git 教學
Git 教學
 
Git使用入门
Git使用入门Git使用入门
Git使用入门
 
Git &amp; git hub v1.2
Git &amp; git hub v1.2Git &amp; git hub v1.2
Git &amp; git hub v1.2
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
 
20170510 git 懶人包
20170510 git 懶人包20170510 git 懶人包
20170510 git 懶人包
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
 
First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgit
 
Git初步入門
Git初步入門Git初步入門
Git初步入門
 
Git share
Git shareGit share
Git share
 
Git内部培训文档
Git内部培训文档Git内部培训文档
Git内部培训文档
 
Git+使用教程
Git+使用教程Git+使用教程
Git+使用教程
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
 
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)
 
20150313 ian git
20150313 ian git20150313 ian git
20150313 ian git
 
Git
GitGit
Git
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
 
Git 实战
Git 实战Git 实战
Git 实战
 

Mehr von Bo-Yi Wu

Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Bo-Yi Wu
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構Bo-Yi Wu
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in GolangBo-Yi Wu
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and PracticeBo-Yi Wu
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsBo-Yi Wu
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 FeatureBo-Yi Wu
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD PlatformBo-Yi Wu
 
GraphQL IN Golang
GraphQL IN GolangGraphQL IN Golang
GraphQL IN GolangBo-Yi Wu
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous IntegrationBo-Yi Wu
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in GoBo-Yi Wu
 
用 Go 語言 打造微服務架構
用 Go 語言打造微服務架構用 Go 語言打造微服務架構
用 Go 語言 打造微服務架構Bo-Yi Wu
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with DroneBo-Yi Wu
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務Bo-Yi Wu
 
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps BotBo-Yi Wu
 
A painless self-hosted Git service: Gitea
A painless self-hosted Git service: GiteaA painless self-hosted Git service: Gitea
A painless self-hosted Git service: GiteaBo-Yi Wu
 

Mehr von Bo-Yi Wu (15)

Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 Feature
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD Platform
 
GraphQL IN Golang
GraphQL IN GolangGraphQL IN Golang
GraphQL IN Golang
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in Go
 
用 Go 語言 打造微服務架構
用 Go 語言打造微服務架構用 Go 語言打造微服務架構
用 Go 語言 打造微服務架構
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with Drone
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
 
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
 
A painless self-hosted Git service: Gitea
A painless self-hosted Git service: GiteaA painless self-hosted Git service: Gitea
A painless self-hosted Git service: Gitea
 

Kürzlich hochgeladen

改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...黑客 接单【TG/微信qoqoqdqd】
 
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制radeybfgkf477
 
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制radeybfgkf477
 
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】黑客 接单【TG/微信qoqoqdqd】
 
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制gravestomas0
 
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...黑客 接单【TG/微信qoqoqdqd】
 
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...ggbob1
 
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...黑客 接单【TG/微信qoqoqdqd】
 
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制paulachevez2
 
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...黑客 接单【TG/微信qoqoqdqd】
 
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??testhelper Sobrenome
 
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務sardinesaying
 
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...黑客 接单【TG/微信qoqoqdqd】
 
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...ggbob1
 
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制paulachevez2
 
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptxDIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptxMartin M Flynn
 
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】黑客 接单【TG/微信qoqoqdqd】
 
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制paulachevez2
 
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制radeybfgkf477
 
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdfshanshanhui1
 

Kürzlich hochgeladen (20)

改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
 
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
 
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
 
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
 
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
 
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
 
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
 
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
 
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
 
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
 
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
 
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務
 
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
 
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
 
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
 
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptxDIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptx
 
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
 
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
 
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
 
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
 

Introduction to git

  • 1. 快速上手 Git 版本控制 Bo-Yi Wu appleboy AT gmail.com 2012.02.05
  • 2. 我是誰 ?  現任台灣 CodeIgniter 站長  現任 CodeIgniter User Guide 翻譯  About me:  部落格 : http://blog.wu-boy.com  Twitter: https://twitter.com/#!/appleboy  Plurk: http://www.plurk.com/appleboy46  Github: https://github.com/appleboy  About me: http://about.me/appleboy 2
  • 3. 上課內容有任何疑問 請馬上打斷 也許您的問題就是大家的問題 3
  • 4. 版本控制需求  版本控制三大好處  備份程式 ( 美工設計師可以儲存各版本圖片 )  控管進度 ( 團隊合作 )  任意復原 ( 改爛了沒關係 ) 4
  • 5. 版本控制分類  本地端版本控制 (Local Version Control)  集中式版本控制 (Centralized Version Control)  分散式版本控制 (Distributed Version Control) 5
  • 8. 分散式版本控制系統 (Git,Mercurial) 大家都是 Server 不必煩惱主機掛掉 8
  • 9. Git 設計目標  簡單快速 (Speed)  設計簡單 (Simple design)  動態線性開發 (non-linear development)  大家可以互相合併,不需要有固定主分支 (master)  無限制平行處理 ( 隨意開 branch)  完全分散式處理 (Fully distributed)  處理極大量資料 (Linux Kernel) 9
  • 10. Git Basics( 基礎介紹 )  直接記錄快照,而非比較差異  所有操作幾乎都在本機端執行 ( 分散式好處 )  不需要網路  大家都有備份  資料完整性  用 checksum SHA-1 hash 比對驗證檔案  檔案三種狀態  增加 staging 觀念 ( 後面會講解 ) 10
  • 11. 安裝 Git  Installing on Linux  yum install git-core  apt-get install git-core  http://help.github.com/linux-set-up-git/  Installing on Windows ( 小烏龜 )  Tortoisegit (Windwos Git GUI) 不推薦安裝  Msysgit (The official Git for Windows)  安裝步驟 http://help.github.com/win-set-up-git/ 11
  • 12. 動手操作  安裝步驟 http://help.github.com/win-set-up-git/  http://code.google.com/p/msysgit/downloads/list  請下載 Git-1.7.9-preview20120201.exe  設定 SSH Keys ( 參考上述文件操作 ) 12
  • 13. Git 初始化設定  個人設定檔  Linux: ~/.gitconfig  Windows: C:Documents and Settings$USER  設定個人資訊  git config --global user.name "Bo-Yi Wu"  git config --global user.email appleboy.tw@xxx.com  設定完成皆會寫到 .gitconfig 檔案 13
  • 14. 線上文件  透過三種方式查詢  git help config  git config help  man git-config 14
  • 15. 請先註冊 ( 擇一即可 ) https://github.com/ https://bitbucket.org/ 15
  • 16. Github 跟 Bitbucket 差異  Github  功能強大  私有 repository 需要收費  真正 Social Coding  許多 Open Source 專案都在此紮根 ...  Bitbucket  功能較少  私有 repository 完全免費 16
  • 18. 建立新的 Git Repository  任何目錄下執行  $ git init  初始化 github 或 bitbucket host 專案  Format: git clone [url]  $ git clone git://github.com/appleboy/test.git  $ git clone git://github.com/appleboy/test.git abc  專案底下會出現 .git 目錄  .git 目錄記載所有版本資訊 18
  • 19. git clone example $ git clone git://github.com/phpbb/phpbb3.git Cloning into phpbb3... remote: Counting objects: 108296, done. remote: Compressing objects: 100% (24699/24699), done. remote: Total 108296 (delta 74585), reused 105904 (delta 72611) Receiving objects: 100% (108296/108296), 23.78 MiB | 589 KiB/s, done. Resolving deltas: 100% (74585/74585), done. 19
  • 20. Git 四種 protocol  file://  本地端 (Local) 執行  git://  Read-Only access  https:// ssh://  Read+Write access  建議用此方法 ( 避開公司防火牆 ) 20
  • 21. 第一次 commit  新增一個檔案  $ touch README  把檔案加入專案  $ git add README  提交變更  $ git commit 21
  • 22. 檔案狀態 用 git status 檢查檔案狀態 22
  • 23. 檔案操作  untracked → staged (add the new file)  $ git add file_name  unmodified → modified (edit the file)  $ echo 'test' > file_name  modified → staged (stage the file)  $ git add file_name  staged → unmodified (commit)  $ git commit  unmodified → untracked (remove the file)  $ git rm file_name 23
  • 24. 忽略檔案 (Ignoring Files)  在專案目錄底下新增 .gitignore  任意正規寫法都可以  *.o ( 不把 .o 檔加入 repository)  !lib.o ( 除了 lib.o 之外,其餘都略過 ) 24
  • 25. 小技巧 ( 密碼檔案 )  可以新增 config.php.sample  略過 config.php  將 config.php 寫到 .gitignore 25
  • 26. 觀看檔案差異 (git diff)  觀看目前跟上一版本差異  $ git diff  觀看 stage 跟上一版本差異 ( 已經 git add 過 )  $ git diff --cached 26
  • 27. 更改檔名 (git mv)  $ git mv README.txt README  等同於  $ mv README.txt README  $ git rm README.txt  $ git add README 27
  • 28. 查看歷史紀錄 (git log)  列出修改檔案清單  $ git log --stat  $ git log --pretty=format:"%h - %an, %ar : %s" 28
  • 29. 小技巧 ( 改爛還原就好 )  staged → modified (stage 狀態還原到 unstage)  $ git reset HEAD <file>  modified → unmodified ( 改爛了沒關係 )  $ git checkout -- <file>  修改最後一次 commit log  $ git commit --amend 29
  • 30. 上傳到 Remote Server  預設 branch 叫 master  $ git branch -a  預設 remote 叫 origin  $ git remote -v 30
  • 31. 上傳到 github  新增遠端 Server  Format: git remote add [short_name] [url]  $ git remote add origin git@xxxxxxx  上傳變更檔案到 Server  Format: git push [short_name] [branch_name]  $ git push -u origin master 31
  • 32. 遠端更新及合併檔案  直接下載檔案  Format: git fetch [short_name]  $ git fetch origin  下載檔案並且 merge  $ git pull [short_name] [branch_name]  $ git pull origin master  git pull = git fetch + git merge  git fetch origin + git merge origin/master 32
  • 33. 如何使用標籤 (Tag)  列出既有標籤  $ git tag -l  新增標籤  $ git tag -a v1.4 -m 'my version 1.4'  $ git tag -a v1.4 9fceb02  上傳標籤  $ git push origin v1.4  $ git push origin --tags ( 上傳所有標籤 )  刪除標籤  $ git tag -d <tagname> 33  $ git push origin :refs/tags/v1.4
  • 35. 新增 branch 新增 iss53 branch 35
  • 36. Git branch 指令  新增 branch  $ git branch [branch_name]  $ git branch iss53  刪除 branch( 小心使用 )  $ git branch -d iss53  $ git branch -D iss53 ( 強制刪除 )  切換 branch  $ git checkout [branch_name]  $ git checkout -b [branch_name] ( 新增且切換 )  $ git checkout -b test 36  等同於 git branch test && git checkout test
  • 37. iss53 提交 commit $ vim index.html $ git commit -a -m 'new footer [issue 53]' 37
  • 38. 建立 hotfix 分支 $ git checkout -b 'hotfix' Switched to a new branch "hotfix" $ git commit -a -m 'fixed email address' 38
  • 39. 合併分支 master+hotfix $ git checkout master $ git merge hotfix $ git branch -d hotfix 39
  • 40. 管理 branch 架構  列出全部 branch  $ git branch -a  詳細列出 branch  $ git branch -v  列出已經 merge 的 branch  $ git branch --merged  列出尚未 merge 的 branch  $ git branch --no-merged 40
  • 41. 管理遠端 branch  上傳 branch  Format: git push origin [branch_name]  刪除 branch  Format: git push origin :[branch_name]  $ git push origin :hotfix 41
  • 42. Git branch 設計  主要分支  master 主程式 ( 除非重大 bug ,則會分出 hotfix 分支 )  develop 開發分支 ( 用來在另外分支出 Release, feature)  次要分支  Hotfixes( 由 master 分支,馬上修正 bug)  Feature( 由 develop 分支,開發新功能 )  Release( 由 develop 分支,開發下一版 release) 42
  • 44. 新分支 Feature branches  branch off from: develop  merge back into: develop  $ git checkout -b feature develop  $ edit …..  $ git commit -a -m ”....”  $ git checkout develop  $ git merge --no-ff feature  $ git branch -d myfeature  $ git push origin develop 44
  • 46. Release branches  $ git checkout -b release-1.3 develop  $ git commit -a -m "Update: release 1.3"  $ git checkout master  $ git merge --no-ff release-1.3  $ git tag -a v1.3 -m "Release v1.3 Tag"  $ git checkout develop  $ git merge --no-ff release-1.3  $ git push  $ git push origin v1.3 46  $ git branch -d release-1.3
  • 47. 重大 issue ( Hotfix branches )  branch off from: master  merge back into: develop and master $ git checkout -b hotfix-1.3.1 master $ git commit -a -m "Hotfix: release 1.3.1" $ git checkout master $ git merge --no-ff hotfix-1.3.1 $ git tag -a v1.3.1 -m "Hotfix v1.3.1 Tag" $ git checkout develop $ git merge --no-ff hotfix-1.3.1 $ git branch -d hotfix-1.3.1 $ git push $ git push origin v1.3.1 47
  • 48. Git Submodule 專案用到很多 Open Source (Blueprintcss, jQuery..) 48
  • 50. 建立 Git Submodule  $ git submodule add <repository> [<path>]  注意 path 部份,請勿先建立空目錄  $ git submodule add repository_url user_guide 50
  • 51. Git Submodule  git status 會發現多出兩個檔案  new file: .gitmodules  new file: user_guide  open .gitmodules 51
  • 52. Commit submodule 多出 git submodule 小圖示 52
  • 53. clone project with Git Submodule  $ git clone github_repository test  將 module 寫入 .git/config  $ git submodule init  下載 submodule 程式碼  $ git submodule update 53
  • 54. 更新已安裝 module  切換到 sub module 目錄  $ cd user_guide/  更新檔案  $ git pull origin master  回到專案目錄並且更新 submodule commit ID  $ cd /xxx/project  git commit -a -m ”update” && git push  檢查是否有相同的 commit ID  git submodule status 54
  • 55. 移除 Sub module  移除目錄  git rm --cached [ 目錄 ]  git rm [ 目錄 ]  修改 .gitmodules ,移除不需要的 module  修改 .git/config ,移除 submodule URL  執行 commit  git add . && git commit -m "Remove sub module"  最後 syn module 資料  git submodule sync 55
  • 56. 參考資料  Pro Git http://progit.org/book/  Git 文章系列 http://blog.wu-boy.com/tag/git/ 56