SlideShare uma empresa Scribd logo
1 de 23
大綱
何謂版本控制

為何要使用版本控制

版本控制的方式

git 版本控制

git 練習
何謂版本控制
參考網址:wiki 版本控制

 Version Control System

 透過文檔控制,能記錄任何專案內各個文件的改動歷
 程,並為每次改動編上序號。

 最簡單的例子是,最初的版本指定為「1」,當做了
 改變之後,版本編號增加為「2」。
為何要使用版本控制
版本控制能提供專案的設計者,將設計回復到之前任
一狀態的選擇權,這種選擇權在設計過程進入死胡同
時特別重要。
版本控制的方式
copy,並且給予編號。

中央式系統
 所有版本控制的工作在一個伺服器進行,由中央權威管理存取權限
 「鎖上」檔案庫中的檔案,一次只讓一個開發者工作。

分散式系統
 開發者直接在各自的在地檔案庫工作,並容許多個開發者同時更
 動同一檔案,而各個檔案庫有另一個合併各個改變的功能。
術語
CVCS & DVCS
 git 是DVCS
版本庫(Repository)
 存儲檔案的新版本還有歷史資料的地方。
提交(Commit)
 將修改送回檔案庫。
Local Development
 集中式的VCS系統,沒網路就不能開發。
  無法Commit。
  無法看History Log。
 咖啡店沒有網路的時候。

 分散式的VCS系統,沒網路照常開發。
git版本控制
參考來源:wiki git

 git 來源

 git服務

 初始設定

 常用指令
git 來源
 git 是一個由Linux Torvalds為了更好地管理Linux核心
 開發而創立的。
 git 與常用的版本控制工具 CVS, Subversion 等不同,
 它採用了分散式版本庫的方式,不必伺服器端軟體支
 持,使原始碼的發布和交流極其方便。
 git 的速度很快,git 最為出色的是它的合併跟蹤
 (merge tracing)能力。
git 特點
 hooks 存儲鉤子的文件夾
 logs 存儲日誌的文件夾
 refs 存儲指向各個分支的指針(SHA-1標識)文件
 objects 存放git對象
 config 存放各種設置文檔
 HEAD 指向當前所在分支的指針文件路徑,一般指向refs下
 的某文件
git way
 利用metadata,建構出snapshots。

 相同內容只有一份。
git 三種區域
Working tree   Working       Staging
                                          Repository
                tree          area
Staging area
                         Checkout the Project
Repository
                   Stage Files


                                    Commit
Git Repository服務
                                                  免費的
    服務商           空間        公開原始碼
                                                  私人空間
                                            unlimited projects, up
 GitEnterprise    1G           NO
                                                 to 10 users

  repo.or.cz      400M         YES                   NO

bettercodes.org   2G           YES                  YES

    GitHub        300M         YES                   NO

   Codesion       200M         YES               1 user only

   Codaset        500M         YES                   NO

                                                 1 project, 2
  Codebase        20M    No public access
                                                collaborators
                                                 1 project, 2
   Unfuddle       200M         YES
                                                collaborators
git init
 ssh-keygen –t rsa –C “Your email”

 確認SSH Keys

 設定Public SSH Key

 git config –global user.name “Your Name”

 git config –global user.email “Your email”
建立Repository
 新增Repository

 建立Remote

 建立.gitignore
  .gitignore 大集
  https://github.com/github/gitignore
git 路徑
 SSH --安全性最佳

 HTTP/HTTPS --速度最差,但能突破防火牆限制

 git protocol –速度快,但缺乏認證機制

 File本機目錄
git add
 git add .

 git add’modified file’

 git rm

 git mv
git commit
 git staus

 git commit –m ‘commit note’

 git diff
git push
 git push

 git push –u origin master

 git commit –a –m ‘commit note’
git branch
 git clone

 git branch „New Branch‟

 git checkout
git merge
 git checkout master

 git merge new_feature
git reset
 git reset e37c75787

 git reset HEAD^ --hard (完全清除)
版本控制

Mais conteúdo relacionado

Mais procurados

Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹PingLun Liao
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹Max Ma
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to gitBo-Yi Wu
 
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Hsin-lin Cheng
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTreeChu-Siang Lai
 
Python meetup 1
Python meetup 1Python meetup 1
Python meetup 1Vic Yang
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略Lucien Lee
 
Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學芳本 林
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學Duncan Chen
 
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 使用介绍medcl
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshellNelson Tai
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學littlebtc
 
Git & Sourcetree 介紹
Git & Sourcetree 介紹Git & Sourcetree 介紹
Git & Sourcetree 介紹Adison wu
 
Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理彼得潘 Pan
 
Bootstrap個人網站 20141117
Bootstrap個人網站 20141117Bootstrap個人網站 20141117
Bootstrap個人網站 20141117均民 戴
 
First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgitRhythm Sun
 

Mais procurados (20)

Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git Tutorial 教學
Git Tutorial 教學Git Tutorial 教學
Git Tutorial 教學
 
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
 
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
 
Python meetup 1
Python meetup 1Python meetup 1
Python meetup 1
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略
 
Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
 
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 教學)
 
20150313 ian git
20150313 ian git20150313 ian git
20150313 ian git
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
Git & Sourcetree 介紹
Git & Sourcetree 介紹Git & Sourcetree 介紹
Git & Sourcetree 介紹
 
Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理
 
Bootstrap個人網站 20141117
Bootstrap個人網站 20141117Bootstrap個人網站 20141117
Bootstrap個人網站 20141117
 
First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgit
 

Destaque

Destaque (8)

This is Mesmira
This is MesmiraThis is Mesmira
This is Mesmira
 
PACT - Corporate Introduction
PACT - Corporate IntroductionPACT - Corporate Introduction
PACT - Corporate Introduction
 
Go with the flows abbreviated version
Go with the flows abbreviated versionGo with the flows abbreviated version
Go with the flows abbreviated version
 
Who is it
Who is itWho is it
Who is it
 
Rehearsal dinner slideshow
Rehearsal dinner slideshowRehearsal dinner slideshow
Rehearsal dinner slideshow
 
10 raons per caminar per l'Alzheimer
10 raons per caminar per l'Alzheimer10 raons per caminar per l'Alzheimer
10 raons per caminar per l'Alzheimer
 
Mca sem1syll
Mca sem1syllMca sem1syll
Mca sem1syll
 
第一次讀書會
第一次讀書會第一次讀書會
第一次讀書會
 

Semelhante a 版本控制

Git and git hub
Git and git hubGit and git hub
Git and git hub唯 李
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Wen-Tien Chang
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607Charles Tang
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)flylon
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報Bachue Zhou
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer TalkLarry Cai
 
Git使用入门
Git使用入门Git使用入门
Git使用入门dpf2e
 
Git & git hub v1.2
Git & git hub v1.2Git & git hub v1.2
Git & git hub v1.2Chris Chen
 
Github in xcode
Github in xcodeGithub in xcode
Github in xcode郁凱 曾
 
代码版本控制那点事
代码版本控制那点事代码版本控制那点事
代码版本控制那点事利鹏 宋
 
Learn git
Learn gitLearn git
Learn git甘 李
 
Github简介及实用入门
Github简介及实用入门Github简介及实用入门
Github简介及实用入门Rongxing Liu
 
Git & git flow
Git & git flowGit & git flow
Git & git flowAmo Wu
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用Philip Zheng
 
Git+使用教程
Git+使用教程Git+使用教程
Git+使用教程gemron
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence TutorialHo Kim
 
20170510 git 懶人包
20170510 git 懶人包20170510 git 懶人包
20170510 git 懶人包Chen-Ming Yang
 

Semelhante a 版本控制 (20)

Git and git hub
Git and git hubGit and git hub
Git and git hub
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
Git使用入门
Git使用入门Git使用入门
Git使用入门
 
Git & git hub v1.2
Git & git hub v1.2Git & git hub v1.2
Git & git hub v1.2
 
Github in xcode
Github in xcodeGithub in xcode
Github in xcode
 
代码版本控制那点事
代码版本控制那点事代码版本控制那点事
代码版本控制那点事
 
Learn git
Learn gitLearn git
Learn git
 
Github简介及实用入门
Github简介及实用入门Github简介及实用入门
Github简介及实用入门
 
Git & git flow
Git & git flowGit & git flow
Git & git flow
 
Github簡介
Github簡介Github簡介
Github簡介
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
 
Git 教學
Git 教學Git 教學
Git 教學
 
Git+使用教程
Git+使用教程Git+使用教程
Git+使用教程
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
 
20170510 git 懶人包
20170510 git 懶人包20170510 git 懶人包
20170510 git 懶人包
 

版本控制