git基本指令和操作
基本操作
git pull //从仓库拉取代码到本地仓库
git add . //将新增的文件添加到本地git仓库中
git add fileName //将制定文件添加到git本地仓库中
git commit -m "tag" //将要推送的文件和内容加到推送列表
git push //推送到远程仓库
git diff //显示冲突内容/差异内容
查看历史
基本操作
查看历史
git log git log <file> // 查看该文件每次提交记录
git log -p <file> // 查看每次详细修改内容的diff
git log -p -2 //查看最近两次详细修改内容的diff
git log --stat //查看提交统计信息
git show $id //查看某次修改
创建本地分支,并推到仓库中
git branch develop //创建本地分支
git checkout develop //切换到本地develop分支
git checkout master //切换到本地主分支
git push origin develop:develop //创建远程develop分支
git branch --set-upstream-to=origin/develop develop //将本地develop分支与远程分支绑定到一起
git fetch origin temp:temp //拉取远程库temp分支的代码到本地的temp分支,如果不存在temp分支,将自动创建temp分支
删除远程分支
git push orgin:remote_name
恢复(删除)本地改动文件/新增文件夹
git clean -d
git clean -df
创建分支
git branch develop//只创建分支
git checkout -b master develop//创建并切换到develop分支
合并分支
git checkout master//切换到主分支
git merge --no-ff develop//把develop合并到master分支,no-ff选项的作用是保留原分支记录
git rebase develop//合并分支
git branch -d develop//删除develop分支
标签功能
git tag//显示所有标签
git tag -l 'v1.4.2.*'//显示1.4.2开头标签
git tag v1.3//简单打标签
git tag -a v1.29 fceb02//后期加注标签
git tag -a v1.4 -m 'my version 1.4'//增加标签并注释,
-a为annotated缩写
git show v1.4//查看某一标签详情
git push origin v1.5//分享某个标签
git push origin --tags//分享所有标签
回滚操作
【本地代码库回滚】:
git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除
git reset --hard HEAD~3:将最近3次的提交回滚
【远程代码库回滚】:
这个是重点要说的内容,过程比本地回滚要复杂
应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //备份一下这个分支当前的情况
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin:the_branch //删除远程 the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin:the_branch_backup //如果前面都成功了,删除这个备份分支
取消某个文件的修改
git checkout --<filename>
删除文件
git rm <filename> 直接删除文件
git rm --cached <filename>删除文件暂存状态
移动文件
git mv <sourcefile> <destfile>
查看文件更新(差异)
git diff查看未暂存的文件更新
git diff --cached查看已暂存文件的更新
克隆远程分支
git branch -r git checkout origin/android
修复develop上的合并错误
将merge前的commit创建一个分之,保留merge后代码将develop reset--force到merge前,然后push--force在分支中rebase develop将分支push到服务器上重新merge
替换本地改动
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:git fetch origin
git reset--hard origin/master
实用小贴士
内建的图形化git:gitk彩色的git输出:git config color.uitrue显示历史记录时,每个提交的信息只显示一行:git config format.pretty oneline交互式添加文件到暂存区:git add -i
git 查看配置
git config --list(-l)