ios xocde git使用
02. GIT命令列協助
================================================================================
$ svn help
查看svn所有命令的協助
$ svn help 子命令
# 要退出協助資訊,按"q"
# 翻看下頁,按"空格"
# 翻看上頁,按"CTRL+B"
# 要搜尋相關文字,按"/"然後輸入"相關文字"
03. 建立程式碼程式庫 & 配置個人資訊
================================================================================
1> 建立代碼倉庫
$ git init
2> 配置使用者名稱和郵箱
$ git config user.name aa
$ git config user.email aa@gmail.com
* 以上兩個命令會將使用者資訊儲存在當前代碼倉庫中
# 只有配置了使用者和郵箱之後,git才能識別出操作的人員資訊,通過鉤子(hooks)程式可以設定一些動作
# 例如單元測試發現問題後,自動給相關人員寄送電子郵件
3> 如果要一次性配置完成可以使用一下命令
$ git config --global user.name aa
$ git config --global user.email aa@gmail.com
* 以上兩個命令會將使用者資訊儲存在使用者目錄下的 .gitconfig 檔案中
4> 查看當前所有配置
$ git config -l
04. 實際開發
================================================================================
1> 建立代碼,開始開發
$ touch main.c
$ open main.c
2> 將代碼添加到程式碼程式庫
# 查看當前程式碼程式庫狀態
$ git status
# 將檔案添加到程式碼程式庫
$ git add main.c
# 將修改提交到程式碼程式庫
$ git commit -m "添加了main.c"
提示:
* 在此一定要使用 -m 參數指定修改的備忘資訊
* 否則會進入 vim 編輯器,如果對vim不熟悉,會是很糟糕的事情
# 將當前檔案夾下的所有建立或修改的檔案一次性添加到程式碼程式庫
$ git add .
3> 添加多個檔案
$ touch Person.h Person.m
$ git add .
$ git commit -m "添加了Person類"
$ open Person.h
$ git add .
$ git commit -m "增加Person類屬性"
* 注意 使用git時,每一次修改都需要添加再提交,這一點是與svn不一樣的
git 的重要概念及工作原理
--------------------------------------------------------------------------------
工作區
暫存區(staged)
分支(HEAD)
05. 別名 & 日誌
================================================================================
$ git config alias.st status
$ git config alias.ci "commit -m"
個人建議:除非特殊原因,最好不要設定別名,否則換一台機器就不會用了
# 查看所有版本庫日誌
$ git log
# 查看指定檔案的版本庫日誌
$ git log 檔案名稱
# 配置帶顏色的log別名
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
提示:在git中,版本號碼是一個由SHA1產生的雜湊值
06. 版本號碼,讓我們在任意版本之間穿梭
================================================================================
# 回到目前的版本,放棄所有沒有提交的修改
$ git reset --hard HEAD
# 回到上一個版本
$ git reset --hard HEAD^
# 回到之前第3個修訂版本
$ git reset --hard HEAD~(3)
# 回到指定版本號碼的版本
$ git reset e695b67
# 查看分支引用記錄
$ git reflog
07. 單個檔案的修改管理
================================================================================
# 查看檔案變化
$ git diff
# 撤銷對檔案做的修改
$ git checkout Person.h
# 從程式碼程式庫(暫存區中刪除檔案)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
01. 建立代碼倉庫(專門用於團隊開發的代碼倉庫)
================================================================================
# 切換目錄
$ cd /Users/aa/Desktop/git演練/公司/weibo
# 建立空白程式碼程式庫(專門用於團隊開發)
$ git init --bare
02. 專案經理準備項目(前奏)
================================================================================
# 切換目錄
$ cd /Users/aa/Desktop/git演練/經理
# "複製"程式碼程式庫到本地
$ git clone /Users/aa/Desktop/git演練/公司/weibo/
# 個人資訊配置(因為要示範一台機器上的多人協作,日常開發可以忽略)
$ git config user.name manager
$ git config user.email manager@163.com
.gitignore
--------------------------------------------------------------------------------
.gitignore可以指定哪些檔案不納入版本庫的管理
參考網址:https://github.com/github/gitignore
# 命令列中進入與.git同級的目錄
$ cd /Users/aa/Desktop/git演練/經理/weibo
將以下命令一次性粘貼到命令列中
--------------------------------------------------------------------------------
echo -e "# Xcode
#
build/
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/" > .gitignore
--------------------------------------------------------------------------------
# 將.gitignore添加到程式碼程式庫
$ git add .gitignore
03. 建立項目
================================================================================
提交同時"push"到遠程代碼倉庫
04. 新人加入
================================================================================
05. 分布式的程式碼程式庫 - 僅供參考
================================================================================
由於git是分布式的,任何一台電腦上都保留有完整的程式碼程式庫的內容,因此可以把團隊開發的程式碼程式庫放在任何位置
多個遠程程式碼程式庫之間的同步演練"提示,此演練僅供瞭解,具體的使用,需要一定的團隊規模之後,才能夠體會"
06. 分支管理 - Tag
================================================================================
# 查看當前標籤
$ git tag
# 在本地程式碼程式庫給項目打上一個標籤
$ git tag -a v1.0 -m 'Version 1.0'
# 將標籤添推送到遠程程式碼程式庫中
$ git push origin v1.0
# 使用tag,就能夠將項目快速切換到某一個中間狀態,例如產品開發線上的某一個穩定版本
# 簽出v1.0標籤
$ git checkout v1.0
# 從簽出狀態建立v1.0bugfix分支
$ git checkout -b bugfix1.0
# 查看遠程分支
$ git branch -r
# 刪除遠程分支
$ git branch -r -d origin/bugfix1.0
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
01. 分布式的程式碼程式庫 - 僅供參考
================================================================================
由於git是分布式的,任何一台電腦上都保留有完整的程式碼程式庫的內容,因此可以把團隊開發的程式碼程式庫放在任何位置
多個遠程程式碼程式庫之間的同步演練"提示,此演練僅供瞭解,具體的使用,需要一定的團隊規模之後,才能夠體會"
02. 分支管理 - Tag
================================================================================
# 查看當前標籤
$ git tag
# 在本地程式碼程式庫給項目打上一個標籤
$ git tag -a v1.0 -m 'Version 1.0'
# 將標籤添推送到遠程程式碼程式庫中
$ git push origin v1.0
# 使用tag,就能夠將項目快速切換到某一個中間狀態,例如產品開發線上的某一個穩定版本
# 簽出v1.0標籤
$ git checkout v1.0
# 從簽出狀態建立v1.0bugfix分支
$ git checkout -b bugfix1.0
# 查看遠程分支
$ git branch -r
# 刪除遠程分支
$ git branch -r -d origin/bugfix1.0
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
將Xcode項目與GITHUB串連的操作步驟
cd ~/.ssh
# 產生rsa密鑰,密鑰秘鑰:123456
ssh-keygen -t rsa -C "xxx@gmail.com”
# 將密鑰檔案複製到剪貼簿
pbcopy < ~/.ssh/myname_rsakey.pub
# 進入github,設定ssh密鑰
# 1. Edit Profile
# 2. SSH Keys
# 3. Add SSH Key
# 4. 將剛剛複製的Key粘貼,然後提交
# 添加rsa密鑰
ssh-add myname_rsakey
# 測試github串連
ssh -T git@github.com
# 關聯項目
cd 專案檔夾/
# 為當前檔案夾初始化git
git init
# 添加遠程伺服器
git remote add origin git@github.com:liufan321/HelloWorldDemo.git
# 從伺服器拉項目
git pull -u origin master
# 將項目內容推送到伺服器
git push -u origin master
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. git init --bare shared.git
建立空的版本庫
2. git clone ~/Desktop/gitdemo/repository/shared.git/
從版本庫將程式碼複製品到工作目錄
3. git add .
將所有修改過的檔案添加到暫存區
4. git commit -m "修改的資訊"
將檔案提交到本地代碼倉庫
5. git push origin master
將本地代碼倉庫中的修改推送到遠程(origin)代碼倉庫的master分支
6. git pull
從遠程代碼倉庫將最新的內容拉到本地程式碼程式庫
7. git status
查看本地代碼倉庫的檔案狀態
*** 要在Xcode中要使用.git進行團隊開發必須設定.gitignore檔案
說明:.gitignore檔案用於指定在提交檔案是忽略哪些檔案或檔案夾
具體操作步驟如下:
1>
# 從緩衝區中刪除UserInterfaceState.xcuserstate檔案
git rm --cached MyDemo/MyDemo.xcodeproj/project.xcworkspace/xcuserdata/aplle.xcuserdatad/UserInterfaceState.xcuserstate
或者
# 強制移除UserInterfaceState.xcuserstate檔案
git rm -f MyDemo/MyDemo.xcodeproj/project.xcworkspace/xcuserdata/aplle.xcuserdatad/UserInterfaceState.xcuserstate
2> vim .gitignore
並粘貼
project.xcworkspace
:wq儲存退出
建立上述.gitignore檔案後會忽略project.xcworkspace目錄中的所有檔案,包括介面記錄、斷點記錄等資訊
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GIT 分支演練筆記
1. 建立空程式碼程式庫,程式碼程式庫的名稱為 shared.git
================================================================================
git init --bare shared.git
2. 準備代碼
================================================================================
1> 複製程式碼程式庫
git clone ~/Desktop/gitdemo/repository/shared.git/
2> 配置當前程式碼程式庫的使用者資訊(如果已經配置過全域使用者屬性,此步驟可以忽略)
# 進入shared工作目錄
cd shared
# 配置使用者名稱
git config user.name manager
# 配置使用者郵箱
git config user.email manger@163.com
3> 開啟Xcode建立項目並儲存在shared目錄中
4> 忽略不必要的使用者資料檔案
# 查看目前狀態,以便選擇使用者檔案
git stauts
# 具體的目錄名稱根據項目所在位置決定,需要注意末尾的檔案名稱是:UserInterfaceState.xcuserstate
git rm -f IWeibo/IWeibo.xcodeproj/project.xcworkspace/xcuserdata/liufan.xcuserdatad/UserInterfaceState.xcuserstate
# 產生.gitignore檔案
echo "project.xcworkspace" > .gitignore
# 將.gitignore檔案添加到暫存區
git add .
# 將所有修改提交到本地程式碼程式庫
git commit -m "new project"
5> 用Xcode開啟項目,調整代碼,並將調整後的代碼,提交到本地程式碼程式庫
說明,如果勾選“Push To Remote”,點擊Commit按鈕時會執行以下三個操作
(1) 將修改後的檔案添加到暫存區
(2) 將暫存區中的檔案提交到本地程式碼程式庫
(3) 將本地程式碼程式庫的內容提交到遠程程式碼程式庫
6> 在Xcode中,建立developer分支,供開發時使用
注意:建立分支之後,需要使用push功能,將改分支推送到遠程程式碼程式庫,否則該分支只能在使用者本地可見
3. V1.0開發
================================================================================
1> User01在developer分支上開發並提交代碼
2> 當V1.0開發完成後,經理將developer分支上的代碼合并到master分支上
3> 經理切換回master分支,並在命令列中增加標籤
# 在目前時間點增加v1.0的標籤
git tag -a v1.0 -m "Version 1.0"
# 將v1.0的標籤推送到遠程程式碼程式庫
git push origin v1.0
# 查看本地標籤
git tag
# 查看本地分支
git branch
# 查看所有分支
git branch -a
4> 經理將當前v1.0版本進行發布
4. V2.0開發中的修改V1.0的Bug
================================================================================
1> 經理在master分支中建立v1.0bugfix分支,並通知User01進行修改
2> 正在開發中的User01接收到修複Bug的工作命令後,停止手頭工作,並將當前代碼提交至伺服器
3> 直接切換到v1.0bugfix分支,對V1.0的bug進行修訂,修改完成後,提交代碼
4> 經理審核代碼通過後,將修改後的代碼整合到master主線上
5> 經理增加v1.1的標籤
# 在目前時間點增加v1.0的標籤
git tag -a v1.1 -m "Version 1.0"
# 將v1.0的標籤推送到遠程程式碼程式庫
git push origin v1.1
# 刪除遠程分支
git push origin --delete V1.0bug_fix
6> User01將修改後的代碼整合到developer主線上,並且開始後續工作
5. Tag的作用
================================================================================
在GIT中,可以在任意需要的時間點,在分支上打上標籤,而在其他任何需要的時候,將代碼切換回該時間點的狀態
# 簽出v1.0標籤
git checkout v1.0
# 將該標籤時刻的代碼建立一個分支
git checkout -b v1.0branch
# 刪除遠程標籤
git push origin --delete tag
# 刪除本地標籤
git tag -d