• 使用 Git + Dropbox + SourceTree 做 Source Code Management


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

    Git

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

    Git Workflow

    Git Workflow

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

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

    Dropbox

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

    共享專案方式為登入Dropbox,點選到該專案資料夾下,再點擊共享文件夾選項
    ShareFolder
    之後輸入要共享對象的dropbox帳號(email)即可。
    被共享的對象會收到Dropbox寄的一封email:
    open_share_link2.png
    需開此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的人是誰了。

        Setting User's email

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

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

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

      • SourceTree 功具列
        toolbar

        • 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 開啟終端機,並切換到該專案目錄下。
  • 相关阅读:
    SelectorQuery wx.createSelectorQuery()
    JavaScript获取服务器端时间的方法
    linux ftp 文件修改时间 ModifiedDate 与本地相差 8小时
    申请域名SSL证书-域名验证配置指南
    Python之pygame,从入门到精通(一)
    Anaconda介绍、安装及使用教程
    Git安装及控制台美化
    Redis Desktop Manager的下载及安装
    redis 访问 database
    Redis消息队列
  • 原文地址:https://www.cnblogs.com/lisa090818/p/3556252.html
Copyright © 2020-2023  润新知