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的版本拉下来

最新文章

  1. RecyclerView添加Header的正确方式
  2. 今天在在linux环境下 管理自己的php项目时 删除一个分类 结果报了一个Table表名 doesn’t exist
  3. centos7安装mariadb10遇到的问题解决
  4. 1.7 基础知识——GP2.6 配置管理(CM)
  5. DialogFragment 自定义弹窗
  6. 关于Qt5 UI设计的一些小知识
  7. scrapy 知乎的模拟登陆及抓取用户数据
  8. WebGL 创建和初始化着色器过程
  9. CentOS7部署Dotnet Core2.1
  10. Halcon 和 C# 联合编程 - 图像变量的相互转换(HObject、HImage、Bitmap)
  11. 【Linux】【Jenkins】配置过程中,立即构建时,maven找不到的问题解决方案
  12. CSS--使用伪选择器制作箭头图标
  13. js的模块化
  14. jquery实现根据所选时间生成页面元素
  15. SQL Server DATEDIFF() 函数(SQL计算时间差)
  16. Bind()事件
  17. MySQL 5.7.14 win10安装
  18. GoldenGate搭建与运维
  19. lykchat+zabbix实现微信告警
  20. LA 3938 动态最大连续和(线段树)

热门文章

  1. code and dataset resources of computer vision
  2. 【剑指offer】面试题 25. 合并两个排序的链表
  3. phaser三个学生做题目
  4. 035 Android Volley框架进行网络请求
  5. lnmp+tp5安装纪要
  6. (零)linux 学习 -- 从 shell 开始
  7. ~ubuntu1804安装禅道
  8. (转) 嵌入式 Linux 利用 udev 实现自动检测挂载U盘
  9. Angular 学习笔记 (Angular 9 & ivy)
  10. hdu 2353 n皇后问题