git 基本操作 -- 涵盖日常基本使用
git基本概念
1. 开发中的实际场景:
备份、
代码回滚、
协同开发、
追溯问题代码的编写人和编写时间
2. 版本控制方式:
集中式版本控制: svn 和 cvs
分布式版本控制: git
git工作流程
命令:
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 版本操作命令
git add "文件名"/. (工作区 --> 暂存区)
git commit -m "上传的文件注释" (暂存区 --> 本地仓库)
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
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)
删除分支
不能删除当前分支, 只能删除其他分支 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 远端名称:[远端分支名]
- -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>] -- remote 是可选的参数,用于指定要获取更新的远程仓库
注意: 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并,如果不指定远程名称和分支名,则抓取所有分支
拉取:
git pull
拉取指令就是将远程仓库的修改拉到本地并自动进行合并,等同于: fetch + merge
如果不指定远端名称和分支名,则抓取所有并更新分支
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。