script,[object Object]

# git学习

工作流程

# 概念

工作区(写代码的地方)

git add

暂存区(临时的存储)

git commit

本地库(历史版本)

# 初级操作

  • git status //状态查看
  • git add //添加到暂存区
  • git rm --cached //移除暂存区
  • git commit -m 'xx' //提交到本地库

# 版本操作

  • git log 命令可以显示所有提交过的版本信息
  • git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
  • git reset --hard xxx 索引值
  • git reset --hard HEAD^ 版本回退一次^^^退三步
  • git reset --hard HEAD~3 版本回退三步

# reset命令的三个参数对比

  • --soft 仅仅在本地库移动一下指针
  • --mixed 在本地库移动HEAD指针,重置暂存区
  • --hard 在本地移动HEAD指针,重置暂存区,重置工作区

# 查找删除的文件

  • 查找永久删除的文件
    • git reset --hard 版本回退
  • 添加到暂存区的文件找回
    • git reset --hard HEAD
  • 前提: 删除前,文件的改动保存在本地库了
  • 操作: git reset --hrad[指针位置]

# 对比文件

  • diff 是工作区和暂存区比较
  • diff HEAD 是工作区和本地库比较

# 分支管理

  • 命名一采用feature开头,代表功能

# 分支的具体操作

  • git branch -v 查看分支版本
  • git branch xxx 创建分支
  • git checkout name 选择分支
  • 合并分支
    • 切换到接受修改的分支上
    • 执行 git merge 被合并的分支上

# 解决冲突

  • 首先产生的原因是: 两个分支的内容发生了冲突
  • 解决方式
    • 编辑文件,删除特殊符号
    • 把文件修改到满意的程度
    • git add [filename]
    • git commit -m '提交信息'
    • git commit 不能写文件名字,必须和上面相符

# 基本原理分析

# 哈希

  • 不管输入量多大,他得到的加密结果长度是固定
  • 输入唯一的一个明文,可以得到唯一的密文
  • 输入的明文差异很小,变化很大
  • 不可逆的

# github使用

  • git remote -v 查看远程库
  • git remote add origin(别名) https://xxxxxxxx地址 创建连接

# 远程分支操作

  • git push origin master //推送分支,远程库别名,分支名

# 克隆仓库

  • 下载到本地
  • 创建origin远程地址别名
  • 初始化本地库

# 多人开发

  • 某个项目->setting->Collaborators->选择某个用户
  • 用户就会接收到邀请,同意之后就可以加入到推送中

# 拉取仓库

  • pull = merge + fetch 拉取,等于下面两个命令
    • fetch 远程地址名 远程分支名 只是抓取下来,并没有合并
    • merge origin/master 合并文件

# git工作流程

# 集中式工作流

# GitFlow(最常用)

  • 通过分支去解决开发
  • hotfix 一般是解决bug
  • develop 开发
  • feature_xxx 功能分支,基于develop开发
  • release 完成功能前的最终测试

# Forking

关于评论

评论前请填好“昵称”、“邮箱”这两栏内容,否则不会收到回复,谢谢!

  • +
  • -