git常用操作命令
git设置用户名和邮箱
//若想为某个项目单独设置用户名和邮箱,则可以执行下方命令,(与全局设置的区别就是不加 --global)
git config user.name "xxxxxxx"
git config user.email "gujunq1998@163.com"
//全局设置用户名和邮箱
git config --global user.name "xxxxxxx"
git config --global user.email "gujunq1998@163.com"
// 删除全局的用户和邮箱
git config --global --unset user.name
git config --global --unset user.email
//设置之后的查看配置的用户名和邮箱
git config --list
//注意,全局配置用户名和邮箱之后在想为某个项目单独设置用户名和邮箱设置的可能不会生效。
//若想设置,则可以按照如下方式设置
//1.进入到该项目的.git目录,执行如下命令
git config --local --unset user.name
git config --local --unset user.email
//2.设置局部的用户名和邮箱
git config user.name "xxxxxxx"
git config user.email "gujunq1998@163.com"
//3.通过下方命令查看设置是否成功
//注意是在.git这个隐藏文件夹下执行命令
cat config
git分支命令
git checkout test //切换到指定的test分支
git branch xxx //新建一个xxx分支
git checkout -b xxx //新建一个xxx分支,并切换到xxx分支,相当于上面两个的结合
git branch -a //列出所有的本地分支和远程分支
git branch //列出所有的本地分支
git branch -r //列出所有的远程分支
git branch -d xxx //删除xxx分支
代码拉取
拉取远程仓库代码到本地仓库
//若没有克隆过代码则使用下方命令(第一次拉取项目代码)
git clone -b pre https://github.com/gujunling/vue-template.git //从远程仓库中拉取当前项目下的prod分支下的代码,https://github.com/gujunling/vue-template.git 为该项目的https链接
// 例如拉取我的github上的pre分支的代码:
git clone -b pre https://github.com/gujunling/vue-template.git
//拉取远程仓库中的pre分支中的代码到本地,此时是在拉取过代码之后的操作
git pull origin pre
代码提交
1. 初始化本地仓库(只有第一次执行git命令提交代码需要,以后不再需要执行此命令)
git init //在当前目录下新建一个git仓库,即初始化,会在当前文件夹下创建一个.git文件夹,该文件夹是隐藏文件夹,可以通过勾选查看中的隐藏的项目进行显示
2.添加本地代码到暂存区
git add * 或者 git add . // 添加当前目录的所有文件到暂存区
git add xxx //添加指定文件到暂存区
//若某些文件或目录不想要提交,可以在根目录下新建一个 .gitignore 文件,在该文件中添加相关问价或目录即可
//注意,.gitignore文件只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore也是无效的,可以重新拉取代码或者手动去除不想提交文件的修改内容。
//若不小心把一个不需要的文件添加到暂存区中,想要从暂存区中删除该文件则可以执行下方命令:
git rm --cache xxx.vue
只把文件从暂存区删除,不会修改文件的内容,也不会删除文件
git rm -f xxx.vue
直接把文件从暂存区删除,同时删除物理文件,回收站也找不到。
//是否删除成功,可以通过下方命令查看git状态
git status
//若列举出的文件中不包含删除的文件则表示从暂存区中删除成功。
3.提交代码到本地仓库
代码的提交规范是约定式提交规范
(Conventional Commits
),可以使用命令git cz
或者vscode的插件(vsc-commitizen
)等将代码提交到本地仓库的,使用命令操作见下文 git提交代码到本地,拉取代码和解决冲突等根据自己的个人习惯,使用命令、插件、图形化界面均可。
// git commit '提交文件的描述' //但这样提交代码会显得代码提交太乱,毕竟不同人提交代码习惯不同,这种行为是不好的。
//推荐使用下方命令来提交代码(遵循 约定式提交规范 ,是目前使用最广的写法,比较合理和系统化,并有配套的工具)
git cz 会打开提交代码的描述,通过方向键控制上下移动,选中后通过敲击回车键执行下一步,如果在这个过程中选择错误或者想撤销提交代码到本地,可以按Ctrl+C结束
注意
若项目还不支持使用git cz
命令,则可以使用如下命令安装。
npm install -g commitizen
//在项目的目录下执行如下命令,使其支持 Angular 的 Commit message 格式。
commitizen init cz-conventional-changelog --save --save-exact
git cz
命令执行后会进入 interactive 模式,具体的type类型的选择参考如下
值 | 描述 |
---|---|
feat | 新增一个功能 |
fix | 修复一个Bug |
docs | 文档变更 |
style | 代码格式(不影响功能,例如空格、分号等格式修正) |
refactor | 代码重构 |
perf | 改善性能 |
test | 测试 |
build | 变更项目构建或外部依赖(例如scopes: webpack、gulp、npm等) |
ci | 更改持续集成软件的配置文件和package中的scripts命令,例如scopes: Travis, Circle等 |
chore | 变更构建流程或辅助工具 |
revert | 代码回退 |
注意
选择自己提交的类型后回车,依次填写改动范围、精简描述、长描述、是否是破坏性修改、修复了什么问题等,填写完毕后,husky
会调用commitlint
对message进行格式校验,默认规定type
及subject
为必填项。
1.Select the type of change that you're committing 选择改动类型 (<type>)
2.What is the scope of this change (e.g. component or file name)? 填写改动范围 (<scope>)
3.Write a short, imperative tense description of the change: 写一个精简的描述 (<subject>)
4.Provide a longer description of the change: (press enter to skip) 对于改动写一段长描述 (<body>)
5.Are there any breaking changes? (y/n) 是破坏性修改吗?默认n (<footer>)
6.Does this change affect any openreve issues? (y/n) 改动修复了哪个问题?默认n (<footer>)
提交到本地仓库的描述示例如下:
-
fix(xxx): 修复了xxx bug
-
feat(组件): 新增组件的xxx功能
-
chore(配置): git隐藏文件配置修改
-
。。。。。。
4. 提交本地仓库中的代码到远程仓库
//注意,一般在提交代码到远程仓库前都需要先将远程仓库的代码拉取下来,防止自己改动的代码影响到协作开发的其他人员的代码
//即,先执行 git pull 在执行 git push
git pull origin xxx //拉取远程仓库中xxx分支的代码到本地仓库
git push origin xxx //提交本地仓库的代码到远程仓库中的xxx分支
//例如:
git pull origin master //拉取远程仓库中master分支下的代码,但最近GitHub上新建项目的主分支名称全部改为main分支,因为个别人认为master分支不尊重人。
git push origin main //将本地仓库中的代码提交到远程仓库中的main分支上。
注意
若提交代码时出现错误,查看是否是初次提交,没有将本地仓库与远程仓库进行绑定,绑定远程仓库命令如下
git remote add origin 你的远程仓库的URL
//例如
git remote add origin https://github.com/gujunling/vue-template.git
//绑定之后可以通过执行下方命令来查看当前仓库绑定的远程仓库信息
git remote -v
其他常用命令
//1 查看git状态
git status
//2 查看当前分支下的版本历史,即日志
git log
作 者:sweetheart1998
出 处:https://home.cnblogs.com/u/gujun1998/
如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
如果您觉得文章对您有帮助,可以点击文章右下角推荐一下!