git 命令总结

git, 流行的分布式版本控制工具,全平台支持。在windows下,打开git bash窗口,我们就可以像在linux终端中一样,方便的输入命令。

git结构

git分为工作区和版本库;工作区包括未修改已修改(red) ;版本库包括暂存(green)分支

初始化

  • git init 在当前目录初始化git
  • git add /./* 添加文件/当前目录所有文件到暂存区
  • git commit -m “描述信息” 提交到版本库
  • git status 查看工作区状态
  • git diff 查看修改内容

stash

使用场景:新功能开发中,上线版本出现bug,需要放下手头的开发,紧急修复bug
- git stash 将工作区的文件放到某个地方,还原当前版本未操作状态
- 处理bug –> git add . –> git commit -m ‘修复bug完毕’
- git stash pop 将之前暂停的开发状态还原。这时原来的bug也修改好了。(内部做了一个合并,将修改bug后的版本和暂存的工作内容合并)。如果执行git stash pop, 有时会报CONFLICT,合并冲突,只是因为出现了对同一文件的不同修改。这时需要手动解决冲突,然后提交。
为了防止出现大量冲突的情况,应以预防为主,每天开发就结束时,执行合并,这样每次冲突比较少。
stash相关命令:
- git stash pop 将第一个记录拿回工作区
- git stash list 查看所有存储记录
- git stash clear 清空所有记录
- git stash apply 将指定记录拿回工作区
- git stash drop 删除指定记录

撤销/回滚

  • git log 查看提交历史
  • git reflog 查看命令历史,通过它可以查到所有的版本记录,方便在过去和未来切换版本
  • git reset –soft commit_id 分支 –> 暂存
  • git reset head 暂存 –> 工作区(修改过的内容)
  • git checkout – 工作区(修改过的内容) –> 原内容
  • git reset –mix commit_id 分支 –> 工作区(修改过的内容)
  • git reset –hard commit_id 版本回退

分支管理

通常在实际的开发中,我们会创建多个分支,以方便管理开发。比如:
- master 线上稳定版版本
- dev 开发版本
- review 审核版
通常在dev分支上开发并提交,开发完成后,切换至master分支,合并dev分支(可能要手动解决冲突)。
管理分支的命令如下:
- git branch dev 新建dev分支(拷贝当前分支代码到新分支)
- git checkout dev 切换dev分支
- git checkout -b 创建并切换到指定分支
- git branch 查看所有分支
- git merge 分支名称 将指定分支合并到当前分支
- git branch -d 分支名称 删除分支
利用分支管理解决bug:
dev开发中 – 线上bug – 切master – 新建bug分支 –处理bug,提交 – 切master, 合并bug分支 – 切dev, 继续开发, 提交 – 切master, 合并 – 自动将修改bug后master和dev合并 – 可能有冲突,手动解决冲突,合并

打标签

  • git tag v1.0 默认在打在当前分支的最新提交上
  • git tag v0.9 commit_id 为指定commit_id打标签
  • git tag 查看标签(字母排序)
  • git show 查看标签信息
  • git tag -a -m ‘comments’ 创建带有说明的标签
  • git push origin 可以推送一个本地标签;
  • 命令git push origin –tags可以推送全部未推送过的本地标签;
  • 命令git tag -d 可以删除一个本地标签;
  • 命令git push origin :refs/tags/可以删除一个远程标签。

github远程仓库

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
- git remote add origin https/ssh地址 添加远程仓库;origin是远程地址的别名,自定义也可以;
- git remote -v 查看远程库的详细信息
- git push origin master 输入用户名密码,提交master到远程origin
- git clone url 远程克隆到本地;这时远程仓库没有别名,默认就是’origin’, 通过vim .git/config 可以查看别名和地址,也可以直接修改。
- git pull 别名 master 将远程master上变化的部分拉到本地工作区;如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,同过如下命令创建连接关系:
- git branch –set-upstream branch-name origin/branch-name
- git pull 命令也可以通过如下命令完成类似效果:
- git fetch origin master 远程分支拿到本地分支(分支名为:origin/master)
- git merge origin/master 合并分支

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值