一. 简介
Git 是分布式管理.服务器和客户端都有版本控制能力,都能进行代码的提交、合并、…
Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库
工作区
- 对于
添加
、修改
、删除
文件的操作,都发生在工作区中(红色文件)暂存区
- 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分 (绿色)
- 在暂存区的版本一旦提交就再也没有了
仓库区
- 仓库区表示个人开发的一个小阶段的完成
- 仓库区中记录的各版本是可以查看并回退的
二. Git单人本地仓库操作
- 在桌面创建test文件夹,表示是工作项目,进入test
- 使用 git init 新创建本地仓库.git
- 配置个人信息
git config user.name ‘张三’
git config user.email ‘[email protected]’- 新建py文件
- 查看文件状态
git status- 将工作区文件添加到暂存区
git add .- 将暂存区文件提交到仓库区
git commit -m ‘版本描述’- 查看历史版本
git log git reflog- 回退版本
回退到当前最新版本的前一个版本
– git reset --hard HEAD^
通过每个版本的版本号回退到指定版本
– git reset --hard 版本号- 撤销修改
撤销工作区代码
– git checkout 文件名
撤销暂存区代码
– git reset HEAD 文件名 git checkout 文件名
三. 创建远程仓库
1.登陆注册Github
2.创建仓库,编辑仓库信息
3.仓库创建完成
4.查看复制仓库地址HTTPS
配置SSH
1.配置SSH公钥入口
2.修改电脑git配置: 修改~/.gitconfig文件为:Github注册邮箱和用户名
email = [email protected]
name = zhangsan
3.生成SSH公钥 ssh-keygen -t rsa -C “邮箱地址”
4.复制~/.ssh文件中的rsa.pub公钥添加SSH到github cd .ssh cat id_rsa.pub
克隆推送项目
1.克隆远程仓库
– git clone Github的https地址或者ssh地址
2.配置身份信息
– git config user.name ‘经理’
– git config user.email ‘[email protected]’
3.创建项目
– 新建py文件
4.推送项目到远程仓库
- git add .
- git commit -m ‘立项’
- git push
– push设置记住密码: git config --global credential.helper store
多人协同开发及代码冲突
代码冲突
提示:多人协同开发时,避免不了会出现代码冲突的情况
原因:多人同时修改了同一个文件
危害:会影响正常的开发进度
注意:一旦出现代码冲突,必须先解决再做后续开发
解决冲突
- 原则:谁冲突谁解决,并且一定要协商解决
- 方案:保留所有代码 或者 保留某一人代码
- 解决完冲突代码后,依然需要git add、commit、push
减少冲突的操作方式
- 养成良好的操作习惯,先
pull
在修改,修改完立即commit
和push
- 一定要确保自己正在修改的文件是最新版本的
- 各自开发各自的模块
- 如果要修改公共文件,一定要先确认有没有人正在修改
- 下班前一定要提交代码,上班第一件事拉取最新代码
- 一定不要擅自修改同事的代码
标签和分支
- 标签
当某一个大版本完成之后,需要打一个标签
作用: -记录大版本
-备份大版本代码
1.进入本地仓库
git tag -a 标签名 -m ‘标签描述’
例: git tag -a v1.0 -m ‘version 1.0’
2.推送标签到远程仓库
git push origin 标签名
例: push origin v1.0
3.进入远程仓库查看打标签结果
- 分支
作用:
- 区分生产环境代码以及开发环境代码
- 研究新的功能或者攻关难题
- 解决线上bug
特点:
- 项目开发中公用分支包括master、dev
- 分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
- 分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
创建分支步骤:
1.查看当前分支, 创建并切换到dev分支
git branch
git checkout -b dev2.将分支推送到远程
git push -u origin dev3.修改dev分支源代码:
git add、commit、push4.dev分支合并到master分支
- 先切换到主分支:git checkout master
- dev分支合并到master分支: git merge dev5.合并分支默认在本地完成,合并后直接推送即可
git push
四. 如何参与到别人建立的项目中
- 添加ssh账户
- 修改某台机器的git配置
修改为注册github时的邮箱,填写用户名,要求组员的用户名不能重复
vi .gitconfig- 删除~/.ssh目录存储的旧的密钥
rm -r .ssh- 生成密钥
ssh-keygen -t rsa -C “Github账号,可以是用户名,也可以是邮箱地址”
也可以不用生成密钥, 直接把你自己的github邮箱号或用户名给项目创建人, 项目创建人可以再github项目的setting中的Collaborators直接邀请你就可以了- 查看公钥内容,复制此内容
将复制的公钥发给项目经理,等项目经理在github上添加后,会将项目地址下发,然后就可以参与到项目开发中进行后续操作
cat id_rsa.pub
- 本地克隆
git clone 项目地址
git checout dev
- 同步分支
- 创建自己的分支
git checkout -b worker01- 将本地分支推送到服务器
git push origin worker01- 将本地分支跟踪服务器分支
git branch --set-upstream-to=origin/分支名称 分支名称
五. 日常工作Git合作开发
上班
1.切换到dev分支
2.git pull 拉取最新的代码
3.切换到自己的独立开发分支
4.git merge dev, 将dev分支的最新代码合并到自己的独立开发分支
下班
1.在自己的独立开发分支,git add, commit, push
2.如果今天需要合并到dev:
git checkout dev
git merge 个人分支
git add, commit, push
一般不会天天需要合并自己的分支到dev,通常是完成一个完整的功能后再合并