狠狠撸

狠狠撸Share a Scribd company logo
版本控制
大綱
何謂版本控制

為何要使用版本控制

版本控制的方式

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 (完全清除)
版本控制

More Related Content

版本控制