Git
什么是Git? Git和SVN有什么區(qū)別?
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)马昙。
我將介紹幾個最基本的揍诽,也是最常用的 Git 命令,以后絕大多數(shù)時間里用到的也就是這幾個命令:
初始化一個新的代碼倉庫芽偏,做一些適當(dāng)配置隙疚;git init查看本地Git倉庫當(dāng)前的狀態(tài);git status
開始或停止跟蹤某些文件军洼;git add README暫存或提交某些更新巩螃;git commit -m 'add some new founctions'如何讓 Git 忽略某些文件,或是名稱符合特定模式的文件匕争;.gitignore添加遠(yuǎn)程倉庫避乏;git remote add origin xxx.git
(克隆遠(yuǎn)程倉庫;git clone xxx.git)
推送內(nèi)容到遠(yuǎn)程倉庫甘桑;git push (-u //第一次推送所有內(nèi)容) origin master
從遠(yuǎn)程倉庫拉取最新修改拍皮;git pull
回退到以前的版本;git reset --hard HEAD^如何瀏覽項(xiàng)目的更新歷史跑杭,查看某兩次更新之間的差異铆帽;git log
在使用各種版本管理工具時,必須要能處理沖突德谅。
當(dāng)Git無法自動合并分支時爹橱,就必須首先解決沖突。解決沖突后窄做,再提交愧驱,合并完成慰技。
多人協(xié)作的工作模式通常是這樣:
1、首先组砚,可以試圖用git push origin branch-name推送自己的修改吻商;
2、如果推送失敗糟红,則因?yàn)檫h(yuǎn)程分支比你的本地更新艾帐,需要先用git pull試圖合并;
3盆偿、如果合并有沖突柒爸,則解決沖突,并在本地提交陈肛;
4揍鸟、沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功句旱!
5阳藻、如果git pull提示“no tracking information”,則說明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒有創(chuàng)建谈撒,用命令git branch --set-upstream branch-name origin/branch-name腥泥。
6、這就是多人協(xié)作的工作模式啃匿,一旦熟悉了蛔外,就非常簡單。
Git 是一種分布式版本管理工具
GitHub 是全球最大的開源代碼管理網(wǎng)站夹厌,提供有免費(fèi)的Git遠(yuǎn)程倉庫,但是免費(fèi)的必須開源裆悄,這里邊有數(shù)不盡的開源代碼供我們使用矛纹。我們也可以使用收費(fèi)版本,交錢之后才可以創(chuàng)建私有倉庫光稼。
在使用Git管理代碼的時候或南,盡量分工明確不交叉,否則可能會出現(xiàn)沖突艾君,一旦出現(xiàn)沖突采够,要么回退到原來的版本,要么定位到?jīng)_突的具體位置冰垄,并且解決這個沖突蹬癌。面試的時候這個解決代碼沖突的具體方式會問到。
既然是版本管理工具,我們盡量在寫某個功能的時候逝薪,按照最小原則去推送(一旦加入了某個類伴奥、寫了某個功能、我們敲了一天|半天的代碼)翼闽,都去盡快提交到遠(yuǎn)程倉庫。
git.oschina.net 這是國內(nèi)的一家git倉庫洲炊,可以有免費(fèi)的git倉庫提供感局。
www.coding.net這也是國內(nèi)的一家提供免費(fèi)私有代碼倉庫的網(wǎng)站,并且這些網(wǎng)站都有對應(yīng)的iOS客戶端暂衡,全部是開源的询微。
https://bitbucket.org/ 這是國外的另一家,有中文界面狂巢,也有免費(fèi)的 git倉庫撑毛。
SourceTree 就是上面這家公司開發(fā)的一款git可視化管理工具,自帶中文界面唧领。