git的操作流程
git init //初始化,把目录变成仓库
git add fileName //把文件添加到暂存区预备上传
git commit -m 'infor' //把暂存区的文件提交到当前分支 并且添加上传说明比如'add 2 files'
git status //查看仓库当前状态会告诉我什么文件被修改了
git diff //顾名思义就是查看每次修改的difference只是提交前修改的
git log //查看历史记录
git reset --hard HEAD~版本号 //回退版本 HEAD指向当前版本
//如果不写 HEAD就可以在版本里历史中穿梭(可能会出现退出不了的情况这个时候按q)
git reflog //可以查看每一次命令记录(可以查看版本号)
git reset --hard 版本号 //退回到一个版本(利用版本号)
git checkout -- fileName //可以把暂存区的内容会退到上一次add操作的内容或者上一次commit之后的内容
工作区和版本区
工作区指的是代码区,版本库指的是.git目录
git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
git commit只负责把暂存区的修改提交了。
添加远程库如github中的库
首先要在github上增加一个ssh key秘钥来确定身份
打开git bash 输入
ssh-keygen -t rsa -c "注册邮箱" //创建SSH Key
//然后在用户主目录/.ssh/下有两个文件,id_rsa是私钥id_rsa.pub是公钥
start ~/.ssh/id_rsa.pub //来获取公钥
//登录github 打开ssh key页面 新增一个ssh key
ssh -T git@github.com //如果出现success则表示成功
远端github能够与本地建立连接后就可以把本地内容推送到远程github
git remote add origin githttps://github.com/csq121605366/my-resume.git
//上面的命令是增加一个库在github上, origin是新建库的名字
git push -u origin master //第一次推送 -u是关联分支和master
git push origin master //以后推送的命令
git clone github仓库地址
//克隆一个本地库
分支管理
git branch //查看分支
git checkout -b name //创建分支并切换 -b表示创建并切换相当于下面两条命令
git branch name //创建分支
git checkout name //切换到分支(常用)
git merge name //合并dev分支到master上
git branch -d name //删除dev分支(-D为强制删除分支,有时候分支没有合并就要被删除 这个时候用)
git merge --no-ff -m "info" name
//合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
BUG分支
git stash //存储当前工作区
git stash list //查看当前工作区的暂存区列表
git status //查看状态
git checkout master //转移到问题区解决问题
git checkout dev //返回工作区继续完成工作
git stash apply stash@{num} //回复工作区(但是不删除存储的临时内容)
git stash drop stash@{num} //删除暂存区
git stash pop //回复工作区同时把stash内容删除
多人协作
git remote //查看远程库的信息
git remote -v //查看更详细的信息
git push origin master //把master主线推送到origin远程库中当然也可以推送其他分支
git clone 仓库地址 //可以将远程库克隆到本地
//克隆到本地的内容默认情况下只能看到masetr分支
git checkout -b dev origin/dev
//就可以创建远端origin的dev分支到本地
//当git的push操作出现问题,就是出现冲突的时候
git pull //先把最新的提交从origin/dev 抓取下来,然后本地合并,解决冲突,再推送
git branch --set-upstream 本地分支名 远端库名/远端分支名
//上面的操作时将远端库的分支与本地建立联系
创建标签
git tag v1.0 //创建标签
git tag //查看标签
git log --pretty=oneline --abbrev-commit //查看commit提交历史
git tag 版本号 对应的commit id如下
git tag v1.0 6224937
//还可以创建带说明的标签
git tag -a v1.0 -m "version:1.0" 6224937
git show v1.0 //查看说明
git tag -d v1.0 //删除标签
git push origin v1.0 //推送某个标签到远程
git push origin --tags //一次性推送全部尚未推送到远程的本地标签
//删除远程库的tag信息
//首先删除本地的tag信息
git tag -d v1.0
//然后从远程删除,删除命令也是push
git push origin :refs/tags/v1.0
配置别名
为了方便快捷的操作
git config --global alias.st status //将status缩写为st
git config --global alias.unstage 'reset HEAD'
//将展示log信息缩写为lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"