git 账户配置
vim ~/.gitconfig
修改[user]下的 name 和 email为 github上的名称和邮箱。
删除
先 git rm 在 git commit
git add 添加 多余文件
这样的错误是由于, 有的时候 可能
git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件
git add 如果添加了错误的文件的话
撤销操作
git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了
clone 指定tag
git it clone --branch [tags标签] [git地址]
使用branch参数,后面加上tag标签,最后是git仓库的地址
Git flow
是一个规范
Master 分支:不允许在master分支上进行任何的commit,只能从release或者hotfix merge回来
dev分支:整合不同的feature,该分支下可能不稳定,通常也不会在该分支下commit,而是通过merge的方式将feature的功能merge进来。
feature分支:由dev分支分出来,最后被回并回去。
release分支:dev分支分出来的。在该分支下做全面的测试,完成之后,会再merge回master和dev分支。
hotfix分支:master分支分出来的,上线时候发现一个紧急的bug,开出来修bug然后结束merge回master个dev
命令
- git init :初始化git
- git add :
- git commit:
git commit --amend --no-edit:将当前staged的状态放到上一个commit当中,不想改上一个commit的message
git commit -am ”“ : add和commit一起做
- git reset :将文件从staged状态返回到unstaged状态(文件本身并没有改变)
git reset --hard 提交号 : 回到过去的某个commit
是回到过去然后产生新的未来
- git reflog: 可以看到HEAD的每一步的变化以及其commit号
- git checkout commitid -- 文件名:将某个文件转换到之前某个提交的版本
是回到过去然后修改再回到当前继续未来
- git status -s:
- git log: --oneline --graph
- git diff :查看的是当前unstaged状态和staged的对比
git diff --cached 查看当前staged状态和上一个commit的对比
git diff HEAD 查看当前unstage状态和上一个commit的对比
- git branch xxx :建立分支
git branch :查看所有的分支
git checkout 分支 :切换分支
git branch -d xxx: 删除分支
git checkout -b xxx: 建立分支的同时移动HEAD 到分支上去
git merge --no-ff -m "keep merge info" dev
git merge dev: 默认是fast forward 不会看到信息
git rebase: --continue --skip --abort
git stash: 将现在还未提交的修改放到暂存区,做其他任务等其他任务完成再恢复暂存。
git stash pop :返回你当时暂存的修改
GitHub
下载很慢怎么解决?
git commit message怎么写
- 1-2个小改动就该commit,不要改动一堆之后才一个commit
- 把关键字写上,带点短小的description。或者如果你遵守软件工程的做法,产品狗和测试给你开workitem或者bug的话,把id写上,这样的话description已经写在workitem和bug里面了你不用写了。
提交信息的结构
一条 commit 信息通常包括3个部分:
type: [标题] body footer
Type:类型 具体来说,Type 分为:
feat: 增加新功能;
fix: 修复错误;
docs: 修改文档;
style: 修改样式;
refactor: 代码重构;
test: 增加测试模块,不涉及生产环境的代码;
chore: 更新核心模块,包配置文件,不涉及生产环境的代码;
Subject:标题 标题不超过50个字符,结尾不需要对应的句号;应该使用祈使句来描述,比如:修复标点符号错误。
Body:正文
并不是所有的 Commit 都需要正文,所以这一模块是可选的,必要的时候对本次 Commit 做一些背景说明,阐释具体的原因和内容,但是不解释具体的过程。
注意:正文的文字不能超过72个字符。
Footer:结尾
结尾是可选的,通常来说可以添加对一些错误信息ID的补充。
Example:举例
docs: add FAQ in readme file