1 SVN
集中式版本控制工具:
2 git
開(kāi)源的分布式版本控制工具,git提交時(shí)可以在本地提交
svn和git對(duì)比:
速度:在很多情況下,git的速度遠(yuǎn)遠(yuǎn)比svn快
結(jié)構(gòu):svn是集中式管理;git是分布式管理
其他:svn使用分支比較笨拙,git可以輕松擁有無(wú)限個(gè)分支
svn必須聯(lián)網(wǎng)才能正常工作,git支持本地版本控制工作
舊版本的svn會(huì)在每一個(gè)目錄下有一個(gè).svn,git只會(huì)在根目錄下?lián)碛幸粋€(gè).git
git工作流程:
共享版本庫(kù)[下載是使用clone]<—————開(kāi)發(fā)人員1[提交commit提交到本地代碼倉(cāng)庫(kù),必須push到共享版本庫(kù)中,開(kāi)發(fā)人員2可以使用pull來(lái)下載開(kāi)發(fā)人員1push的代碼]
共享版本庫(kù)<—————開(kāi)發(fā)人員2
在分布式下開(kāi)發(fā)則可以本地提交,每個(gè)開(kāi)發(fā)者機(jī)器上都有一個(gè)服務(wù)器的數(shù)據(jù)庫(kù);擁有一個(gè)本地的代碼倉(cāng)庫(kù)。
git演練
顯示隱藏文件的命令是:defaults write com.apple.finder AppleShowAllFiles -bool true
顯示隱藏文件夾的命令是:defaults write com.apple.finder AppleShowAllFiles -bool true ; killall Finder
1 個(gè)人演練(命令行演練)
-1 進(jìn)入到工作目錄中,初始化一個(gè)代碼倉(cāng)庫(kù) ?git init
-2 給該git倉(cāng)庫(kù)配置一個(gè)用戶名和郵箱 ?git config user.name “xxx"
git config user.email “xxx@xxx.com"
-3 初始化一個(gè)代碼 ?touch main.m
git add main.m
-4 查看文件的狀態(tài) ?git status
Untracked files(紅色文件):新添加的文件或者新修改的文件在工作區(qū)中,沒(méi)有添加到暫緩區(qū)。
Changes to be committed(綠色):將工作區(qū)中的代碼已經(jīng)添加到暫緩區(qū),可以被提交到代碼倉(cāng)庫(kù)中了。
-git commit -m "初始化項(xiàng)目"
1> 給所有的文件提交時(shí)的注釋
git commit -m?“xxxxxx"
git commit -m "modified the first file"
2> git diff
3>git diff --staged
4> git rm xx.xx
5>git mv main.m pudding.m 相當(dāng)于rename
6>git mv pudding.m hh/patty.m? 將pudding.m 轉(zhuǎn)移到hh文件夾下改名為patty.m
-5 修改文件
open main.m
-6 將工作區(qū)所有的文件添加到暫緩去
git add .
-7 給git命令起別名
git config alias.xx?“status"
git config alias.xx?“commit -m"
-8 查看歷史版本
git log
git relog
1>查詢某一個(gè)人提交的代碼命令是
git log author=“xxxx"
-9 版本回退
git reset?—hard HEAD
git reset —hard HEAD^
git reset?—hard HEAD^^
git reset?—hard HEAD~100
git reset?—hard 版本號(hào)前7位
-10 -global的作用(配置全局的用戶名和密碼,其他地方可以不配置)
git config?—global user.name?“why"
git config?—global user.email?“why@163.com"
git 工作原理
1 工作區(qū):倉(cāng)庫(kù)文件夾里除了.git目錄以外的內(nèi)容
2 版本庫(kù):.git目錄。用戶存儲(chǔ)記錄版本信息
暫緩區(qū)(stage):
分支(master):git自動(dòng)創(chuàng)建第一個(gè)分支
HEAD指針:用于指向當(dāng)前分支
3 git add:把文件修改添加到暫緩區(qū)
git commit:把暫緩區(qū)的所有內(nèi)容提交到當(dāng)前分支
二 團(tuán)隊(duì)開(kāi)發(fā)
共享庫(kù):可以是文件夾/U盤/網(wǎng)盤(?)/GitHub/osChina
1 創(chuàng)建代碼共享庫(kù)(讓一個(gè)文件夾成為共享庫(kù))
git init --bare
2 經(jīng)理將共享代碼倉(cāng)庫(kù)總的代碼clone下來(lái)
git clone 地址
3 項(xiàng)目經(jīng)理初始化項(xiàng)目
忽略文件:在和.git等級(jí)目錄下創(chuàng)建一個(gè).gitignore文件,在該文件下準(zhǔn)備忽略的文件;可以去gitHub查找oc需要忽略的內(nèi)容,將內(nèi)容填寫(xiě)到.gitignore中
git add . /git commit -m “注釋”將.gitignore添加到本地倉(cāng)庫(kù)管理
遠(yuǎn)程服務(wù)器中(gitHub)