Git - Q
GIT :实现版本控制的软件
命令:
git init # 初始 git (先执行这个才能执行接下来的)
git status # 查看当前文件夹状态
git add 文件名 # 对指定文件进行版本控制
git add . # 对指定文件夹下的所有文件及子目录进行版本控制
git commit -m '详细的版本信息描述' # 创建提交记录(版本)
git log # 查看当前所有版本全部信息
git reflog # 查看全部版本信息(包括历史版本和现在版本)
git reset --hard # 提交记录(版本号)
git reset --hard 版本号 # 退回当前版本
git mv file_from file_to # 重命名文件
解决问题:帮助我们存储一些只开发一部分功能,或正在开发过程中的代码,就比如说正在开发一个新的功能,
但是突然之前已经上线的某个功能出BUG了,这时候就可以将当前正在开发的储存起来,然后修复BUG后再回来
解决方式1:
git stash # 将当前工作区所有修改的内容储存在"某个地方",再将工作区还原到未修改前的状态
git stach list # 查看"某个地方"储存的所有记录
git stash clear # 清空"某个地方"
git stash pop # 将第一个记录从"某个地方"重新拿到工作区(可能会冲突)
git stash apply 编号 # 将指定编号从"某个地方"重新拿到工作区(可能会冲突)
git stash drip 编号 # 删除指定编号记录
解决方式2:(使用这个)
git branch # 查看都有哪些分支
git branch dev # 创建一个分支 叫做 dev(比如这个分支里的东西是当前正在做的功能)
git branch bug # 创建一个分支 叫做 bug(比如这个分支是处理BUG用的分支)
git branch -d bug # 删除 bug 分支
git checkout dev # 跳到 dev 分支
git merge bug # 将 bug分支 和 masster分支 合并
(注:合并的时候,如果两个分支都修改了同一条数据那么会出现冲突,则需要手动去修改)
- 两台电脑的 代码上传(使用 github)
电脑1:
git remote add origin github地址 # 添加一个地址
git push origin dev # 将 dev 分支推送到 github 上
电脑2:
git clone github地址 # 克隆存放代码的地址
- 注:在执行下一步之前 需要 cd 到当前目录
git pull origin dev # 将 github 上的代码 拉到自己当前目录下
上面这一条等价于:
git fetch origin dev # 将dev分支放到一个远程的存储地方
git merge origin/dev # 将dev分支拉到自己电脑
git rebase origin/dev# 这条命令等于 git merge origin/dev 但是不会出现分叉问题(二选一)
- git rebase 的作用:保持提交记录的整洁
版本:
git tag -a v1.0(版本名) -m "版本介绍" # 本地创建 Tag
git show v1.0 # 查看
git tags -n # 查看本地Tag
git tag -l "v1.4.2.*" # 查看本地Tag,模糊匹配
git tag -d v1.0 # 删除Tag
git push origin :refs/tags/v0.2 # 更新远程tag
git fetch origin tag v1.2 # 切换tag
git push origin --tags # 将创建的版本推送到github
git pull origin --tags # 将创建的版本从github拉下来
git clone -b v1.0 github文件地址 # 将 v1.0的版本拉下来
最新文章
- RecyclerView添加Header的正确方式
- 今天在在linux环境下 管理自己的php项目时 删除一个分类 结果报了一个Table表名 doesn’t exist
- centos7安装mariadb10遇到的问题解决
- 1.7 基础知识——GP2.6 配置管理(CM)
- DialogFragment 自定义弹窗
- 关于Qt5 UI设计的一些小知识
- scrapy 知乎的模拟登陆及抓取用户数据
- WebGL 创建和初始化着色器过程
- CentOS7部署Dotnet Core2.1
- Halcon 和 C# 联合编程 - 图像变量的相互转换(HObject、HImage、Bitmap)
- 【Linux】【Jenkins】配置过程中,立即构建时,maven找不到的问题解决方案
- CSS--使用伪选择器制作箭头图标
- js的模块化
- jquery实现根据所选时间生成页面元素
- SQL Server DATEDIFF() 函数(SQL计算时间差)
- Bind()事件
- MySQL 5.7.14 win10安装
- GoldenGate搭建与运维
- lykchat+zabbix实现微信告警
- LA 3938 动态最大连续和(线段树)