Git 基础知识
文章目录
Git 简介
版本控制工具,分布式版本控制系统
git commit 注释标记
- feat: 添加新功能
- fix: 修复bug
- refactor: 代码重构,没有加新功能(即不是新增功能,也不是修改 bug 的代码变动)
- merge: 分支合并,解决冲突
- docs: 仅仅修改了文档
- style: 仅仅修改了空格、格式缩进等等,不改变代码逻辑
- test: 增加测试用例
- debug: 增加调试日志
- chore: 构建过程、辅助工具的变动
- perf: 提高性能
建立分支名规范
模板:开发者姓名拼音首字母_feat/fix_功能名
- zs_feat_功能: 建立新功能分支
- zs_fix_修复内容:建立 bug 修复分支
git remote
|
|
git stash
当开发一个功能未完成突然要修复bug时,Git提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。
|
|
代码回滚命令
-
git reset
1 2 3 4 5 6
git reset --hard <old-commit-id> # 回滚 git reset --hard HEAD^ #回退到上一个版本,HEAD^可以更改为commit版本号 git reset . # 取消已贮存文件 git reset HEAD <file> #git暂存区add的file文件回退工作区 git reset --soft HEAD^ # 撤回commit操作,提交的代码仍然保留『代码保留在暂存区』 git reset --mixed HEAD^ # 撤回commit操作,提交的代码仍然保留『代码保留在工作区』(常用点)
-
git checkout # 丢弃该file文件在工作区的修改
-
git clean -f -d # 清理新建的新增且未提交项目,-f 是强制清理文件的设置,-d 选项命令连文件夹一并清除
-
版本回退:先本地版本回退,再强制 push 到 GitLab
1 2
git reset --hard <old-commit-id> git push -f <remote-name> <branch-name> #git push -f origin uat,主要是加个-f参数『Settings->Repository->Protected branches: gilab:master默认分支是保护状态取消分支保护即可提交』
忽略跟踪
|
|
tag
|
|
其他常用命令
|
|
Git 文件的三种状态
在Git中,文件只有三种状态,已修改,已暂存和已提交。
这三个文件分别放在工作目录,暂存区域和git目录。当一个文件修改完毕之后,它仍然在工作目录;只有当它被add之后,才会进入暂存区域,文件状态变为已暂存;最后,当文件被 commit之后,它就会进去git目录区域。
Git 常用分支
- master:生产环境分支,不允许直接提交代码,只能从uat和hotfix分支合并
- uat:预生产环境分支,不允许直接提交代码,只能从feature和hotfix分支合并,提交到这个分支意味着随时能合并到master并发布
- develop:开发测试环境分支,不允许直接提交代码,从uat和master分支fork代码 只能从feature和hotfix分支合并
- feature:新功能开发分支,从uat分支fork代码,开发完成后合并到develop测试,测试通过后合并到uat分支,然后删除重新fork
- hotfix:生产环境修复分支,从master分支fork代码,开发完成后合并到master,酌情合并到其它分支,然后删除重新fork
Git 多帐号配置
-
生成两个ssh秘钥,关联不同的git账号,一个用于github,一个用于公司
-
秘钥校验配置:vi ~/.ssh/config
1 2 3 4 5 6
# github Host github.com HostName github.com User xxx@.com PreferredAuthentications publickey IdentityFile /Users/xxx/.ssh/id_rsa_github
-
然后进入项目文件夹下,执行命令
1 2
git config user.name "your_name" git config user.email "your_email"
配置信息
-
用户名设置
- git config –system user.name “hic”
- git config –global user.name “hic”
-
电子邮件
git config –global user.email “hic@gmail.com”
-
查看配置信息
git config -l
-
如果要查看某个特定的环境变量,只要把它的名字放到最后即可
git config user.name
-
配置git 使其对文件名大小写敏感
git config core.ignorecase false
-
编辑/删除全局变量
git config –global –edit
-
添加全局变量,将 http 拉取代码的方式替换为 ssh 方式
git config –global url.“git@gitlab.xxx.cn:".insteadOf “http://gitlab.xxx.cn/"
公司变更 gitlab 地址后需执行的操作
- 在新 gitlab 上 add ssh key「在本机执行命令:cat ~/.ssh/id_rsa.pub 即可获取ssh key」
- 在本地代码库执行更换源命令:git remote set-url origin git@gitlab.xxx.com:xxx/对应项目名称.git
分支开发流程图
GitHub
fork项目后,如何同步更新原先项目的提交
|
|