git分支,git commit,git流程

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. 创建版本库

 1 mkdir learngit
 2 cd learngit
 3 pwd
 4 git init (initalized empty Git repository in ...)
 5 ls -ah  ##(查看隐藏文件)
 6 touch readme.txt
 7 vim readme.txt
 8 i
 9 Git is a vertion system.
10 Git is free software.
11 ##(按下 Esc)
12 :wq
13 git add readme.txt
14 git commit -m "wrote a readme file"
15 vim readme.txt 
16 i
17 modify 2
18 ##(按下 Esc)
19 :wq
20 git add readme.txt
21 git commit -m "append modify 2"

 

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

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

 

5. 撤销修改

1 git checkout -- readme.txt   (撤销工作区的修改)(若没有放入暂存区则直接撤销回到版本库一模一样,若添加到暂存区则撤销到暂存区的状态)
2 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. 绑定远程仓库

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

 

8. 添加远程库

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

 

9. 分支管理

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

 

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

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

 

11. 多人协作

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

 

12. 修改仓库名

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

 

13. 冲突

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

 

14. 合并

 1 git checkout -b feature1
 2 vim readme.txt
 3 (修改一下后保存)
 4 git add reamde.txt
 5 git commit -m "this is reature1"
 6 git checkout master
 7 vim readme.txt
 8 (修改一下后保存)
 9 git add readme.txt
10 git commit -m "this is master"
11 git merge feature1
12 git status
13 vim readme.txt
14 (手动修改冲突)
15 git add readme.txt
16 git commit -m "conflict fixed"
17 git log --graph --pretty=oneline --abbrev-commit  (查看分支合并情况)

 15. 退出

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

 

posted @ 2019-08-29 17:25  大耳朵小虎  阅读(1347)  评论(0编辑  收藏  举报