git 基本操作 -- 涵盖日常基本使用
git基本概念
1. 开发中的实际场景:
备份、
代码回滚、
协同开发、
追溯问题代码的编写人和编写时间
2. 版本控制方式:
集中式版本控制: svn 和 cvs
分布式版本控制: git
git工作流程
![image](https://img-blog.csdnimg.cn/img_convert/97423530ba6a104e399bcef03069e263.png)
命令:
clone(克隆)-- 从远程仓库中克隆代码到本地仓库
checkout(检出)-- 从本地仓库中检出一个仓库分支,然后进行修订
add(添加) -- 在提交前将代码提交到暂存区
commit(提交) -- 提交到本地方库,不进行任何的合并动作,一般操作比较少
fetch(抓取)-- 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少
pull(拉取) -- 从远程库拉到本地库,自动进行合并(merge),然后放到工作区,相当与: fetch + merge
push(推送) -- 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库中
基本配置
1. 打开 git bash
2. 设置用户信息:
git config -- global user.name"自定义名字"
git config -- global user.email"自己的邮箱"
查看配置信息:
git config -- global user.name
git config -- global user.email
git 获取本地仓库
要使用git 对代码进行版本控制, 首先需要获得本地仓库
1. 在电脑的任意位置,创建一个空目录文件夹,作为本地git仓库
2. 进入这个目录,点击右键打开 git bash 窗口
3. 执行: git init -- 创建成功后,可在文件夹下看到隐藏的.git目录
git 常用命令
git 版本操作命令
![image](https://img-blog.csdnimg.cn/img_convert/0f1a814f1c25848a10f058a0f4f7e7de.png)
git add "文件名"/. (工作区 --> 暂存区)
git commit -m "上传的文件注释" (暂存区 --> 本地仓库)
![image](https://img-blog.csdnimg.cn/img_convert/a4995c24782486bca16585d563eb3eb0.png)
git status -- 查看修改的状态 (暂存区、 工作区)
git log [option] -- 查看提交日志
options:
-- all 显示所有分支
-- pretty = oneline 提交信息显示为一行
-- abbrev - commit 使得输出的commit更简短
-- graph -- 以图的形式显示
git reset -- hard commitID -- 版本回退
commit ID 可以使用 git -log 或者 git log 指令查看
例:
如何查看已经删除的记录 -- git reflog
![image](https://img-blog.csdnimg.cn/img_convert/0b181b8c2fdf3e5f9fb03d0ce5798ced.png)
git 分支操作
开发中分支使用原则与流程
master (生产) -- 线上分支、主分支、中小规模项目作为线上运行的对应的分支
develop(开发)分支 -- 从master 创建的分支,一般作为开发部门的主要开发分支
feature/XXX分支 -- 从develop 创建的分支, 一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合需合并到develop分支上
hotfix/XXX分支 -- 从master派生的分支,一般作为线上bug修复使用,修复完后需要合并到master、 test、 develop 分支
test 分支 -- 用于代码测试
pre 分支 -- 预上线分支
-
git branch -a -- 查看本地分支
-
git branch 分支名称 创建本地分支
-
git checkout 分支名 -- 切换分支
-
git checkout -b 分支名称 --- 切换到一个不存在的分支 (创建并切换)
-
git merge 分支名称 -- 合并分支
-
合并解决冲突
步骤:
1. 处理文件冲突的地方
2. 将解决完冲突的文件加入暂缓区(add)
3. 提交到仓库 (commit)
![image](https://img-blog.csdnimg.cn/img_convert/d7828f93d7e887c80f688710e57638f7.png)
-
删除分支
不能删除当前分支, 只能删除其他分支
git branch -d b1 --- 删除分支时, 需要做各种检查
git branch -D b1 --- 不做任何检查, 强制删除
git代码托管服务
配置ssh 公钥
-
在git窗口输入: ssh -keygen -t rsa -
不断回车, 如果公钥已存在,则自动覆盖 -
gitee 或者 gitlab 上设置账户公钥 (1) 在git 窗口上 输入: cat ~/.ssh/id_ras.pub -- 获得公钥 (2) 复制获取的公钥后,在gitee页面上 或者gitlab页面上 输入, 验证是否配置成功 -
验证是否配置成功: 在git窗口 输入: ssh -T git@gitee.com
添加远程仓库
-
git remote add 新建的远程仓库分支名[origin] 远程仓库的ssh地址:[git@gitee.com:zhaoasdadasda/git_test.git] -
git remote -- 表示查看远程仓库
推送到远程仓库
-
git push [-f][--set-upstream] [远端名称][本地分支名]:[远端分支名]
-
-f --- 表示强制覆盖 -
--set-upstream -- 表示推送到远程的同时 并 建立起远端分支的关联练习 -
如果当前分支已经和远端分支关联,则可以省略分支名和远端名 -
git push -- 将master 分支推送到已关联的远端分支 -
git push origin master
-
如果远程分支名 和本地分支名称相同, 则可以只写本地分支
例子:
git push --set-upstream origin master: master -- 表示本地修改的master上传到代码库中的master分支中,且形成绑定关系 绑定本地分支和远程分支的关系
查看本地分支和远程分支关系
git branch -vv
从远程仓库克隆项目代码
如果有一个远程仓库,可以直接clone到本地
git clone <仓库路径> [本地目录] -- 本地目录可以省略, 会自动生成一个目录
从远程仓库中抓取和拉取
抓取:
远程分支和本地分支一样,可以进行merge操作,只需要先把远程仓库的更新否下载到本地,在进行操作
git fetch [ ] -- remote 是可选的参数,用于指定要获取更新的远程仓库
注意: 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并,如果不指定远程名称和分支名,则抓取所有分支
拉取:
git pull
拉取指令就是将远程仓库的修改拉到本地并自动进行合并,等同于: fetch + merge
如果不指定远端名称和分支名,则抓取所有并更新分支
本文由 mdnice 多平台发布