1.git简介
git是世界上最先进的分布式版本控制系统
作用:源代码管理
方便多人开发,方便版本控制
git三种状态:已修改、已提交、已暂存
git工作区域:工作区、暂存区、仓库区、远程服务端
2.工作区、暂存区、仓库区
工作区:对文件进行添加、修改、删除等操作
暂存区:是将工作区中的操作完成小阶段的存储
仓库区:代表个人开发的一个阶段完成
仓库区中记录的各版本是可以查看和回退
但暂存区的版本一旦提交就再也没有
3.git单人操作
安装git:
sudo apt-get install git
查看安装结果:
git
创建项目:在桌面上创建文件夹,表示工作项目
创建本地仓库:切到项目文件夹输入
git init
点进文件夹CRTL+H会出现一个.git的仓库
配置个人信息:
git config user.name '张三'
git config user.email 'zhangsan@163.com'
在.git仓库里的config中查看配置信息
新建文件:
vim login.py
查看文件状态:
git status
提交到暂存区:
git add 文件名
从暂存区提交到仓库区:
git commit -m '文件描述信息’
从工作区提交仓库区:
git commit -am '文件描述信息'
查看历史版本:
git log
git relog
从仓库区回退到暂存区:
#第一种
git reset --hard HEAD^
#第二种
git reset --hard '版本号'
从暂存区撤回到工作区
git checkout ’文件名‘
4.多人git操作
创建远程仓库
https://github.com/qruihua/info.git
配置ssh:
配置ssh公钥入口:
点击头像选择setting
选择SSH and GPG keys 点击右上角的New SSH key
生成SSH公钥:
ssh-keygen -t rsa -C "账号名"
配置SSH公钥:
删除旧的密钥:
rm -r .ssh
SSH操作报错
解决方案
eval "$(ssh-agent -s)"
ssh-add
克隆项目:
准备两个文件(一个经理文件,一个员工文件)
经理文件:
git clone ’序列号‘
配置经理文件、提交暂存区、体检仓库区
推送到远程仓库
git push
在推送的时候需要设置账号与密码
多人开发:
员工文件:
先克隆项目
然后对文件进行编辑
推送到远程仓库
经理文件:
先同步代码
第一次克隆用git clone之后用
git pull
代码冲突:
例:经理把编辑好的文件推送到终端,张三没有同步文件,把之前同样的文件进行编辑推送,导致代码冲突
冲突解决:
原则:谁冲突谁解决,并且要协商
方案:保留所有代码或者保留某一个代码
补充:
容易冲突的操作方式
多个人同时操作了同一个文件
一个人一直写不提交
修改之前不更新最新代码
提交之前不更新最新代码
擅自修改同事代码
减少冲突的操作方式
养成良好的操作习惯,先pull在修改,修改完立即commit和push
一定要确保自己正在修改的文件是最新版本的
各自开发各自的模块
如果要修改公共文件,一定要先确认有没有人正在修改
下班前一定要提交代码,上班第一件事拉取最新代码
一定不要擅自修改同事的代码
标签:
因为文件过多不容易查找,所以对文件进行打标签
git tag -a 标签名 -m '标签描述'
将标签推送到远程仓库
git push origin 标签名
删除本地和远程标签
#删除本地
git tag -d 标签名
#删除远程仓库
git push origin --delete tag 标签名
分支:
多人开发时,根据功能分开开发,最后合并到一个分支中
master是默认主分支
查看当前分支
git branch
创建并切换分支
git checkout -b 分支名
将分支推送到远程
git push -u origin 分支名
合并分支
合并分支时要在主分支合并
#先切换分支
git checkout master
#合并分支
git merge 分支
#推送到远程
git push
然后其他人同步后,分支合并才算成功
git pull