git仓库的使用
主要是因为停更博客园了,为了方便自己查看,就再在优快云上整理多一次。
git分支介绍
一般软件的发布分为dev -> stag -> pre -> prod四个流程,
相对应的分支相当于:feature -> develop -> release -> master
master:主分支。代表线上正式服务器的版本,主要负责记录stable版本的迭代,master分支永远都是-ready状态,即稳定可发布状态,每一次合并到master都应该伴随版本号的变化。
release:预发布版本。当develop手机够一次版本发布所需要的代码,就checkout -b 出一个release分支,作为上线前最后的测试,除了bugfix外不接受任何提交。确定发布后分别merge到master和develop。
develop:测试服务器上的版本,作为开发环境中的主分支使用,任务是收集各个feature分支。
feature:新功能主要就在这个分支系列下进行开发。每个开发人员开发的功能就需要创建一个feature分支,当功能点开发测试完毕后,就会合并到develop分支上。
1.下载安装配置用户名和邮箱
git config -global user.name "binguo" //设置用户名
git config -global user.email "19099xxxxx@qq.com" //设置邮箱
git config user.name //查看用户名
//binguo
git config user.eamil //查看邮箱
//19099xxxxx@qq.com
注:为什么要设置用户名和邮箱?
因为Git是分布式版本操作系统。所以,每个机器都必须自报家门:你的名字和Email地址(名字和地址都不会进行验证),这样远程仓库才知道那次提交是由谁完成的。
2.基本文件的操作指令
仓库初始化指令
git init //将当前目录作为Git仓库
git init name //新建一个名称为name的仓库
我们可以通过上诉命令进行Git仓库的创建,创建完成之后,进入仓库会发现多了一个.git的文件夹(如看不到,需要勾选查看中显示隐藏文件选项)。
仓库查询指令
git status //检查上次仓库是否有修改,加-s参数表示简短输出
git diff //执行 git diff 来查看执行 git status 的结果的详细信息
//尚未缓存的改动:git diff
//查看已缓存的改动: git diff --cached
//查看已缓存的与未缓存的所有改动:git diff HEAD
//显示摘要而非整个 diff:git diff --stat
git log //显示从最近到最远提交日志
git log --pretty=oneline //单行实现版本日志
仓库添加指令
git add name //添加name文件到缓存区
git add . //添加所有文件到缓存区
git commit //将缓存区内容添加到仓库中。参数:-m提供注释,-am提交已跟踪缓存内容
git reset HEAD name //取消已缓存的内容
git reset --hard //回退到某个版本。参数:HEAD^上个版本,HEAD~n上n个版本,id版本id
git rm name //删除文件。参数:-f强制删除,--cached仅删除缓存区文件,-r递归删除子目录
git mv oldname newname //用于移动或者重命名一个文件、目录、软连接
我们可以通过git add添加文件到缓存区,然后通过git commit进行提交。
注意git commit -m 和git commit -am的却别
我们需要理解已跟踪和未跟踪的概念。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新、已修改或者已翻入缓存区。当我们再次修改1.txt文件的时候,由于之前已经git add过了,其早已变成已跟踪状态,所以我们可以通过git commit -am 直接提交,省略了git add 1.txt这步。当然也可以先用git add再用git commit -m提交。
git reset HEAD用于取消缓存的内容,当我们添加了不想添加的内容到缓存区中,我们可以用该命令来取消添加。
git reset --hard用于回滚到某个版本
git rm 、git rm -f、git rm --cached和git rm -r区别
git rm用于删除某个文件,当删除的文件已存放到缓存区时,如果要删除该文件,必须要用到git rm -f强制删除,但如果你仅仅想从暂存区中删除文件,希望文件仍保存在当前工作目录中,则需要用到git rm --cached命令。如果是想要删除一个目录文件则需要用git rm -r递归删除里面的子文件.
3.基本分支管理指令
git branch //列出所有分支
git branch name //创建分支
git branch -d name //删除分支
git checkout name //切换分支
git merge name //合并分支
git fetch origin dev // 拉取仓库分支
git checkout -b dev(本地分支名称) origin/dev(远程分支名称) //将本地分支切换为仓库分支
如上图,每次创建仓库,会有个默认主分支(master),当我们在当前分支创建新分支,其主分支文件(master)也会保存在分支上。
接着我们在切换不同分支,修改1.txt的文件内容,然后切换回主分支,再进行合并分支。
我们看到当我们合并test分支的时候由于2个分支的1.txt文件不一致,所以产生了合并冲突。这时候,我们只需要通过git diff查看哪些冲突,修改之后git git commit -am即可。
4.github仓库管理
添加权限
首先需要创建自己的ssh
ssh-keygen -t rsa -C "15766775589@163.com" :创建SSH Key
/c/Users/Administrator/.ssh:该目录下有id_rsa和id_rsa.pub两个文件。
接着将本地的id_rsa.pub添加到自己的github的SSH keys中。
完成之后我们就可以进行github仓库的操作了。
操作github仓库
git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git
如果提示出错信息:fatal: remote origin already exists.
解决办法如下:
1、先输入$ git remote rm origin
2、再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了!
链接成功之后,我们就可以对其进行基本的操作了!
git clone url //拷贝仓库中的内容
git pull origin master //将远程仓库的项目拉下来
git push -u origin master //将本地的项目更新到github上去。
完成之后我们再结合上诉基本命令对git仓库进行操作即可。