一 git 作用
源代码管理
版本控制
为什么要进行源代码管理?
-
方便多人协同开发
-
方便版本控制
二 git与svn的区别
- svn:都是集中控制管理的,也就是有一个中央服务器,大家都把代码提交到中央服务器,
- Git:最核心的区别Git是分布式的,每一台电脑都是可以是服务器,可以对项目进行管理.
三 git windows 安装
https://blog.csdn.net/qq_32786873/article/details/80570783
四 git 的工作模式
- 1 工作区:就是在你本要电脑磁盘上能看到的目录。
- 2 暂存区:一般存放在【.git】目录下的index文件(.git/index) 中,所以我们把暂存区有时也叫作索引。
- 3 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。git中的head/master是分支,是版本库。
五 git 服务搭建
cd进入到自己希望存储代码的目录路径,并创建本地仓库.git
新创建的本地仓库.git是个空仓库
cd 目录路径
git init
六 配置用户名和邮箱
git config --global user.name 'lisi' git config --global user.email 'lisi@163.com'
七 查看全局配置信息
git config --global --list
git config --list #查看配置信息
八 查看仓库状态
git status
git status –s 简约显示
九
# 添加项目中所有文件
git add .
或者
# 添加指定文件
git add login.py
十 提交到版本库
git commit -am "版本描述"
十一 删除文件
rm -rf filename #工作区删除文件
git checkout filename #撤销删除
如果要还原在暂存区中删除的文件,必须先执行 git reset head
十二 查看日志
git log 或者 git reflog 过滤查看日志 git log –p 退出按【q】键 ctrl+f向下分页 ctrl+b 向上分页 显示指定日期之后的日志 git log --after '2018-11-6' 显示指定日期之前的日志 git log --before '2018-11-6' 指定显示指定开发者的日志 git log --author 'lisi'
十二 版本回退
git reset --hard 版本号
十三 文件状态介绍
针对与文件所处的不同分区,文件所处的状态:** (1)未追踪, 文件第一次出现在工作区, 版本库还没有存储该文件的状态 (2)已追踪, 只要第一次,git add了文件, 文件就是已追踪 (3)未修改, 文件在工作区未被编辑 (4)已修改, 文件在工作区被修改 (5)未暂存, 文件已修改, 但是没有add到暂存区 (6)已暂存, 已经将修改的文件add到暂存区 (7)未提交, 已暂存的文件, 没有commit提交. 处于暂存区 (8)已提交, 提交到版本库的文件修改,只有commit以后才会有仓库的版本号生成
十四 远程仓库管理
1 克隆到本地
git clone 仓库地址
注意,如果当前目录下出现git仓库同名目录时,会克隆失败。
2 分支管理
# 创建一个新分支
git branch dev
# 切换到所创建的分支
git checkout dev
# 前面两步的简写
# git checkout -b feature1
# 查看当前分支
git branch
有小星星的为当前的所在的分支
# 删除分支
git branch -D dev1
十五 提交到远程仓库的一般步骤
- 1 生成本地版本
git add . git status git commit -m '添加项目代码'
- 2 推送到远端
git push origin master 指定的origin 远程仓库,master分支
- 3 查看远程的url
git remote -v
注意:如果推送代码,出现以下提示: git pull ....,则表示当前本地的代码和线上的代码版本不同.
1. 把线上的代码执行以下命令,拉取到本地,进行同步 git pull 2. 根据提示,移除多余的冲突的文件,也可以删除. 完成这些步骤以后,再次add,commit,push即可.
十六 合并分支
1 为什么需要有分支
软件并不是所有的功能都实现了才上线,在软件并未完全实现的时候,我们可以吧已经满足基本使用的软件上线,
这就是我们的主分支,我们需要扩展其他的功能,但是不能影响主分支的功能使用,就产生了分支,我们可以在分支上
进行功能的 扩展,同时不影响主分支代码的运行.在分支功能完成并通过测试后,分支可以合并到主分支.完成项目
最终项目的功能的扩展.
2 合并分支使用
git checkout master #切换到主分支 git merge feature1 #合并子分支