git个人使用总结(命令版)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git个人使用总结(命令版)相关的知识,希望对你有一定的参考价值。
一、基础命令
快照类操作:add、status、diff、commit、reset、rm、mv
分支类基本操作:branch、checkout、log、stash
分享及更新项目基本操作:pull、push
组合场景操作:
获取代码:创建仓库(UI)、clone
提交代码:add、status、diff、commit、reset
分享代码:branch、push
更新代码:stash、rebase、pull
阅读他人代码:checkout、log
贡献代码:fork、merge request
二、以下为具体操作与截图
1、获取代码
在git bash命令下执行git clone <git下载地址>,例如:git clone [email protected]:zhanyuyi/git_basic_homework.git
2、 建立.gitgnore
(1)第一次提交代码前,建立.gitignore,在git bash命令下执行touch .gitignore即可生成
(2)建立.gitignore后,提交
//添加.gitignore文件到暂存区
git add .gitgnore
//提交
git commit -m "chore:添加.gitgnore,忽略不需要版本跟踪的文件"
(3)用文本编辑器如editplus或notepad++输入需要忽略的文件或文件名,一般可忽略的文件有以下:
##ignore this file##
/target/
.classpath
.project
.settings
##filter databfile、sln file##
*.mdb
*.ldb
*.sln
##class file##
*.com
*.class
*.dll
*.exe
*.o
*.so
# compression file
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
*.via
*.tmp
*.err
# OS generated files #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
备注:
/target/ :过滤文件设置,表示过滤这个文件夹
*.mdb ,*.ldb ,*.sln 表示过滤某种类型的文件
/mtk/do.c ,/mtk/if.h 表示指定过滤某个文件下具体文件
!*.c , !/dir/subdir/ !开头表示不过滤
*.[oa] 支持通配符:过滤repo中所有以.o或者.a为扩展名的文件
该方法保证任何人都提交不了这类文件
3、提交代码
本地working directory、staging area暂存区、local repo三个区域间切换关系
提交代码前需要做好2点,第一,一次提交只做一件事;第二,review后才提交。
通常为以下步骤:
//步骤1:查看本地仓库状态 git status //步骤2:添加认为本次提交应包含的文件到暂存区 git add file1 ... //步骤3:review暂存区内容 git diff --cached //若review发现问题,则继续修改,然后再add,直到满意 ... //步骤4:提交到本地仓库 git commit -m "feat:新增a.java" //步骤5:提交到远程仓库 git push
有提交必然有提交日志,提交日志格式:
<type>(<scope>):<subject> //空一行 <body>
提交日志规范如下:
type 用于表示commit的类别,允许用下面8个标识 ftr/(feat):新功能(feature)无ftr历史原因的,请使用feat fix:修补bug docs:文档(documentation) style:格式(不影响代码运行的变动) refactor:重构(即不是新增功能,也不是修改bug的代码变动) test:增加测试 chore:构建过程或辅助工具的变动 conflict:解决冲突 scope
用来标识当前提交代码的影响范围 如果jira单对应,用(#jira-1)的格式来标准(如果jira单对应feat或fix,强制性添加) 如果没jira单对应,则按层级描述代码的影响范围(eg:view,viewmodel,net,test,model,utils,protocol,presenter) 如果在代码评审工具Phabricator评审代码,在scope中加上fix的hash id 如果没合适的范围,可以不填
subject
是commit目的的简短描述,不超过50个字符。
以动词开头
结尾不加句号(。)或句点(.)
body
是对本次commit的详细描述,可以分成多行
提交范例:
有jira单例子
ftr(#JIRA-1):完成计算器加减开发 计算器加减法功能完成 -添加加减法计算UI -添加错误提示样式
没jira单例子
refactor(viewmodel):重构add viewmodel部分代码,提高性能
add计算逻辑优化
-整型改为浮点型计算
4、合并代码
合并他人分支时,例如需要把task_TEST-1_zhanyuyi合并到master分支
第一,若不在master分支,使用git checkout master把当前分支切换到master分支;
第二,使用git merge task_TEST-1_zhanyuyi后,确定merge成功;
第三,使用git push,把当前的master分支推送到远程master分支;
5、分享代码
未完,待续
以上是关于git个人使用总结(命令版)的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程