你们好,我是小七
Git
是程序员写项目必备的一个工具,工欲善其事必先利其器,显然这把武器对于我来时只是发挥了它最简单的功能,这不,前两天我就在分支上合错代码了,虽然同事没说什么,可是这仍是很不该该犯的错,因而我决定对Git
作一个较为详细的学习和总结。git
Git
是一个开源的分布式版本控制系统,能够有效、高速的管理从很小到很是大的项目版本管理。它不须要网络的支持,现已成为不少开发人员对项目版本管理的首选,也能够用来管理本身的普通文档版本。程序员
Git
的命令不少,在平常开发中使用都只须要用到几个简单的命令便可,因此本文会先从_名词解析_介绍,在介绍Git
的_经常使用命令_在项目中的应用。github
对于Git
能够在官网下载使用,在介绍命令前也来理解几个名词概念服务器
指的是在电脑里能看到的目录,目录里有你操做的各类文件网络
在工做区有一个隐藏的文件叫.git
,这个就是Git
的版本库,版库里包含称为stage
的暂存库,还有Git
给咱们建立的第一个分支master
,以及指向master
的指针HEDE
ssh
在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
接下来会一一介绍这么命令的用法gitlab
配置我的信息,包括用户名和邮箱
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仓库
git init
初始化一个Git
仓库
克隆远程仓库
git clone <远程仓库连接>
当前的文件夹里就会把远程仓库的项目下载到本地
查看文件变更状态
git status
能够看到项目中的文件是否提交
把工做区的文件提交到暂存区
git add <文件名> git add . // 提交工做区所有文件
是提交文件的第一步
把工做区的文件提交到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 --pretty=oneline //一行输出提交信息
能够查看到版本的提交信息,包括提交人,日期,提交缘由,提交的惟一编号等
版本回退
git reset --hard HEAD^
HEAD^
回退到上一个版本而且提交内容也会还原到上一个版本,HEAD
表明版本,回退到前n
个版本可用HEAD~N
表示
把git仓库里的文件推送到远程仓库
在提交前能够给远程仓库起一个别名
git remote -v //查看全部远程仓库别名 git remote add [别名] [远程仓库地址]
git push -u [别名] [分支名]
提交文件最后一步,-u
用于第一次推送,能够把本地分支和远程仓库分支作关联。以后提交就不用加-u参数了。
把远程仓库的最新代码拉取到本地并合并
git pull [别名] [分支名]
能够拉取远程仓库的代码并合并到本地 至关于git fetch
和 git merge
只是拉取远程仓库代码
git fetch [别名] [分支名]
取回更新后,会返回一个FETCH_HEAD
,指的是某个branch
在服务器上的最新状态,咱们能够在本地经过git log -p FETCH_HEAD
查看刚取回的更新信息
经过这些信息来判断是否产生冲突,以肯定是否将更新merge
到当前分支
将指定分支合代码并到当前分支
git merge <指定分支名>
合并代码时可能会产生冲突,解决便可正常运行
保存当前修改
git stash
把当前修改版本保存下来,能够切换到其余分支或拉取远程分支也不会有冲突
git stash pop
把保存的版本取出来
git stash list
查看全部保存版本的信息,存储能够直接经过索引的位置来得到stash@{n}
.
对分支进行增删改查的操做
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 tag <标签名>
可在重要节点为项目代码作一个标记
上述命令只是git
的经常使用命令,把这些掌握了,应对平常开发是彻底足够的,遇到一下复杂的状况,Google
一下便可,记得要把你遇到的问题和解决的方案都记录下来哦,这样再遇到相似问题就能触类旁通了,把每个踩过的坑都变成你成长的营养
我是小七,一个喜欢读书的的程序媛小姐姐,初入职场还有不少须要学习,喜欢分享本身的生活感悟和小菜鸡的技术总结,感兴趣的能够搜索wx搜索,我说姑娘,关注我,和我一块儿成长吧!