部分内容参考自菜鸟教程 Git
文章目录
一 概述
Git 是一个开源的分布式版本控制系统(Distributed Version Control System)
应用场景
- 备份
- 代码还原
- 协作开发
- 代码追溯
二 版本控制器
分类
-
集中式版本控制器
版本库集中存放在中央服务器,必须连网才能上传下载代码,举例:SVN
-
分布式版本控制器
版本库存放在每个人的电脑,多人开发时只需将代码修改的部分发送给对方,举例:Git
三 工作流程
四 安装与基本使用
安装
访问https://npm.taobao.org/mirrors/git-for-windows/,选择Git-2.32.0-64-bit .exe
安装步骤看https://blog.youkuaiyun.com/eno_yang/article/details/114782695
设置用户信息
git config --global user.name “xxx”
git config --global user.email “xxx”
查看用户信息
git config --global user.name
git config --global user.email
解决乱码问题
git config --global core.quotepath false
创建本地仓库
- 创建一个空目录
- 在该目录打开Git bash
- 执行git init
为指令定义别名(可选)
- 在用户目录创建.bashrc文件
- 在文件写入alias 自定义指令=‘原git指令’,举例:alias git-log=‘git log --pretty=oneline --all --graph --abbrev-commit’
- 打开git bash,执行source .bashrc
基本指令
具体参考https://www.runoob.com/git/git-basic-operations.html
-
git add file01.txt/git add .(添加全部到暂存区):工作区->暂存区
-
git commit -m “注释”:暂存区->本地仓库
-
git status:查看修改状态
-
git log/git log --pretty=oneline --all --graph --abbrev-commit:查看提交日志,HEAD指向当前分支
-
git reset --hard commitID:版本切换,commitID使用git log查看
-
git reflog:查看已经删除的记录
-
git branch:查看分支
-
git branch 分支名:创建分支
-
git branch -d 分支名/git branch -D 分支名(强制删除):删除分支
-
git checkout 分支名/git checkout -b 分支名(创建并切换):切换分支
-
git merge 分支名:合并分支(合并前切换到master)
添加文件到忽略列表
- 在工作目录创建文件.gitignore
- 打开文件写入不需要git管理的文件名,可用通配符*
解决冲突
两个分支修改了同一个文件的同一行,需要手动解决冲突
- 处理文件中冲突的地方
- 将文件加入暂存区
- 提交到仓库
开发中分支使用原则
-
master生产分支
线上运行
-
develop开发分支
从master创建的,主要开发分支,开发完成需要合并到master分支
-
feature/xxx开发的功能分支
从develop创建的,多人并行开发功能,开发完成需要合并到develop分支
-
hotfix/xxx修复分支
从master派生的,用于修复bug,修复完成合并到master, develop分支
-
其它分支如测试分支、预上线分支
远程仓库
常用的有GitHub、码云、GitLab(企业开发用)
创建远程仓库及配置SSH公钥
以码云为例
- 注册账号
- 新建仓库
- Git bash生成SSH公钥:ssh-keygen -t rsa
- 获取公钥:cat ~/.ssh/id_rsa.pub
- Gitee设置账户SSH公钥
- 验证是否配置成功:ssh -T git@gitee.com
操作远程仓库
-
git remote add 远端名称 仓库SSH路径:添加远程仓库
远端名称一般为origin
-
git remote:查看远程仓库
-
git push [-f] [–set-upstream] [远端名称 [本地分支名] [:远端分支名]]:推送到远程仓库
-f:强制覆盖
–set-upstream:建立和远端分支的关联关系,建立联系后可以省略远端名和分支名,直接git push
本地分支名和远端分支名相同,可以只写本地分支名
-
git branch -vv:查看本地分支与远程分支的关联关系
-
git clone 仓库路径 [本地目录名]:从远程仓库克隆到本地
-
git fetch [远端名称] [远端分支名]:抓取,将仓库的更新抓取到本地,不合并
-
git pull [远端名称] [远端分支名]:拉取,将仓库的更新抓取到本地并且合并,等同于fetch+merge
解决合并冲突
举例:A,B两个开发人员都修改了同一个文件同一行,A提交到远程仓库了,B比A晚了一点,所以B先拉取到本地,但是合并时发生冲突,因此B先手动解决冲突后再add-commit-push到远程仓库
五 IDEA使用Git
配置Git
file-settings-version control-git,最上方选择git.ext路径(一般会自动检测)
初始化本地仓库
- 在项目中创建.gitignore文件,添加文件到忽略列表
- VCS-import into version control-create git repository,选择项目目录
推送到远程仓库
- git-commit,选择要提交的文件,输入注释,commit/commit and push(提交并推送)
- git-push,输入远端名称和仓库路径,push
从远程仓库克隆
git-clone-repository url,输入远程仓库路径和本地存放位置,clone
从远程仓库拉取
git-update project
解决冲突
- 找到冲突位置,手动修改
- 左侧项目目录,对文件右键-git-add
- push到远程仓库
创建分支
左下方Git-在提交记录上右键-new branch
注意事项
- 切换分支之前先提交本地的修改
- 代码及时提交
- 遇到问题不要删除文件目录
集成Git Bash作为terminal
file-settings-tools-terminal,将shell path改为bin\bash.exe的路径
- 找到冲突位置,手动修改
- 左侧项目目录,对文件右键-git-add
- push到远程仓库