Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,it 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
SVN与Git的区别:
SVN是集中式的版本控制系统,以下就是SVN的工作模式

集中式版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本库也存在一定的弊端,比如中央服务器的数据出了问题,所有人的工作都受到影响。此外就是必须联网才行,当网络带宽紧张时,文件上传的速度大大折扣。
Git是集中式版本控制系统,以下就是Git的工作模式

Git是集中式版本控制系统与SVN集中式版本库优势就明显的提升了,首先是安全性方面,由于每个人的电脑都有一个完整的版本库,即使中央服务器的数据出了问题,其他人的工作也没有受到影响。
以下是Git的工作流程图:

第二讲Git的安装与配置
1、Git的安装非常的简单,这里我就不做太多的介绍了
Git的配置
1、启动Git,安装Git之后,点击桌面的GitBash就行了
2、设置Git,做一下基本的用户信息操作
1、设置用户名: $ git config --global user.name "Your Name"
2、设置用户的邮箱:$ git config --global user.email "email@example.com"
3、设置用户的key:ssh-keygen -t rsa -C "mywork@email.com" 然后双击回车键获取key值
4 、在生成ssh key之后,需要分别在github的profile中和公司git的profile中编辑SSH KEY,以github为例

5、将.ssh目录下对应的id_rsa_github.pub中的内容拷到Key中,点击Add SSH key按钮即可,这样你就可以上传本地的文件和代码给gitlab仓库了
第三讲Git的的工作流程以及常用命令
关于git的工作流程的简介
1、在工作的目录中添加和修改文件
2、将需要进行的版本管理的文件放入暂存区域
3、将暂存区域的文件提交到git仓库
Git管理的文件有三种状态
1、已修改(modified)
2、已暂存 (staged)
3、已提交 (committed)
实战
1、将工作目录的文件放到Git仓库只需要两步
---- git add 文件名
---- git commit --m "你干了啥“
Git常用的命令
1、git init:初始化本地库
2、add --用于把工作目录的文件放到暂存区域
3、commit -- 用于把暂存区域的文件提交到Git仓库
4、reset -- 用于把Git仓库的文件还原到暂存区域
5、checkout -- 用于把暂存区域的文件还原到工作目录
6、git status :查看状态
7、git log :查看日志
8、 git reset HEAD~:快照(返回上一个版本)
9、git rest --- mixed HEAD~~
---- 移动HEAD的指向,将其指向上一个快照
---- 将 HEAD移动后指向的快照回滚到暂存区域
reset 命令回滚快照的三部曲
1、移动HEAD 的指向 (-- soft)
2、将快照回滚到暂存区域 ( [ --mixed], 默认)
3、 将暂存区域还原到工作目录 ( -- hard )
4、 git reset 版本快照, 文件名/路径
5、 git diff :查看不同
6、git rm: 删除文件
7、git -f rm : 强制删除
8、 git mv 文件1 文件2 :修改文件
Git 分支
创建分支:git branch feature 分支名
切换分支:git checkout 分支名
合并分支:git merge 分支名
删除分支:git branche - d 分支名
第四讲如何解决Git提交代码的冲突
git merge <被合并分支名>:合并分支
tip:如master分支合并 hot_fix分支,那么当前必须处于master分支上,然后执行 git merge hot_fix 命令
tip2:合并出现冲突
①删除git自动标记符号,如<<<<<<< HEAD、>>>>>>>等
②修改到满意后,保存退出
③git add <file name>
④git commit -m "日志信息",此时后面不要带文件名
第五讲本地库跟远程库交互
1、git clone <远程库地址>:克隆远程库
功能:①完整的克隆远程库为本地库,②为本地库新建origin别名,③初始化本地库
2、git remote -v:查看远程库地址别名
3、git remote add <别名> <远程库地址>:新建远程库地址别名
4、git remote rm <别名>:删除本地中远程库别名
5、git push <别名> <分支名>:本地库某个分支推送到远程库,分支必须指定
6、git pull <别名> <分支名>:把远程库的修改拉取到本地
tip:该命令包括git fetch,git merge
7、git fetch <远程库别名> <远程库分支名>:抓取远程库的指定分支到本地,但没有合并
8、git merge <远程库别名/远程库分支名>:将抓取下来的远程的分支,跟当前所在分支进行合并
9、git fork:复制远程库
第六讲Git在实际工作的流程图

网友评论