git学习使用笔记

git学习使用笔记

前情提要:下载安装并配置git

进入网站https://git-scm.com/下载安装,然后在命令行执行配置:

git config --global user.name "学编程的鱼丶"
git config --global user.email "xxx@xxx"

#选择执行(出现中文乱码执行):

git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
set LESSCHARSET=utf-8     //windows配置环境变量
//export LESSCHARSET=utf-8    linux bash配置环境变量

检查信息是否写入成功

git config --list

一.常用的开发分支

master 分支 : 主分支,不轻易改动,主要做正式发版使用,一般发版的包都从 master 分支中构建
release 分支 : 预发布分支,是在正式发版前的测试使用分支,测试使用的包都从此处构建,测试完成后合并到 master 分支进行发版
develop 分支 : 开发分支,每个版本的所有需求开发所在分支
feature 分支 : 具体的需求开发分支,因为开发大都是团队协作,开发成员负责自己的需求开发时,一般建议从 develop 分支中重新拉一条分支出来,作为成员自己的开发分支,最后再合并到 develop 分支中,所以 feature 分支一般会有多个
hotfix 分支 : 紧急修复分支,如果线上版本遇到bug,则一般建议从 master 分支拉出一条分支,作为紧急修复分支,在 hotfix 测试没有问题后,合并到 master 进行紧急发版

二.常用的Git管理流程

从上述常用分支介绍中,我们可以大致了解团队开发时的Git管理流程,此处我们再详细介绍一下常用的管理流程。
在这里插入图片描述
Step 1 : 项目创建 master 分支。
Step 2 : 从 master 分支中拉出一条 develop 分支,作为所有的开发需求的汇总分支。
Step 3 : 进行具体的需求开发时,每位开发成员从 develop 分支中拉出一条分支,作为自己的 feature 分支进行具体的需求开发。
Step 4 : 开发完成后的 feature 合并到 develop。
Step 5 : 所有的需求都开发完成后,从 develop 分支中拉出一条 release 分支,提供给 QA 进行测试。不过,有时为了效率,release 分支可能会被省略,直接使用 develop 分支代替。但是如果项目开发时会出现交叉开发,那么个人认为 release 分支的存在还是很重要的。例如本期版本需求还未测试完毕,进行发版,下一期需求就要进行开发,则此时 develop 分支中可能就会混入下期需求代码,那么 release 分支的存在就很有必要了。
Step 6 : 测试完成后,release 分支合并到 master 分支进行发版,并且每次发版都需要打标签,方便后续对历史版本复盘。
Step 7 : 如果线上版本出现紧急bug,则从 master 分支拉出一条 hotfix 分支,对 bug 进行紧急修复,测试完成后将 hotfix 分支合并到 master 进行紧急发版,同时也需合并到 develop 分支。

三.基础用法

git add xxx
git commit -m 'xx'
git pull
git push

四.基础命令说明

git init  创建git版本库
git clone xx/xx.git  克隆远程仓库到本地

git remote  查看远程库的信息
git remote –v  查看远程库的详细信息

git status  查看状态
git add .    将所有文件添加到暂存区
git add xx  将单个文件添加到暂存区
git commit -m 'xx'  把暂存区文件提交到当前分支上
git commit -am 'xx'  (git add .和git commit -m 'xx'的结合)
git pull  拉取远程最新代码并更新本地代码
git push  将当前分支上的代码上传到远程git仓库
git diff xx  查看文件的改动
cat xx  查看文件内容

git log  显示所有提交日志
git log –pretty=oneline  按单行显示所有提交日志
git reflog  获取所有提交日志的版本号

git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上一个版本(以此类推)
git reset --hard HEAD~100 回退到前100个版本(100为任意正整数)
git reset --hard HEAD xxx  回退到某一个版本(xxx为版本号)
git reset --soft HEAD~  只移动HEAD 的指向,但并不会将快照回滚到暂存区域;相当于撤消了上一次的提交(commit)

git checkout -- xx  撤销工作区的修改(未add前修改的内容,撤销到与版本库一样;add后再修改的内容,撤销到add处)
rm xx 配合git add、git commit可以实现彻底删除文件(本地和远程)

五.本地仓库和远程仓库同步

本地已经git init创建过新仓库,若无仓库可git clone克隆远程仓库到本地

第一步:创建SSH Key(id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人)

ssh-keygen -t rsa -C "xxx@xxx"   

第二步:登录github,打开“settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容,并点击创建;
第三步:然后在右上角找到“New repository”创建一个新的仓库;
第四步:本地代码库添加到远程仓库

git remote add origin https://github.com/xxx/xx.git

第五步:将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了

git push -u origin master

六.创建与合并分支(dev分支等)

1.查看分支:

git branch

2.创建分支:

git branch xx

3.切换分支:

git checkout xx

4.创建+切换分支:

git checkout –b xx

5.把新建的分支推动到远端

git push origin xx

6.建立远端分支和本地分支的关联

git branch --set-upstream-to=origin/xx

7.验证创建分支是否成功

git pull

出现Already up to date ,代表创建成功

8.合并某分支到当前分支:

git merge xx  

9.合并某分支到当前分支,禁用“Fast forward”模式:

git merge --no-ff -m "注释" xx   //采用这种方式,删除分支后,git log还会有分支信息

10.删除分支:

git branch –d xx

七.bug分支

假设现在存在主分支和dev开发分支,主分支出现bug
第一步:先把正在开发的dev分支代码隐藏

git checkout dev
git stash

第二步:在主分支下创建bug分支并切换

git checkout master
git checkout -b bug

第三步:在bug分支下,修改bug;并提交代码

git add xxx;git commit -m 'xx'

第四步:切换到主分支合并bug分支并删除分支

git checkout master
git merge --no-ff -m "修复bug合并到主分支" bug
git branch -d bug

第五步:切换到dev分支,查看隐藏区列表,并删除隐藏区恢复代码;最后提交dev分支的开发代码

git checkout dev
git stash list
git stash pop
git add xxx
git commit -m 'xx'

第六步:切换到主分支并合并dev分支,有冲突解决冲突代码文件;最后提交代码到远程仓库

git checkout master
git merge dev

git add xxx
git commit -m 'xx'
git push

八. 忽略,取消忽略,找到忽略本地文件(针对.gitigore忽略不了的文件)

忽略文件:

git update-index –assume-unchanged xx

取消忽略文件:

git update-index –no-assume-unchanged xx

但是忽略的文件多了,想找出所有被忽略的文件,暂时找到下面的办法:

git ls-files -v | grep '^h '

提取文件路径,方法如下:

git ls-files -v | grep '^h ' | awk '{print $2}'

所有被忽略的文件,取消忽略的方法,如下:

git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值