初始化一个目录
mkdir gitproject //创建目录文件gitproject
pwd //查看当前版本库所在的目录(版本库又叫仓库repository。
该目录下的文件都可以被git管理起来:
包括文件的删除更改等都会给git追踪)
ls -a //查看当前目录下的全部文件
cd gitproject //进入gitproject文件里面
git init //初始化一个git仓库
配置个人信息(局部身份),局部变量优先
git config user.name 'strw' //设置用户名
git config user.email 'str_wjp126.com' //设置用户邮箱
cat ~/.gitconfig //查看用户配置信息
配置个人信息(全局身份)
git config --global user.name 'zhangsan' //设置用户名字
git config --global user.email 'zhangsan@126.com' //设置用户邮箱
cat ~/.gitconfig //查看用户配置信息
操作
touch 1.py //创建1.py文件
vim 1.py //编辑文件
git status //查看文件的显示状态( 工作区:显示红色;暂存区:显示绿色)
git add 1.py //将文件提交到暂存区
git commit 1.py //将1.py文件提交到仓库区,会弹出一个编辑页
git status //查看文件的显示状态(查看当前文件是否提交成功)
git add * //提交工作区所有被修改的文件
git commit -m "描述信息" 文件名/* //描述提交的文件信息
git commit -ma 文件名 //将文件从工作区直接提交到仓库区
查看被提交版本信息
git log //查看文件日志,但是不能看到被删除的commit记录
git reflog //可以查看所有分支非所有操作记录,
包含(commit提交的、reset操作、已经删除的commit记录)
回退
git reset --hard 版本号 //回退版本:回退仓库区的代码
工作区代码回退
git checkout 文件名 //工作区代码回退
回退暂存区代码
git reset HEAD 1.py //将暂存区代码插销到工作区
git checkout 1.py //撤销工作区代码
回退指定文件
git reset 版本号 1.py //回退1.py文件到指定版本
git checkout 1.py
git commit -am '回退了1.py版本'
分支
git init 之后创建了一个 master 分支
git branch //查看分支
git branch dev //创建一个dev分支
git branch -d dev //删除指定分支
git checkout 分支名 //切换分支
* dev //所在分区为当前工作区所在的分支
合并
git branch //查看分支,确保分支在test分支上
修改文件,写代码
git commit -am 'test分支写代码,提交'
切换master 分支 git checkout master
git merge test
解决版本乱码问题
git config --global core.autocrlf false //解决版本乱码问题
一. 版本控制
什么是版本控制?
是对软件开发过程当中的各种程序代码,配置文件,说明文档等文件变更的管理,是软件配置管理的核心思想之一。
为什么使用版本控制
举例:多个文档,删除文档内容,更新文档内容,多个同事操作文档内容
编写一个成熟可用的程序是一个工作很大的工程,不是我们或一次性可用搞定工作,所以在开发过程当中,有以下特点:
多人协作
Ui
前端
后端
数据库
运维
版本迭代
针对当前代码进行修改和升级,通过几次迭代 达到预想的目的
版本控制工具:
CVS 是一个c/s结构的版本控制软件,主要用于开源的软件管理,是多个开发人员通过一个版本控制中心系统来记录文件版本,从而达到保证文件同步的目的,是一种很古老的集中式版本控制工具。
SVN 也是集中式版本控制工具,他是最优秀的集中式版本控制工具。
GIT 是一个分布式的版本控制工具
hg
二、集中式版本管理工具
开发者之间的合作方式是共用一个仓库(repository),无论这个仓库是在本地还是在远端,只要是所有成员都共同存取同一个仓库,那么这种方式就是集中式(centralized)版本控制。
开发者需要提交或者是查看代码更新记录都需要一个联网的环境
缺点:代码集中于SVN服务器上,一旦发生问题,很难挽回
优点:代码集中于SVN服务器上,不会发生个别新手污染代码的情况
三、分布式版本控制
每个客户端就是都是一个服务器,都有一个版本库,开发者可以在无网络的环境中进行代码的操作,是通过比对进行下载
四、 Git的发源
Git的作者
linux之父linus torvalds。
Git的原理:
工作区,暂存区,仓库区
工作区:对于文件的添加,修改,删除
暂存区:将工作区的操作完成小阶段的存储,是版本库的一部分
仓库区:表示个人开发的小阶段完成,记录的各种版本都是可以查看回退的
三. Git基本操作
- 下载安装
通过官网下载git的安装包,git官网地址: https://git-scm.com/
安装完成之后,在windows下的任意目录右键可以看到git的命令行
2. 基本操作
(1) 初始化一个git目录
创建一个gitproject目录
mkdir gitproject //创建gitproject文件夹
进入gitproject目录
cd gitproject //进入gitproject目录
执行 git init
git init //初始化
(2) 配置个人信息
局部变量
配置的是一个局部的身份
git config user.name ‘strw’ //设置用户名
git config user.email ‘str_wjp126.com’ //设置用户邮箱
2 、全部变量
配置全局身份
git config --global user.name ‘zhangsan’ //设置用户名
git config --global user.email ‘zhangsan@126.com’ //设置用户邮箱
优先级:就近原则,有局部使用局部,没有局部使用全局,二者不可以都没有
3. 操作
工作区(颜色:红色)、暂存区(颜色:绿色)、仓库区(颜色:)
touch 1.py //创建文件。
vi 1.py //编辑文件
git status //查看文件的一个状态
文件在工作区当中
将修改的文件提交到暂存区 git add 1.py
git add 1.py // 提交至暂存区
提交到仓库去 git commit 1.py 会弹出一个编辑页
git commit 1.py //提交至仓库区
git add * 提交工作区所有被修改的文件
git commit -m “描述信息” 文件名/ *
git add * //提交工作区所有被修改的文件
git commit -m “描述信息” 文件名/ * //
查看提交版本信息
git log 不能查看被删除的commit记录
git reflog(推荐使用)可以查看所有分支的所有操作记录。包含commit提交的和reset操作,已经删除的commit记录
git log
git reflog
- 回退
回退版本 指 回退仓库区的代码
git reset --hard 版本号
(1)工作区代码回退
git checkout 文件名
(2)回退暂存区代码
git reset HEAD 1.py 将暂存区代码插销到工作区
git checkout 1.py 撤销工作区代码
(3)回退指定文件
git reset 版本号 1.py 回退1.py文件到指定版本
git checkout 1.py
git commit -am ‘回退了1.py版本’
- 分支
git init 之后创建了一个 master 分支
git branch 查看分支
git branch dev 创建一个dev分支
git branch -d dev 删除指定分支
git checkout 分支名
test分支写代码然后master 分支合并
git branch 查看分支,确保分支在test分支上
修改文件,写代码
git commit -am ‘test分支写代码,提交’
切换master 分支 git checkout master
git merge test