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 (强制提交)
原文出处:https://www.cnblogs.com/wangrui38/p/11430937.html
来源:oschina
链接:https://my.oschina.net/u/4298211/blog/3254631