1. git分支命令规范

1. Master 主分支
2. Dev 开发分支
3. Feature 功能分支(例如:feature-x)
4. Release 预发布分支(例如:release-1.2)
5. Bug 分支(例如:fixbug-0.1)

2. git中commit规范

git add后,如果没有特性描述要添加则直接执行git commit。否则使用git commit -m <mess>

格式:
<type>(<scope>):<subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
说明:type表示提交类别,scope表示修改范围,subject表示标题行,body表示主体描述内容。 具体:
1. type(必须,有以下选项)
* feat:添加新特性
* fix:修复bug
* docs:仅仅修改了文档
* style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑
* refactor: 代码重构,没有加新功能或者修复bug
* perf: 优化相关,比如提升性能、体验
* test: 增加测试用例
* chore: 改变构建流程、或者增加依赖库、工具等
* revert: 回滚到上一个版本 2. scope(非必须,用于说明commit影响的范围,建议填写影响的功能模块,如果影响的不止一个scope,可以用星号*代替) 3. subject(必须,以动词开头,使用第一人称现在时。比如change,而不是changed或changes, 第一个字母小写结尾不加句号)

3. 创建版本库

 mkdir learngit
cd learngit
pwd
git init (initalized empty Git repository in ...)
ls -ah ##(查看隐藏文件)
touch readme.txt
vim readme.txt
i
Git is a vertion system.
Git is free software.
##(按下 Esc)
:wq
git add readme.txt
git commit -m "wrote a readme file"
vim readme.txt
i
modify
##(按下 Esc)
:wq
git add readme.txt
git commit -m "append modify 2"

4. 时光机穿梭/版本回退

 git status
git diff ##(查看工作区与暂存区的所有差异)(工作区即git所在的文件夹,暂存区为git add后没commit的区域)
git diff HEAD readme.txt ##(查看文件readme.txt工作区与暂存区的的差异)
git log ##(查看历史记录)
git log --pretty=oneline ##(查看历史记录简单显示)
git reset --hard HEAD^ ##(回退到上一个版本)
git reset --hard 1094a ##(回退到1094a这个版本)
git reflog ##(记录所有使用过的版本命令)

5. 撤销修改

 git checkout -- readme.txt   (撤销工作区的修改)(若没有放入暂存区则直接撤销回到版本库一模一样,若添加到暂存区则撤销到暂存区的状态)
git reset HEAD readme.txt (git add后没有commit,可以撤销放入暂存区状态重新放回工作区)

6. 删除文件

git add test.txt
git commit -m "add test.txt"
rm test.txt
git status
## 选择1
git rm test.txt (从git中删除这个文件)
git commit -m "remove test.txt"
## 选择2
git checkout -- test.txt (撤销误删,也就是撤销工作区删除文件的修改)

7. 绑定远程仓库

 ssh-keygen -t rsa -C "youremail@example.com"
回车 回车 (会在用户目录生成一个.ssh文件夹
登录github,打开Account setttings,SSH Keys页面,
新增一个SSH key,title随便取,在key文本框里粘贴id_rsa.pub里的内容)

8. 添加远程库

 git remote rm origin (如果之前有关联过其它的origin了就要执行这一步,没有就跳过)
git remote add origin https://github.com/812781386/learngit.git
git push -u origin master
git remote (查看远程库信息)
git remote -v (查看更详细的远程库信息)

9. 分支管理

 git branch  (查看分支)
git branch dev (创建dev分支)
git checkout dev (切换到dev分支)
git checkout -b dev (创建并切换到dev分支)
git merge dev (把dev分支合并到当前所在分支)
git branch -d dev (删除dev分支)

10. bug分支 (当前的编码不提交先保存起来,然后去创建新分支优先修改bug)

 git status  (发现有modified)
git stash (把当前工作现场储存起来)
git status (发现当前 工作区是干净的了)
git checkout master (去master上去修复bug)
git checkout -b issure-
vim readme.txt (修改Git is free software 为 Git is a free software)
git add .
git commit -m "fix bug 101"
git checkout master
git merge --no-ff --m "merged bug fix 101" issure- (--no-ff --m表示不使用快速合并,并写入commit)
git checkout devlop
git stash list (查看储存)
git stash pop (恢复同时把stash内容删除)
git stash apply (恢复)
git stash drop (删除)
git stash apply stash@{} (恢复指定的stash)

11. 多人协作

 git push origin dev   (向远程库推送dev分支,远程库没有dev分支)

12. 修改仓库名

 git branch -m feature-user-management    (feature-user-management新的仓库名)

13. 冲突

 修改了同一个文件:
git pull
git status
.git merge --abort (终止合并)
.git commit -a (强行合并并提交,不要用)
.git add . (强行合并并提交,也不要用)
.vim readme.txt, 手动修改

14. 合并

 git checkout -b feature1
vim readme.txt
(修改一下后保存)
git add reamde.txt
git commit -m "this is reature1"
git checkout master
vim readme.txt
(修改一下后保存)
git add readme.txt
git commit -m "this is master"
git merge feature1
git status
vim readme.txt
(手动修改冲突)
git add readme.txt
git commit -m "conflict fixed"
git log --graph --pretty=oneline --abbrev-commit (查看分支合并情况)

15. 退出

 当使用git logs时,窗口显示滚动,按q 退出
git push -f (强制提交)

git分支,git commit,git流程的更多相关文章

  1. 『现学现忘』Git分支 — 38、Git分支介绍

    目录 1.Git分支简介 2.Git分支与SVN分支的区别 3.工作中为什么要使用分支 4.Git分支管理的好处 1.Git分支简介 几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着,你可 ...

  2. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...

  3. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  4. 1git命令的使用,查看git仓库状态,添加文件到git跟踪,git提交,查看git分支,查看git仓库日志信息,切换git分支,解决git分支合并后出现冲突的问题

    1新建一个存储git的文件夹,命令是: toto@toto-K45VD:~$ mkdir gitfolder 2初始化一个git仓库,命令是: toto@toto-K45VD:~$cd gitfold ...

  5. 『现学现忘』Git分支 — 39、Git中分支与对象的关系

    目录 1.Git对象之间的关系 2.提交对象与分支的关系 (1)提交对象与分支的关系 (2)分支说明 (3)HEAD与分支的关系 1.Git对象之间的关系 我们之前学了Git的三个对象:提交对象.树对 ...

  6. IDEA checkout Git 分支 弹出 Git Checkout Problem

    1. 本地分支切换的时候(例如A切到B),会弹出来Restore workspace on branch switching 对话框,如果选择是的话,在切换分支的时候,你在当前分支(A)所做的一些还未 ...

  7. 开发与测试整体过程中的Git分支merge流程

    开发与测试整体过程中的Git分支merge流程 Git分支merge之开发流程 首先在Gitlab上有个仓库存储着原始的项目代码,其中包含一个叫master的分支.然后可能按功能进行分配,由不同的开发 ...

  8. Git详解之三 Git分支

    相关文档 — 更多 Git 基础培训.ppt GIT 使用经验.ppt GIT 介绍.pptx GIT 分支管理是一门艺术.docx Eclipse上GIT插件EGIT使用手册.docx git/gi ...

  9. Git 分支开发规范

    您必须知道的 Git 分支开发规范 Git 是目前最流行的源代码管理工具. 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 分支管理 分支命名 ma ...

  10. Git分支及其协同开发

    目录 Git分支 Git是如何保存数据的 Git分支的本质 Git分支的操作 远程仓库与本地仓库分支开发 一个项目多个远程仓库 远程仓库操作命令 协同开发 Git flow工作流 GitLub安装搭建 ...

随机推荐

  1. 什么是CPU load

    最近经常收到告警,CPU load大于阈值告警.查看系统的CPU是12核,告警阈值设置的是8.对于CPU load一直有个模糊的概念,具体是什么意思还真搞不明白,趁这个机会好好搞搞究竟. 1.查看CP ...

  2. 学习Angular1

    教程: 参考教程: https://www.runoob.com/angularjs/angularjs-tutorial.html 一.angular的简介AngularJS 是一个 JavaScr ...

  3. 《Flutter 动画系列一》25种动画组件超全总结

    动画运行的原理 任何程序的动画原理都是一样的,即:视觉暂留,视觉暂留又叫视觉暂停,人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称&q ...

  4. Python IDE ——Anaconda+PyCharm的安装与配置

    一 前言 最近莫名其妙地想学习一下Python,想着利用业余时间学习一下机器学习(或许仅仅是脑子一热吧).借着研究生期间对于PyCharm安装的印象,在自己的电脑上重新又安装了一遍.利用周末的一点时间 ...

  5. php _weakup()反序列化漏洞

    概念&原理 序列化就是使用 serialize() 将对象用字符串的方式进行表示: 反序列化是使用 unserialize() 将序列化的字符串构造成相应的对象,为序列化的逆过程. 序列化的对 ...

  6. CVE-2020-7961 Liferay Portal 复现分析

    漏洞说明: Liferay是一个开源的Portal(认证)产品,提供对多个独立系统的内容集成,为企业信息.流程等的整合提供了一套完整的解决方案,和其他商业产品相比,Liferay有着很多优良的特性,而 ...

  7. ssh-add和ssh-agent

    注: 因为在ssh-agent异常关闭或者新开窗口是会导致ssh-add找不到私钥,导致添加的私钥无效,所以下面使用keychain管理 ssh-add 参数 -l 查看代理中的私钥 -L 查看代理中 ...

  8. Python学习-第四节:常用模块-logging,re,time

    1:logging模块 import logging logging.debug('This is debug message') logging.info('This is info message ...

  9. 手工注入——sql server (mssql)注入实战和分析

    前言 首先要对sql server进行初步的了解.常用的全部变量@@version:返回当前的Sql server安装的版本.处理器体系结构.生成日期和操作系统.@@servername:放回运行Sq ...

  10. Light of future-冲刺Day 3

    目录 1.SCRUM部分: 每个成员进度 SCRUM 会议的照片 签入记录 代码运行截图 发布界面 用户浏览界面 管理员浏览界面 2.PM 报告: 时间表 燃尽图 任务总量变化曲线 每名成员的贡献比 ...