Git版本控制
下载地址
https://git-scm.com/download
基本配置
1、打开Git Bash
2、设置用户信息
git config --global user.name ""
git config --global user.email ""
3、查看配置信息
git config --global user.name
git config --global user.email
为常用指令设置别名
1、在用户目录下创建.bashrc文件或者打开gitBash执行touch ~/.bashrc
2、在文件下输入内容
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
解决Git Bash乱码问题
1、打开GitBash执行下面命令
git config --global core.quotepath false
2、在下载文件夹下找到etc/bash.bashrc文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
获取本地仓库
1、在电脑任意位置创建一个空目录,作为我们本地Git仓库
2、进入这个目录,点击右键打开Git Bash窗口
3、执行命令git init
4、如果创建成功可在文件夹下看到隐藏的.git目录
基础操作指令
1、工作区到暂停区
git add 单个文件名或通配符
将所有修改加入暂停区git add .
2、暂停区到本地仓库
git commit -m "注释内容"
3、查看修改状态
git status
4、查看提交日志
git log [option]
options:
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使输出的commitld更简短
--graph 以图的形式显示
git-log(别名方式)
查看已删除的提交记录:git reflog
5、版本回退
git reset --hard commitID
commitID可以使用git-log或者git log查看
6、添加文件至忽略列表
在工作目录中创建一个名为.gitignore的文件(文件名称固定),列出要忽略的文件模式
分支
1、查看分支
git branch
2、创建分支
git branch 分支名
3、切换分支
git checkout 分支名
不存在创建并且切换到该分支
git checkout -b 分支名
4、合并分支
一般切换到master分支
git merge 分支名称
进入vim编译器按esc 之后:wq回车
5、删除分支
不能删除当前分支只能删除其他分支
git branch -d 分支名 删除分支时需要做各项检查
git branch -D 分支名 不做检查,强制删除
6、解决冲突
两个冲突上对文件修改可能存在冲突,如同时修改同一文件,就需要手动解决冲突
1、处理文件中冲突的地方
2、将解决完冲突的地方添加到暂存区(add)
3、提交到仓库(commit)
7、开发在分支中使用的原则与流程
master(生产)分支:线上分支,主分支
develop(开发)分支:从develop创建的分支,一般都是同情并发开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到devvelop分支
hotfic/xxx分支:从master派生的分支,一般作为线上bug修复使用,修复完成后合并到master、text、develop分支。
Git远程仓库
1、常用的托管服务:GitHub、码云、GitLab
GitHub: https://gitHub.com/
码云: https://gitee.com/
GitLab: https://about.gitlab.com/
2、创建远程仓库
3、配置SSH公钥
配置:ssh-keygen -t rsa
获取:cat ~/.ssh/id_rsa.pub
验证是否成功:ssh -T git@gitee.com
4、添加远程仓库(默认名origin)
git remote add origin 远程仓库地址
5、查看远程仓库
git remote
6、本地代码同步到远程仓库
git push [-f] [--set-upstream] [远端名称 本地分支名[:远端分支名]]
-f: 强制覆盖
-set-uostream: 推送到远端的同时并且建立起远端分支的关联关系
如果远程分支名和本地分支名相同,可以只写本地分支名
git push origin master
如果当前分支已经和远端分支关联,则可以省略分支名和远端名
查看本地分支与远端分支的关系
git branch -vv
绑定关系
git push --set-upstream origin master:master
第二次推送
git push
7、从远程仓库克隆
git clone 远端地址 [指定名称]
git clone git@gitee.com:tianhelei/git_text.git
8、从远程仓库中抓取和拉取
抓取:git fetch
将仓库里的更新都抓取到本地,但不会进行合并
之后需要使用git merge命令合并
拉取: git pull
将仓库的更新都拉到本地,并自动进行合并 等同于 fetch + merge
9、解决合并冲突
1、抓取(fetch)或拉取(pull)
2、处理文件中冲突的地方
3、将解决完冲突的地方添加到暂存区(add)
4、提交到仓库(commit)
5、同步(push)
Git工作流程图
拉取: git pull
将仓库的更新都拉到本地,并自动进行合并 等同于 fetch + merge
9、解决合并冲突
1、抓取(fetch)或拉取(pull)
2、处理文件中冲突的地方
3、将解决完冲突的地方添加到暂存区(add)
4、提交到仓库(commit)
5、同步(push)
## Git工作流程图
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5CT006452%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20211129145950071.png&pos_id=img-NaqpFmiI-1708418559075)