git add readme.txt // 添加文件
git commit -m “wrote a readme file” // 提交文件
git status // 查看git仓库当前状态
git diff readme.txt // 查看文件版本修改内容
git diff HEAD – file // 查看工作区和版本库里面最新版本的区别
管理修改
工作区——暂存区——版本库
git log // 查看提交历史,以便确定要回退到哪个版本
git log --pretty=oneline // 历史记录在一行展示
git reset --hard HEAD^ // 回退至上一版本
git reset --hard commit_id // 回退至指定版本
git reflog // 查看命令历史,以便确定要回到未来的哪个版本。
撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
其他命令
git rm file // 删除文件
// 关联远程仓库,并且提交本地仓库代码
git remote add origin ssh://git@10.202.11.142:10022/wrq/gittest.git
git remote set-url origin ssh://git@10.202.41.225:10022/ioriiod0/algo-platform.git // 重新设置远程关联的url
git add .
git commit
git push -u origin master
git push origin master // 把本地master分支的最新修改推送至GitHub
git clone // 从远程仓库克隆到本地仓库
操作分支
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
删除远程分支 : git push origin -d
查看分支合并图:git log --graph --pretty=oneline --abbrev-commit
普通模式合并: git merge --no-ff -m “merge with no-ff” dev
创建远程develop分支到本地: git checkout -b develop origin/develop
bug分支
保存工作现场: git stash
回复工作现场并删除stash内容: git stash pop
查看stash: git stash list
恢复指定的stash: git stash apply stash@{0}
删除stash内容:git stash drop stash@{0}
Feature分支
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。
设置别名
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage ‘reset HEAD’
commit message规范
feat: 新增 feature
fix: 修复 bug, 最好附带bug编号
docs: 仅仅修改了文档,比如 README, CHANGELOG, CONTRIBUTE等等
style: 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复 bug
perf: 优化相关,比如提升性能、体验
test: 测试用例,包括单元测试、集成测试等
chore: 改变构建流程、或者增加依赖库、工具等
revert: 回滚到上一个版本