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自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

Git命令总结

完整教程-idea使用git进行项目管理(总结版)