Git概念
分布式的版本管理系统。
基本命令
初始化:创建一个git仓库,生产一个.git文件
git init
添加文件: 将文件添加到缓冲区
git add xxx
git add . // 添加所有文件
删除文件
git rm xxx
提交
一般的commit习惯:
git commit -m 'fix: xxxx'
// feat: 添加新特性
// fix: 代码问题修复
// docs: 文档编写
// perf: 性能优化
// refactor: 修改的代码既没有修复任何bug,也没有添加任何新特性
// style: 没有更改代码的含义,单纯修改代码风格,例如代码排版、补全缺少的分号等等
// test: 添加测试代码
// chore: 构建过程或辅助工具的变动
git commit
git commit -m 'xxx(提交说明)'
查看git库状态
git status
查看日志
git log
版本回退
git reset --hard HEAD^ // HEAD代表当前版本,有一个^代表上一个版本,以此类推
git reset --hard xxx // 回退到指定版本xxx
git reset --hard HEAD~3 // 回退到前3次提交之前,以此类推
git reset xxx // 撤回git add之后文件名为xxx的文件
查看仓库的操作历史
git reflog
暂存操作(同时进行多个任务开发的时候,可能用的上)
git stash // 冻结当前分支的修改
git stash save "xxx" // 执行存储是,添加备注xxx,方便识别,再次使用
git stash list // 查看所有存储
git stash apply // 应用存储,不会从存储列表中删除,默认使用第一个存储,即stash@{0},使用其他的时候,使用git stash apply stash@{1}
git stash pop // 常用,直接回复之前缓存的工作,并删除存储中的stash,git stash pop stash@{1}
git stash drop stash@{xxx} // 丢弃stash@{xxx}存储,中列表中删除
git stash clear // 删除所有缓存的stash
挑选某次提交
git cherry-pick xxx // xxx为某次的commitid,提取到当前分支
// 提取之后用 git commit 手动提交
// 或者git add . 后 git cherry-pick --continue 继续
git cherry-pick -e // cherry-pick之后需要重新编辑提交信息时使用
Git分支管理
分支管理,还是用工具操作起来快捷(例如VSCode的GitLens插件,或者Sourcetree,挺不错的)。
查看
git branch -a
git branch
git branch --all
创建
git checkout xxx
git checkout -b xxx origin/xxx //以远程xxx分支创建本地分支,并切换到xxx分支
合并分支到当前分支
git merge xxx
删除分支
git push origin --delete xxx // 删除远程xxx分支
git branch -d xxx // 删除本地xxx分支
重命名分支
git branch -m old_xxx new_xxx // 修改本地分支名
// 远程分支重命名,删除之后,重推
修改最后一次注释
git commit --amend // 输入i,编辑修改,Esc退出编辑,:wq保存,然后重新提交(未push之前的)
Git远程库
增加远程仓库
git remote add origin git://xxx.x.x.x/123.git // 增加远程仓库123
移除远程仓库(删库跑人必备技能)
git remote remove origin xxx
提交到远程仓库
git push -u origin xxx // -u表示第一次推送xxx分支的所有内容,后续就不需要-u了,一般在master等分支上用一次
git push -- force // 强制推送(一般不用)
拉取远程仓库内容
git pull // 一般push的时候,本地跟远程有冲突,先pull,解决冲突,再推
不记得命令的时候,help一下
git helper -a // 查看全部git子命令
Git里面的东西太多,后续慢慢补充了~~~