Git分布式版本控制系统

Git分布式版本控制系统

简介:

Git是什么?

Git是目前世界上最先进的分布式版本控制系统.

Git的特点就是:

高端大气上档次

- 什么是CVS及SVN集中式版本控制系统

A: 集中式版本控制系统,版本库是集中存放在中央服务器的,在干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器. 中央服务器就好比是一个图书馆,如果你要改这本书里面的内容,那么你必须先拿到这本书,改完以后在放回图书馆.
集中式版本控制系统必须 联网 才能工作.
  • 什么是Git分布式版本控制系统
A: 分布式版本控制系统没有’中央服务器’, 每个人的电脑上都可以有完本的版本库, 在工作的时候,可以不需要联网就能工作.
那多个人之间怎么进行协作呢?比方说你在自己电脑上改了文件A,你的同事也在她的电脑上改了文件A,这个时候,你们俩之间只需要把各自的修改推送给对方,就可以互相看到对方的修改了.
  • 集中式/分布式版本控制系统的区别
A: 和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多, 因为每个人电脑里都有完整的版本库, 某一个人的电脑坏掉了不要紧, 随便从其他人那里拷贝一个就可以了. 而集中式版本控制系统的重要服务器要是除了 问题,所有人都没有办法干活了.
B: 在实际使用分布式版本控制系统的时候, 其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内, 两台电脑互相访问不了,也可以能今天你的同事病了, 他的电脑没法开机, 因此, 分布式版本控制系统通常也有一台充当’中央服务器’的电脑, 单这个服务器的作用仅仅是用来房补’交换’大家的修改, 没有它大家也一样干活, 只是交换修改不方便而已.
  • 为什么要进行版本控制?
A: 一个最简单的开发团队,也许就两三个人,他们共同完成一个软件的开发。每个人都在修改、添加、删除着自己本地硬盘上的代码,当他们把这些代码汇总起来时,麻烦出现了。到底谁改了哪些文件,具体是文件里的哪部分被改动过?A的修改会不会把B的修改覆盖掉?汇总的工作变得很危险,需要非常小心,一旦出错后果不堪设想。显然此时,效率将会是无比的低下,如果某个地方出错,可能整个汇总工作就要重来一遍。这只是两三人的小团队,如果是几十人几百人的大团队呢?那将会是噩梦。如果这个团队采用了版本控制。那么版本控制软件在每次提交的时候都会主动合并所有人的修改并解决可能发生的冲突。每个人手里一直都是汇总好的代码。当开发进行到一定阶段,可以直接拿去测试,不需要再有额外的工作来浪费时间。另外,你还可以知道,程序的某个Bug,是怎么出现的(被谁以及什么时候引入进来的)。

git的工作区域:

  • git的工作区域分为工作区,缓冲区.
  • 工作区其实就是整个项目的文件目录, 其中有很多隐藏文件叫.git, 该文件就是git的版本库. 在这个文件中有很多配置文件.

具体的操作流程:

1.从github中克隆出我的仓库.
git clone https://github.com/bowillkin/myrepo
2.切换到的我的仓库
cd myrepo
3.查看分支状态
git branch
4.同步分支与github
git pull origin master
5.建立新的分支
git checkout -b ldl
6.删除分支
git checkout -D ldl 删除本地ldl分支
git push origin --delete ldl 删除远程仓库ldl分支
7.切换到ldl分支
git checkout ldl
8.提交修改到缓冲区
git add README.md或 .   .代表全部文件
9.确认提交到工作区并写明提交说明
git commit -m '修改了README里内容'
10.查看工作树状态(修改了文件就能看见)
git status
11.将当前分支推送到github的ldl分支上,如果在github上不存在ldl分支,则创建ldl分支
git push origin ldl
12.如果不成功,那么设置下列全局变量:
git config --global user.email '444944454@qq.com'
git config --global user.name 'bowillkin'
13.查看本地两个分支有何不同
git diff ldl master
14.查看版本日志(做提交日志记录是很重要的)
git log
git log --pretty=oneline
    git reflog  :记录了历史命令
15.回滚版本
git reset --hard 90va152fce 回到到这个版本
git reset --hard HEAD^ 回退一个版本
git reset --hard HEAD^^ 回退两个版本
git reset --hard HEAD~100 回退100个版本
16.拉取远端仓库
git pull origin master
17.强制上传本地仓库
git push -f origin ldl
18.创建秘钥和公钥
ssh-keygen -t rsa -C '44494445@qq.com'
为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。
ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件
将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192。168。20。60 )
19.与github服务器认真公钥
ssh -T git@github.com
20.在master分支进行合并ldl分支操作
git merge ldl
21.查看master分支与ldl分支不同的地方
git diff merge ldld
22.设置标签(概念与分支类似)
git tag -a v1.0 -m '测试'
23.查看标签
git tag
24.上传标签到远端仓库
git push origin v1.0
25.换粗修改的代码
git stash
26.查看缓存
git stash list
27.还原缓存
git stash apply stash@{x}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值