-
Git是一个免费、开源的分布式版本控制,性能优于其他的版本控制工具
-
集中式版本控制工具
? CVS、SVN、VSS…
? 有一个单一的、集中管理的服务器,保存所有文件的修订版本,协同工作的人可以通过客户端连接到这台服务器,取出最新的文件或者提交更新
? 优点:每个人都可以看到其他人在做些什么,管理员可以掌控每个开发者的权限。
? 缺点:如果中央服务器宕机、所有人都无法更新,也就无法协同工作
-
分布式版本控制工具
? Git、Mercurial、Bazaar、Darcs…
? 在本地就可以进行版本控制,不需要提交到中央服务器,每个客户端保存的都是整个项目,包括修改记录
-
Git工作机制
? 历史版本 -> 本地库
? 临时存储 -> 暂存区->git commit
? 写代码 -> 工作区->git add
-
Git和代码托管中心
? 代码托管中心时基于网络服务器的远程代码库,一般称为远程库
-
Git常用命令
命令名称 | 作用 |
---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m "日志信息"文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
? 在一个文件夹中右键,选择GIt Bash Here,执行git init命令,会初始化本地库,使用git status命令查看当前状态,使用git add文件名添加到暂存区,git rm 文件名 从暂存区删除
-
分支
? 在版本控制过程中,同时推进多个任务,为每一个任务,我们可以创建单独的分支,使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行
? 分支的好处:同时并行多个功能开发,提高开发发效率
? 各分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重更新开始即可
命令名称 | 作用 |
---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge -m"日志信息" 分支名 | 把指定的分支合并到当前分支上 |
-
冲突
? 合并分支时,两个分支在同一个文件的同一个位置有两套 完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容