GIT (分布式版本控制系統(tǒng))
Git是一款免費(fèi)、開(kāi)源的分布式 版本控制系統(tǒng)挠他,用于敏捷索绪、高效地處理任何或小或大的項(xiàng)目。
扯一些無(wú)關(guān)的:
蘋(píng)果的Mac OS系統(tǒng)衍生于Unix(算的上是系統(tǒng)始祖~)跳仿,而linux是一種類(lèi)unix系統(tǒng)。
并且Git是linux之父(Linus Torvalds)當(dāng)年為了維護(hù)linux捐晶,而發(fā)明的版本控制系統(tǒng)--Git菲语!
- 國(guó)外的
- 1.GitHub
GitHub地址:https://github.com/
- 1.GitHub
- 2.Gitlab:支持無(wú)限的公有項(xiàng)目和私有項(xiàng)目。
Gitlab地址:https://about.gitlab.com/
- 2.Gitlab:支持無(wú)限的公有項(xiàng)目和私有項(xiàng)目。
- 3.Bitbucket:免費(fèi)支持5個(gè)開(kāi)發(fā)成員的團(tuán)隊(duì)創(chuàng)建無(wú)限私有代碼托管庫(kù)惑灵。
bitbucket地址:https://bitbucket.org/
- 3.Bitbucket:免費(fèi)支持5個(gè)開(kāi)發(fā)成員的團(tuán)隊(duì)創(chuàng)建無(wú)限私有代碼托管庫(kù)惑灵。
- 國(guó)內(nèi)的:
- 1.開(kāi)源中國(guó)代碼托管:一個(gè)賬號(hào)最多可以創(chuàng)建1000個(gè)項(xiàng)目山上,包含公有項(xiàng)目和私有項(xiàng)目。
開(kāi)源中國(guó)代碼托管地址:http://git.oschina.net/
- 1.開(kāi)源中國(guó)代碼托管:一個(gè)賬號(hào)最多可以創(chuàng)建1000個(gè)項(xiàng)目山上,包含公有項(xiàng)目和私有項(xiàng)目。
- 2.coding.net(碼市):一個(gè)賬號(hào)最多可以創(chuàng)建1000個(gè)項(xiàng)目英支,也支持任務(wù)的創(chuàng)建佩憾。
coding.net地址:https://coding.net/home.html
- 2.coding.net(碼市):一個(gè)賬號(hào)最多可以創(chuàng)建1000個(gè)項(xiàng)目英支,也支持任務(wù)的創(chuàng)建佩憾。
- 3.CSDN代碼托管
CSDN代碼托管地址:https://code.csdn.net/
- 3.CSDN代碼托管
git操作:
創(chuàng)建項(xiàng)目
我使用的代碼管理網(wǎng)站 ----- 碼市( CODE MART ) :https://mart.coding.net
進(jìn)入官網(wǎng),創(chuàng)建好賬號(hào)后干花,選擇 自己的頭像下的“Coding.net”項(xiàng)妄帘。
進(jìn)入代碼管理頁(yè)面后,即可 創(chuàng)建項(xiàng)目了池凄!
如下是創(chuàng)建 項(xiàng)目的填寫(xiě)內(nèi)容抡驼!
項(xiàng)目創(chuàng)建好之后,會(huì)顯示 項(xiàng)目的動(dòng)態(tài)
點(diǎn)擊“代碼”選項(xiàng) 肿仑,跳轉(zhuǎn)到 代碼管理頁(yè)面致盟。
??選擇訪問(wèn)倉(cāng)庫(kù)的方式:HTTPS、SSH:
其中關(guān)于配置SSH公鑰:https://coding.net/help/doc/git/ssh-key.html
使用“SourceTree” 勾邦,進(jìn)行項(xiàng)目的代碼、倉(cāng)庫(kù) 管理割择。
輸入 項(xiàng)目的URL ,從網(wǎng)絡(luò)獲取 項(xiàng)目的git倉(cāng)庫(kù)萎河。
不選擇存儲(chǔ)倉(cāng)庫(kù) 的目標(biāo)路徑荔泳,會(huì)默認(rèn)用戶 所使用的路徑蕉饼。
獲取到項(xiàng)目倉(cāng)庫(kù)后:多出了“git_repository”倉(cāng)庫(kù)。即可對(duì)該倉(cāng)庫(kù) 進(jìn)行 查看玛歌、管理了
- 點(diǎn)擊右鍵,選擇 在“Finder”中查看項(xiàng)目倉(cāng)庫(kù)
點(diǎn)擊右鍵支子,在“Finder”中查看項(xiàng)目倉(cāng)庫(kù)
在“Finder”中查看項(xiàng)目倉(cāng)庫(kù):
- 點(diǎn)擊右鍵创肥,選擇“打開(kāi)”
即可對(duì)倉(cāng)庫(kù) 進(jìn)行管理、操作了
點(diǎn)擊右鍵值朋,選擇“打開(kāi)” 即可對(duì)倉(cāng)庫(kù)進(jìn)行管理操作了
在倉(cāng)庫(kù)里叹侄,引入Xcode工程
在遠(yuǎn)程倉(cāng)庫(kù)和本地倉(cāng)庫(kù) 創(chuàng)建好之后,即可 打開(kāi)Xcode 在本地倉(cāng)庫(kù)里面的路徑下 創(chuàng)建工程了
如下是項(xiàng)目工程的代碼:(隨便 寫(xiě)了一些內(nèi)容)
對(duì)自己的項(xiàng)目工程的(代碼)編寫(xiě) 完畢后昨登,在“SourceTree”里面查看 倉(cāng)庫(kù)的狀態(tài)了~~~
點(diǎn)擊“未暫存文件”趾代,合并自己的代碼與之前的代碼。再填寫(xiě) 自己對(duì)項(xiàng)目的編輯 信息(即:對(duì)項(xiàng)目的工作內(nèi)容) 丰辣,用于提交一個(gè)本地版本撒强。
??:選擇添加“未暫存文件”時(shí)笙什,要剔除 開(kāi)發(fā)中常出現(xiàn)的 “.DS_Store”文件等飘哨。
當(dāng)然也可以操作 忽略文件(“.gitignore”文件)。
提交項(xiàng)目信息琐凭、構(gòu)建版本之后芽隆,查看 倉(cāng)庫(kù)本地(版本)信息:
點(diǎn)擊推送后:
推送到遠(yuǎn)程倉(cāng)庫(kù)成功:
在項(xiàng)目管理網(wǎng)站鸿吆,查看項(xiàng)目版本 及 其最新信息 :
點(diǎn)擊“提交歷史”囤采,查看項(xiàng)目倉(cāng)庫(kù)的 詳細(xì)更改歷史:
點(diǎn)擊“ViewController.m”,進(jìn)入“ViewController”里面 查看之前的修改 或 進(jìn)行修改:
提交成功后的項(xiàng)目最新信息:
凡是對(duì)項(xiàng)目的遠(yuǎn)程倉(cāng)庫(kù) 進(jìn)行過(guò)修改蕉毯,下次使用項(xiàng)目工程時(shí):要先抓取項(xiàng)目(防止多人開(kāi)發(fā)時(shí),之前搭檔對(duì)代碼的修改及合并思犁。 造成版本不是最新的情況)代虾,保證當(dāng)前項(xiàng)目的版本為最新的。
也就是咱們?cè)诙嗳碎_(kāi)發(fā)時(shí)激蹲,第二天最好重新拉取下網(wǎng)上的最新版本棉磨!除非你是最后一個(gè)走的~~??????????
抓取(最新)遠(yuǎn)端項(xiàng)目倉(cāng)庫(kù):
抓取最新項(xiàng)目版本信息后,查看項(xiàng)目的修改信息:
點(diǎn)擊“拉取”后学辱,再點(diǎn)擊“確認(rèn)” 獲取擁有最新信息的項(xiàng)目 :
打開(kāi)工程后:
多人項(xiàng)目管理
將之前項(xiàng)目 再獲取一份在本地(選擇另一個(gè)路徑 且 為空文件夾)
Tips:自己選擇的路徑 必須 為空文件夾 或 新文件夾抬吟,否則出現(xiàn)如下 提示:
即可開(kāi)始 兩個(gè)人同時(shí)開(kāi)發(fā)一個(gè)工程!假設(shè)上方為開(kāi)發(fā)者A统抬,下方為開(kāi)發(fā)者B火本。
分別打開(kāi)所在位置(右鍵 --> 在Finder中顯示),打開(kāi)工程文件聪建!
開(kāi)發(fā)者A钙畔、開(kāi)發(fā)者B分別對(duì)工程做修改:
對(duì)于開(kāi)發(fā)者B,則需要重新拉取最新版本的工程妆偏!進(jìn)行合并與繼續(xù)開(kāi)發(fā)刃鳄!當(dāng)然也可以在最終自己的代碼任務(wù)完全完成再合并!
??????????????
現(xiàn)在合并的話钱骂,會(huì)提示沖突叔锐!因?yàn)?strong>兩個(gè)版本有不同的地方!
合并與開(kāi)發(fā)者A的沖突:
由于最后一次是開(kāi)發(fā)者B提交的版本愉烙!所以下次開(kāi)發(fā)時(shí):對(duì)于開(kāi)發(fā)者A,必須抓取解取、拉取最新版本步责!
即得到了最新版本~~
但是開(kāi)發(fā)者B合并沖突時(shí)禀苦,不太細(xì)心(其實(shí)也就是我啦~~??)
開(kāi)發(fā)者A幫助蔓肯,修改錯(cuò)誤代碼:
修改之后,開(kāi)發(fā)者A再提交本地版本振乏、推送到服務(wù)器蔗包!
所以開(kāi)發(fā)者B,又需要重新抓取慧邮、拉取一次 最新版本 (所謂:自作孽调限,不可活~??????)
這樣開(kāi)發(fā)者A與開(kāi)發(fā)者B的項(xiàng)目版本就一致了误澳!
??Tip:如果各版本同一處代碼有不同的修改,必然會(huì)有沖突忆谓。
終端命令行的使用:
直接操作git倉(cāng)庫(kù)裆装,更便捷、簡(jiǎn)單!雖然沒(méi)sourcetree那么直觀哨免、形象勾扭,但是對(duì)于兩人的開(kāi)發(fā)來(lái)說(shuō),也是做夠了铁瞒!
Git的操作:
多人開(kāi)發(fā) 及 命令行操作:
使用情況
沖突:
<<<<<<< HEAD
=======
>>>>>>> a3a4813c36a88970f43873546331581a490ea114
終端的一般簡(jiǎn)易操作:
git clone <url> //克隆網(wǎng)絡(luò)庫(kù)
git init //創(chuàng)建本地倉(cāng)庫(kù)
git status //(代碼庫(kù))狀態(tài)查看
git add --all //表示將所有的已跟蹤的文件的修改與刪除和新增的未跟蹤的文
件都添加到暫存區(qū)慧耍。
或者:
git add .
git commit -m"7.0" //提交版本信息(??本地??)
git pull //拉取網(wǎng)絡(luò)最新版本
// 解決沖突.......
git push //推送合并后的版本到網(wǎng)上
或者先解決沖突,再提交本地版本丐谋。
參:Git版本控制:Git沖突解決 相關(guān)錯(cuò)誤總結(jié)
git多人協(xié)作代碼合并流程
//查詢操作指令:
git log //打印歷史版本
git reflog //分支引用記錄
// git reset --hard 81bef82 //重置舊版本
很久沒(méi)動(dòng)簡(jiǎn)書(shū)了~ 這文章跨度幾個(gè)月了芍碧,也是醉了。号俐。泌豆。????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
git pull --rebase
在D分支上執(zhí)行 git merge B 后,D就被合到A上了吏饿。
在D分支上執(zhí)行 git rebase B 后踪危,效果與merge是一樣的,但是“D-E”分支就沒(méi)有了猪落,兩個(gè)分支就合在一起了贞远。