# 從代碼庫(暫存區中刪除文件)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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 [email protected]
.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. 分布式的代碼庫 - 僅供參考
創建上述.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 [email protected]
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