1:svn集中式版本控制 有一个中央服务器控制所有版本,其他所有的终端可以对这个中央仓库进行操作,中央仓库保证版本的唯一性
缺点:中央服务器出现问题整个项目的版本控制就完蛋了,在使用过程中,终端无论提交修改还是获取更新都需要不断与服务器进行通信
一旦网络出现问题,一切都不能继续
缺点:
1:容灾性差
2:通信频繁
2:git分布式版本控制,各个终端可以获取到中央服务器的完整信息,就好像做了一个完整的景象,这样我们可以在终端做各种操作而不需要与
服务器进行通信,就算服务器出现问题,各个终端依然可以有完整备份,而且git操作全部发生在本地,只需要最终完成提交到服务器即可,
不需要与服务器频繁通信。
本地都存在服务端的完整镜像,并且我们在本地就可以提交代码,只需要最终完成以后提交到服务器即可。
git的核心在于 区分好他的状态区 分支
git安装好之后 常见操作:
1:查看git的版本 git --version
2:查看git的所有的配置信息 git config --list
3: 查看通用配置信息 git config --list --global
4: 查看指定配置信息 git config user.name
5: 配置参数 git config --global user.name xys 或者一次配置多个 git config --global --add user.email xxx.@ user.name xys
6:git将所有的配置都保存为文件,git的配置文件就在git项目里面,我们可以看到.git隐藏文件夹 这里面的config文件就是我们的配置信息
7:alias配置别名 git config --global alias.st status 将一些复杂的指令换为自己的别名
git常见操作
1:创建git仓库
1:先进入要创建为git仓库的目录下,执行git init命令 就会在该目录下生成一个.git隐藏文件夹
2: git clone url 文件夹名称 在制定文件夹下面创建一个git仓库
2:git add添加文件
git commit -m "注释 提交代码的注释"
追加修改 当提交一次之后 发现想在修改一个文件 这个时候不需要再生成新的提交,直接使用git commit -amend 指令即可
直接执行git commit --amend -m "代码提交注释"
3:git diff git status
git diff commitId就是比对当前文件和指定提交节点的文件得差异
commitId 就是一个40位的16进制的sha1值,用来表示唯一的一次commit
gitk查看提交代码的log日志信息
4:git --help可以查看一些提示指令
5:创建sshkey
打开根目录.ssh 查看是否已经存在id_rsa私钥 用在验证自己的身份 idrsa.pub文件用在远程服务器端表明自己的身份
如果没有这两个文件 可以通过命令生成这两个文件
ssh -keygen -t rsa -C "youremail@example.com"
添加sshkey 将本地的idrsa.pub文件内容复制到key输入框即可。
6: 一般在本地创建代码 提交到远程仓库:执行 git remote add origin git@github.com:xuyisheng/testGit.git
origin就是远程仓库的名字 默认远程仓库就是origin git push -u origin master 把修改代码推送到远程仓库
-u是将本地master分支和远程分支关联起来
7:git pull --rebase 当我们与他人协作的时候 在我们代码之前可能别人已经已经代码了 这个时候当我们提交代码的时候 就会提示我们先pull最新代码
但是这样Git里始终会留下一个MergeHistory 这个就可以使用 上面的指令 将本地未提交的代码作用到新版本中
8:clone远程仓库
可以选择https和ssh两种方式 一般https比较严格 需要验证 ssh即可
9:分支管理一个场景
一个开发分支 一个稳定代码分支 每次测试完成之后才将 开发分支的代码合并到稳定分支上。
10:分支创建:git checkout -b dev 该命令就是自动创建分支并且切换到该分支下
git branch dev 创建分支 git checkout dev 切换到dev分支下 但是加入本地有代码没有提交 这个时候是不可以切换分支的
这个时候需要 需要使用git stash指令将本地代码暂存下来 随后在将代码分支切换
深入分析git的使用
1:每个项目都有一个.git隐藏文件 congif配置文件。
2:创建仓库
git init 自己本地创建一个git仓库 在执行命令的文件目录下 git clone 将服务端的git仓库clone到本地
3:追加修改
git commit --amend
具体思路如下:直接 修改结束 执行 git add 提交文件 随后执行 git commit --amend -m "本次修改"
这样就不会出现多个提交 而是一个提交。(来修正上一个错误的提交)
4:git三区 工作区(工作的区) 暂存区(执行git add后文件所在区域) 历史区(保存各个版本的区域)
5:尝试一下 git commit 以后 再执行git reset文件看看效果。 其实就是reset掉提交记录 但是不修改本地的工作区
可以尝试下次继续提交。
6:分支管理(只有一个主分支, )
1:创建分支 git branch dev 创建分支 git checkout dev 切换分支
git branch -b dev 命令等价于创建分支并且切换分支。
如果分支已经存在 直接 git checkout dev 即可。
:2:合并分支:假如我们切换到dev分支进行修改,然后执行 add commit 操作,将代码提交,但是我们切换到master分
支 发现没有最新代码,这个时候就需要合并分支,此时切换到主分支master 然后执行 git merge dev 就是将 dev分支的代 码合并到master分支。但是可能会冲突,这个时候就需要解决冲突。
3:删除分支 git branch -d dev 删除dev分支。(但是加入这个分支代码没有合并到主分支就会失败)
但是可以使用git branch -D dev 强制删除分支。
4:推送分支 将本地创建的分支推送到远程仓库,使用 git push 指令 git push origin dev 就是将本地的dev分支推送到
服务器端。
(我们在执行 git clone 的时候,git会自动的将本地的master分支和远程的master分支对应起来 所以我们切换分支
如果是服务端我们需要将本地的和远程的对应起来。)
git图解 1:工作区 2:暂存区 3:历史区 4:远程库
git学习网站: https://git-scm.com/book/zh/v1/
http://marklodato.github.io/visual-git-guide/index-zh-cn.html