大家好,我是小七
前言
Git
是程序员写我的项目必备的一个工具,工欲善其事必先利其器,显然这把武器对于我来时只是施展了它最简略的性能,这不,前两天我就在分支上合错代码了,尽管共事没说什么,然而这还是很不应该犯的错,于是我决定对 Git
做一个较为具体的学习和总结。
Git 介绍
Git
是一个开源的分布式版本控制系统,能够无效、高速的治理从很小到十分大的我的项目版本治理。它不须要网络的反对,现已成为很多开发人员对我的项目版本治理的首选,也能够用来治理本人的一般文档版本。
Git
的命令很多,在日常开发中应用都只须要用到几个简略的命令即可,所以本文会先从_名词解析_介绍,在介绍 Git
的_常用命令_在我的项目中的利用。
名词解析
对于 Git
能够在官网下载应用,在介绍命令前也来了解几个名词概念
工作区
指的是在电脑里能看到的目录,目录里有你操作的各种文件
版本库
在工作区有一个暗藏的文件叫 .git
,这个就是Git
的版本库,版库里蕴含称为 stage
的暂存库,还有 Git
给咱们创立的第一个分支 master
,以及指向master
的指针HEDE
近程仓库
在 github
、gitlab
或gitee
这写平台上创立的代码仓库,与本地版本库做关联,就能实现上传版本我的项目或文档
常用命令
Git
在工作中罕用的命令有
git config
git init
git clone
git status
git add
git commit
git log
git reset
git push
git pull
git stash
git branch
git checkout
git merge
git fetch
git tag
接下来会一一介绍这么命令的用法
git config
配置个人信息,包含用户名和邮箱
git config --global user.name "my name"
git config --global user.email "my email.com"
这样在代码后提交的提交记录,就会是有本人设置的个人信息,一部分公司也会依据代码提交的信息对代码做审核决定年终考评奖金等
ssh-keygen -t rsa -C "my email.com"
创立秘钥,生成的秘钥放在 ~/.ssh
目录下,依据提醒全副回车即可,操作实现之后将公钥放在 github
仓库中,之后操作我的项目就免密输出了
git init
初始化 git 仓库
git init
初始化一个 Git
仓库
git clone
克隆近程仓库
git clone < 近程仓库链接 >
以后的文件夹里就会把近程仓库的我的项目下载到本地
git status
查看文件变动状态
git status
能够看到我的项目中的文件是否提交
git add
把工作区的文件提交到暂存区
git add < 文件名 >
git add . // 提交工作区全副文件
是提交文件的第一步
git commit
把工作区的文件提交到 git 仓库
git commit -m < 提交信息 >
提交文件的第二步
git commit --amend -m < 新的提交信息 >
参数 --amend
岂但能够批改提交信息,如果暂存区有批改的话还能把上一次的提交替换掉
提交信息标准
fix
:修复了一个bug
feat
:新增了一个性能refactor
:重构某块代码perf
:改良性能docs
:文档相干test
:测试相干ci
:CI/CD
相干chore
:其余类型
举例:如果新增了一个登陆性能提交信息能够为,feat: 增加登陆性能
git log
查看版本提交记录
git log // 查看最近三次提交
git log --pretty=oneline // 一行输入提交信息
能够查看到版本的提交信息,包含提交人,日期,提交起因,提交的惟一编号等
git reset
版本回退
git reset --hard HEAD^
HEAD^
回退到上一个版本并且提交内容也会还原到上一个版本,HEAD
代表版本,回退到前 n
个版本可用 HEAD~N
示意
git push
把 git 仓库里的文件推送到近程仓库
在提交前能够给近程仓库起一个别名
git remote -v // 查看所有近程仓库别名
git remote add [别名] [近程仓库地址]
git push -u [别名] [分支名]
提交文件最初一步,-u
用于第一次推送,能够把本地分支和近程仓库分支做关联。之后提交就不必加 - u 参数了。
git pull
把近程仓库的最新代码拉取到本地并合并
git pull [别名] [分支名]
能够拉取近程仓库的代码并合并到本地 相当于git fetch
和 git merge
git fetch
只是拉取近程仓库代码
git fetch [别名] [分支名]
取回更新后,会返回一个 FETCH_HEAD
,指的是某个branch
在服务器上的最新状态,咱们能够在本地通过 git log -p FETCH_HEAD
查看刚取回的更新信息
通过这些信息来判断是否产生抵触,以确定是否将更新 merge
到以后分支
git merge
将指定分支合代码并到以后分支
git merge < 指定分支名 >
合并代码时可能会产生抵触,解决即可失常运行
git stash
保留以后批改
git stash
把以后批改版本保留下来,能够切换到其余分支或拉取近程分支也不会有抵触
git stash pop
把保留的版本取出来
git stash list
查看所有保留版本的信息,存储能够间接通过索引的地位来取得stash@{n}
.
git branch
对分支进行增删改查的操作
git branch
查看本地分支列表
git branch < 分支名 >
新建一个分支并命名
git branch -m < 旧分支名 > < 新分支名 >
批改本地分支名
git branch -d < 分支名 >
删除本地分支
分支命名标准
master
主分支develop
开发分支feature/xxx
新性能分支bugfix/xxx
修复bug
分支hotfix/xxx
热修复分支,修复紧急bug
release/x.x.x
新版本分支
git checkout
切换分支
git checkout < 分支名 >
切换到指定分支上
git tag
为我的项目标记里程碑
git tag < 标签名 >
可在重要节点为我的项目代码做一个标记
总结
上述命令只是 git
的常用命令,把这些把握了,应答日常开发是齐全足够的,遇到一下简单的状况,Google
一下即可,记得要把你遇到的问题和解决的计划都记录下来哦,这样再遇到相似问题就能触类旁通了,把每一个踩过的坑都变成你成长的营养
我是小七,一个喜爱读书的的程序媛小姐姐,初入职场还有很多须要学习,喜爱分享本人的生存感悟和小菜鸡的技术总结,感兴趣的能够搜寻 wx 搜寻,我说姑娘,关注我,和我一起成长吧!