一. git是什么?
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
1. git诞生
2. 版本控制工具
2.1 集中型版本控制控制工具
svn,cvs,vss
特点:
1.实现大部分开发中对版本控制的管理需求
2.结构简单,上手容易
缺点:
1.对中央仓库依赖严重,一旦损坏,历史数据怎么恢复?
2.程序上传的都是完整版,如何追溯查询?
3.系统正在献上运行需要修改bug或增加功能,持续几个月的事件,如何同时管理几个版本
4.如何管理分布各地团队
2.2 分布式版本控制控制工具
3. git作用
1.协通开发
2.版本记录
3.冲突解决
4.历史追查
5.代码备份
6.版本还原
7.权限管理
8.分支管理
9.代码审查
10. 。。。。。。。
二. git安装
命令行工具 可视化工具
1. 配置git签名
1.选中要作为git的文件,鼠标右键选择git bash
tip:
git是分布式 所以我们要填写用户名和邮箱作为标志
c:\usr\xxxx路径下。gitconfig文件 文件里有global属性,所有git项目都会共用这个属性
\
git config --global user.name "yyx"\
git config --global user.email "xxxx.@xx.com"
三. 创建版本库
第一步 选中要git的目录
第二步 输入命令git init 初始化\
1. git 命令行
查看文件 git status
将文件添加到临时到暂存区 git add 文件名 (没有真正提交)
git commit 提交文件,把所有暂存区文件提交
git commit -m “提交提示信息” 可以理解为注释
每当有文件修改 删除 添加 都需要重新git add然后 git commit
git log 打印提交信息 查看日志
git log --pretty=oneline 只打印提交实践信息
四. 回退历史
1. 回退到上一次
git reset --hard HEAD^1
HEAD是一个指针 永远指向最新版本 ^1指向上一个版本
--hard 硬:这种回退会将指定的数据抹除 不会保留任何你修改的记录
--soft 软:回退版本并保留你修改的记录 会自动帮你git add
--mix 折中:回退版本并保留你修改的记录 不会自动帮你git add
git reset修改 HEAD指向
这种方式可以恢复之前的版本 但是恢复之后当前版本之后的将不负存在
2. 回退到指定版本之前
git reset --hard HEAD~2 回退到2个版本之前
3. 版本穿越
git reflog #查看历史记录的版本号
git reset --hard 7csdasd 7csdasd为版本号 输入git reflog可以查看
4. 还原文件
git checkout 把文件内容还原成git commit后的内容
5. 删除文件
先删除文件 然后git add 再然后git commit 不是真删除 只是当前版本没有
五. 工作区 暂存区 本地库
1. 概念
工作区: 电脑的本地磁盘目录
暂存区:一般存储在git目录下的index文件, 暂存区有时也称为索引
本地库:工作区中有一个.git目录 他就是git的本地版本库
2. 关系图
六. 分支
1. 分支介绍
项目上线,但是有新功能 要改bug
2. 分支命令
查看分支
git branch -v
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
3. 合并分支(将其他分支合并到master分支)
1.切换到主分支 git checkout master
2.合并 git merge 分支名
七. 冲突
什么是冲突
冲突一般指同一个文件同一位置代码,在合并时工具软件无法判断应该保留哪一个版本,因此会提示该文件发生冲突,冲突一般需要手动解决冲突。
查看冲突
git diff
解决冲突 切换到冲突文件 进行处理
然后在重新add 和 commit
八.Github是什么?
是git项目托管网站 主要提供基于git的版本托管服务
九.Github操作
1建立本地仓库
2. \
1 推送代码到git
1.1 增加远程地址
git remote add <远端代号> <远端地址>
<远端代号>一般用origin做代号
<远端地址>指远程链接的url
1.2 推送到远程库
git push <远端代号> <分支名>
1.3 下载远程库
git clone <远端地址> <项目的目录名>
<项目的目录名> 项目的目录名下载后本地的名字 可以不写 默认github的仓库名
1.4 上传库(需要库主人同意你上传申请)
先上传到本地库 然后git push origin master
1.5 项目更新到github
git pull <远程代码> <远程分支名>
十. 协作冲突
1.什么是协作冲突
在上传或同步代码时,由于你和其他人都修改了同一文件的同位置代码,版本管理工具无法判断究竟以谁为准,这就会报告冲突,需要程序员手动解决
2.协作冲突解决方法
当push到github出现协作冲突
1.pull一下
2.修改冲突文件
3.git add
4.git commit
push时协作冲突:
pull
push发现冲突后 先pull 然后修改本地文件 然后 add 然后commit 然后push