Git
什么是Git? Git和SVN有什么区别?
Git是目前世界上最先进的分布式版本控制系统。
我将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令:
初始化一个新的代码仓库,做一些适当配置;git init查看本地Git仓库当前的状态;git status
开始或停止跟踪某些文件;git add README暂存或提交某些更新;git commit -m 'add some new founctions'如何让 Git 忽略某些文件,或是名称符合特定模式的文件;.gitignore添加远程仓库;git remote add origin xxx.git
(克隆远程仓库;git clone xxx.git)
推送内容到远程仓库;git push (-u //第一次推送所有内容) origin master
从远程仓库拉取最新修改;git pull
回退到以前的版本;git reset --hard HEAD^如何浏览项目的更新历史,查看某两次更新之间的差异;git log
在使用各种版本管理工具时,必须要能处理冲突。
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
多人协作的工作模式通常是这样:
1、首先,可以试图用git push origin branch-name推送自己的修改;
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3、如果合并有冲突,则解决冲突,并在本地提交;
4、没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
5、如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
6、这就是多人协作的工作模式,一旦熟悉了,就非常简单。
Git 是一种分布式版本管理工具
GitHub 是全球最大的开源代码管理网站,提供有免费的Git远程仓库,但是免费的必须开源,这里边有数不尽的开源代码供我们使用。我们也可以使用收费版本,交钱之后才可以创建私有仓库。
在使用Git管理代码的时候,尽量分工明确不交叉,否则可能会出现冲突,一旦出现冲突,要么回退到原来的版本,要么定位到冲突的具体位置,并且解决这个冲突。面试的时候这个解决代码冲突的具体方式会问到。
既然是版本管理工具,我们尽量在写某个功能的时候,按照最小原则去推送(一旦加入了某个类、写了某个功能、我们敲了一天|半天的代码),都去尽快提交到远程仓库。
git.oschina.net 这是国内的一家git仓库,可以有免费的git仓库提供。
www.coding.net这也是国内的一家提供免费私有代码仓库的网站,并且这些网站都有对应的iOS客户端,全部是开源的。
https://bitbucket.org/ 这是国外的另一家,有中文界面,也有免费的 git仓库。
SourceTree 就是上面这家公司开发的一款git可视化管理工具,自带中文界面。