此篇文章主要針對有安裝 XCode 的 Mac 用戶。

Git

版本控管工具,作用類似 CVSSubversion(簡 稱SVN),好處在於 Git 不像 CVS 及 SVN 是屬於集中式的版本控管工具,它採用分散式版本庫,即便連不上server,仍可以執行commit、rollback (rebase)等動作。加上 Dropbox 幫我們做檔案同步與共享,不需架一台 Git Server 也可多人同時開發。

Git Workflow

與CVS, SVN不同的是,每次修改檔案後要上傳,都需要先 add ,之後才能commit。

寫給大家的Git教學:介紹git的源由、觀念及相關指令,想要對git有深入的瞭解可參考此份slide!

Dropbox

透過雲端儲存實現網際網路上的檔案同步,使用者可以儲存並共享檔案和資料夾。Dropbox for Mac 安裝網址

共享專案方式為登入Dropbox,點選到該專案資料夾下,再點擊共享文件夾選項

之後輸入要共享對象的dropbox帳號(email)即可。
被共享的對象會收到Dropbox寄的一封email:

需開此email並點擊相關link,才能完成共享動作。

SourceTree

透過 GUI 介面操作,省去輸入繁瑣的 git 指令。

建立 Dropbox 的 Repository

裝完Dropbox for Mac後,在使用者帳號會有一個Dropbox資料夾,此資料夾下的檔案都會自動同步到雲端儲存空間。以下commad請在終端機執行:

  1. 建立 Git 使用的 repository (資料夾名稱不一定要命名為repository),若已有則略過mkdir repository此步驟:

    cd ~/Dropbox -> 切換至Dropbox資料夾
    mkdir repository -> 建立repository資料夾
    cd repository
    mkdir ${PROJECT}.git -> 建立project的git資料夾,${PROJECT}輸入專案名稱。
    cd ${PROJECT}.git
    git --bare init -> 將該資料夾初始化為git repository,即是git server端的資料,不存放原始檔案。
    若出現git command not found則表示該電腦未安裝git command。可到Xcode的menu選Preferences,在Downloads那一頁的Components,Install 'Command Line Tools',裝完應該就可以使用git command了。

  2. 新增 .gitignore 檔案(不執行版本控管的檔案)

    先切換到專案路徑下 (2,3,4,5 都在原專案目錄下執行)
    vi .gitignore -> 使用vi建立 .gitignore 檔案
    將以下的檔案清單copy paste到vi畫面中(paste前記得先按i進入編輯模式),結束按:wq再Enter即可。

    #for Xcode
    build/*
    *.pbxuser
    !default.pbxuser
    *.mode1v3
    !default.mode1v3
    *.mode2v3
    !default.mode2v3
    *.perspectivev3
    !default.perspectivev3
    *.xcworkspace
    !default.xcworkspace
    xcuserdata
    profile
    *.moved-aside
    *.pyc
    *~.nib/
    *.perspective
    .DS_Store
  3. 將原專案commit

    git init -> 初始專案
    git add . -> 加入目前資料夾(含子資料夾)的所有檔案
    git commit -m 'initial version' -> 提交目前程式至local端的repository,' '括起來的為此次commit的註解。

  4. 建立Git Server link

    git remote add dropbox file:///Users/${USER}/Dropbox/repository/${PROJECT_NAME}.git
    ${USER} 為Mac登入的帳號名稱,即終端機$前面到空白的這一段文字。
    ${PROJECT_NAME} 請填入專案名稱。
    git push dropbox master -> 將目前專案上傳至Dropbox資料夾
    若是push出現fatal error,可編輯.git/config該檔案,檢視remote的url是否有key錯。

  5. setup configuration

    git config branch.master.remote dropbox -> 設定主要分支的server名為dropbox
    git config branch.master.merge master -> 設定merger後的分支為master

取得他人在Dropbox分享的專案

此command只需執行一次即可,之後透過SourceTree進行commit, push, merge等動作。
先切到要置放此專案的目錄下,之後執行:

git clone -o dropbox file:///Users/${USER}/Dropbox/${PROJECT_NAME}.git

他人共享的資料夾,預設會放在Dropbox目錄下,因為不需進到/Dropbox/repository/目錄。
clone 完成後,即可用Xcode開啟該project了。

SourceTree 操作簡介

    • 設定user資料
      啟動SourceTree後,在Menu的SourceTree->Preferences->General,勾選'Allow
      SourceTree to modify your global …',並在Full Name及Email
      Address輸入資料,這樣在SourceTree上面就可看到commit的人是誰了。

    • 新增Project
      回到Bookmarks視窗,點選最左邊的Add Repository


      在project已存在的狀況下(自己建的project或是從Dropbox clone別人分享的project),選擇Add Working Copy


      選取project存在路徑,按Add即可。

    • SourceTree 功具列

      • Commit
        程式修改完畢,並Add完異動檔案後,commit 到 local repository。
      • Checkout
        從commit history中checkout特定的commit點的程式。
      • Reset
        將有異動的檔案回覆到之前的狀態(新增的檔案無法reset),可選擇單一檔案或全部有異動的檔案。
      • Stash
        隱藏所有的異動,並回覆到前一次的版本。stash之後,可在左側的STASHES欄位看到各個異動檔案diff的狀態。
      • Add
        將有異動及新增的檔案放到index區,準備commit。
      • Remove
        刪除檔案,並不再traking該檔案。
      • Add/Remove
        刪除不是透過Git Remove掉的已被刪除的檔案,並新增異動檔案到index區。
      • Fetch
        到remote端(若是用Dropbox,則是與Dropbox的檔案進行同步)抓取別人commit的檔案,並放在local端的repository。有時別人已push到Dropbox,但SourceTree的Pull卻未顯示,這時點按Fetch就對了。
      • Pull
        從remote端抓取更新檔(目前的檔案都必需是commit的狀態才能執行)。
      • Push
        將local端commit好的檔案傳送到remote端。
      • Tag
        將某一個已commit的狀態設定別名,如(上線版_1.0),**tag 名稱不能有空白**!
      • Terminal
        開啟終端機,並切換到該專案目錄下。

使用 Git + Dropbox + SourceTree 做 Source Code Management的更多相关文章

  1. Jekens Source Code Management None 源码管理没有Git

    jekens安装完成后,在配置中Source Code Management没有Git的选项,只有none,搞了大半天,一直安装插件报错,网上找的各种文章均未能解决我的问题,多次尝试后终于解决了这个问 ...

  2. Tips for newbie to read source code

    This post is first posted on my WeChat public account: GeekArtT Reading source code is always one bi ...

  3. akka cluster sharding source code 学习 (1/5) 替身模式

    为了使一个项目支持集群,自己学习使用了 akka cluster 并在项目中实施了,从此,生活就变得有些痛苦.再配上 apache 做反向代理和负载均衡,debug 起来不要太酸爽.直到现在,我还对 ...

  4. Memcached source code analysis (threading model)--reference

    Look under the start memcahced threading process memcached multi-threaded mainly by instantiating mu ...

  5. Top free and open source log management software

    As mentioned in the previous post, in my quest to find an alternative to Kiwi Syslog, I looked at a ...

  6. Android Branch and master source code merge(patch)

    Environment : Android 4.4.2 merge with Android 4.4.3(with other vendors source code) 1.确定你要merge 到 其 ...

  7. [Jenkins][git]构建时提示Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git reset --hard" returned status code 128:

    --------------------- 如需转载,转载请注明出处. --------------------- 今日发现所有IOS构建相关的job全部失败,并提示如下错误: ERROR: Erro ...

  8. HashMap source code view(1)

    前言 HashMap source code view 类注释 Hash table based implementation of the Map interface. This implement ...

  9. Eclipse Error: The refactoring does not change any source code

    最近在做android项目的过程中遇到这样一个问题,新增一个activity的时候添加不成,eclipse提示The refactoring does not change any source co ...

随机推荐

  1. 导出Excel插件——Export-CSV ---20150610

    出处:http://bbs.hcharts.cn/thread-99-1-1.html   导出Excel插件——Export-CSV 一.插件信息 插件名:Export-CSV(导出Execl文件) ...

  2. Fortran学习笔记5(数组Array)

    数组的声明方式 一维数组 二维数组 多维数组 数组索引值的改变 自定义类型的数组定义 对数组内容的设置 利用隐含式循环设置数组初值 对整个数组操作 对部分数组的操作 where函数 Forall函数 ...

  3. mysqldump指令说明

    3种形式mysqldump [OPTIONS] database [tables]mysqldump [OPTIONS] -B | --databases [OPTIONS] DB1 [DB2 DB3 ...

  4. (转)TDD的iOS开发初步以及Kiwi使用入门

    本文转自“瞄神”博客 TDD的iOS开发初步以及Kiwi使用入门 测试驱动开发(Test Driven Development,以下简称TDD)是保证代码质量的不二法则,也是先进程序开发的共识.App ...

  5. gnu printf可变参数宏

    可变参数的宏 标准C只支持可变参数的函数,意味着函数的参数可以是不固定的 例如printf()函数的原型是int printf(const char *format [,argument]...) 而 ...

  6. DocView mode 2 -- 快捷键

    ** 启动 C-c C-c    切换DocView和文件内容显示 M-x doc-view-mode    启动主模式 M-x doc-view-minor-mode    启动辅模式 k    k ...

  7. 关于网络IP地址的分类

    一.IP地址的分类 众所周知,IP地址都是以点号.分为4段来表示.不同类的IP前几位的表示含义也不尽相同. 1.A类IP [网络地址] 第一位表示网络地址,且第一个字节的第一位必须以0开头.依据此原则 ...

  8. 【01】webpack的安装过程截图

    [05](moyu:最好安装在C盘.默认的安装地址.) []全局安装 01,首先要安装Node.js, Node.js 自带了软件包管理器 npm. 02,Webpack 需要 Node.js v0. ...

  9. 编辑器sublime(转)摘自网络

    一.下载和安装 Sublime Text2是一款开源的软件,不需要注册即可使用(虽然没有注册会有弹窗,但是基本不影响使用). 下载地址:http://www.sublimetext.com/,请自行根 ...

  10. 大数据学习——kafka+storm+hdfs整合

    1 需求 kafka,storm,hdfs整合是流式数据常用的一套框架组合,现在 根据需求使用代码实现该需求 需求:应用所学技术实现,kafka接收随机句子,对接到storm中:使用storm集群统计 ...