2012年5月23日 星期三

git版本管理步驟教學(一)

.本地端

1.建立資料庫
   git init

2.加入檔案參照
   git add .
   若中途刪除檔案,要將先前被追蹤的被刪除之檔案提交出去
   git add -u

3.將所有修改過得檔案都提交
   git commit -a -m ''

4.建立分支
   git branch 分支名稱 
   
   命名分支
   git branch -m 舊名稱 新名稱

   刪除分支
   git branch -d/-D 分支名稱

   產生新的 branch, 並同時切換過去 new-branch
   git checkout -b new-branch test

5.取消對檔案的修改
   git checkout -- Makefile

6.退至staging Area,重新提交 Commit
   git reset --soft HEAD^

6-1.修改某一次commit
git rebase -i [SHA碼]
reword 1c42c3d Test02 新增test 03拷貝檔案(Fix3)
*:wq 保存且退出

修改commit message再按:wq

7.強制恢復到上一版本
git reset --hard HEAD
最後三個版本 (HEAD, HEAD^, and HEAD~2)

8.將不想被參照的檔案去除

git rm WebKeyScan.xcodeproj/project.xcworkspace/xcuserdata/Apple.xcuserdatad/UserInterfaceState.xcuserstate

git rm -f iphone/Barcodes/WebKeyScan.xcodeproj/xcuserdata/Apple.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist

9.標籤tag
$ git tag -a v1.4 -m 'my version 1.4'

搜尋tag
$ git tag -l 'v1.4.2.*'

10.merge(合併)
git merge [branch name]

git reset --hard ORIG_HEAD /* 取消合併 */


.伺服端
1.必須先在遠端伺服器新增遠端資料庫
   git init --bare

2. 進入你專案所在的Repo目錄
git remote add selab psyche8051selab-nkfust.dyndns.org:/home/psyche8051/walton/WebKeyScan

3.接著要把你專案資料庫的進度放進遠端資料庫中,供其他人取用,所以要在專案資料庫目錄執行Push的指令
git push selab master

PS1: 因為要git clone的話,必須push master分支

PS2: 建立git的群組:
因為我放在/home底下,這邊要root權限,當你用你的帳號push東西上去時,會爆權限不足。但是把他改成權限全開的話(chmod 777 ...)又很危險。所以我開一個git的群組,讓會傳東西的人加到這個群組。

sudo groupadd git
sudo usermod -a -G git your_login # your_login改成你自己的帳號。
# 下面這兩行,在每次新增新project時要對新的資料夾補做
sudo chgrp -R git /home/gitRepository/Project/iOS/MySkyBox
sudo chmod g+rwx -R /home/gitRepository/Project/iOS/MySkyBox

4.如果push有成功,你在遠端Repo (dropbox目錄裡的OurProject目錄) 看不到你的程式檔案(剛剛有提過),要確定是不是真的有push進最新進度,我們需要再Pull回來看看,看現在遠端Repo裡是不是最新進度:
git pull selab master

5.複製整個專案
git clone psyche8051selab-nkfust.dyndns.org:/home/psyche8051/walton/WebKeyScan

.xcode git
使用sudo權限執行合併或是切換分支,檔案會被鎖住


沒有留言:

張貼留言