美文网首页
Git 简单总结(一)

Git 简单总结(一)

作者: Rui哥 | 来源:发表于2017-09-10 21:58 被阅读29次

简介

  • 什么是git?
1> git 是一款开源的 分布式 版本控制工具  (我们常用的svn 是一种集中式版本控制工具).
2> git 在世界上所有的分布式版本控制工具中,git 是最简单\最快\最六次那个的.
  • git的起源
作者是 linux 之父,作者用了10天就写完了 👍
  • 集中式 与 分布式 图解


  • git 和 svn 的简单对比

1> 速度方面: git 提交速度在多数情况下比svn 快.(git 在本地有本地的仓库)
2> 结构: svn 集中式,git 分布式
3> 其他:svn 使用分支比较笨拙,git 可以轻松拥有多个分支,svn 联网 才能用,git本地不联网也可以提交.
4> 旧版本的svn 会在每个目录下放置一个.svn 文件, git 只会在根目录下放置一个 .git 目录.

  • git 的工作流程
git工作流程.png
  • 分布式和集中式 最大的区别:
1> 在分布式下,开发者可以本地提交.
2> 每个开发者机器上有一个服务器的数据库.
git 命令行的演练
  • 初始化git仓库
> cd   仓库目录
> git init (仓库初始化)
  • 配置git 的邮箱和用户名
    使用git的前提: 必须给git 配置一个'邮箱'和'用户名' 告诉这个Git 现在是谁在使用
> 配置单独Git仓库用户名和邮箱: 
      git config user.name "mango"
      git config user.email "690852195@qq.com"
      注意,在配置用户名和邮箱时,时没有任何提示的,如果有提示说明配置时 有地方可能出错了

> 查看单独Git仓库配置的git的用户名和邮箱:
  直接进入当前git 根目录的 .git 目录,找到config 文件打开即可看见.


>配置电脑上git 的全局邮箱和用户名:
    git config --global user.name "mango"
    git config --global user.email "690852195@qq.com"
> 查看全局Git仓库配置的git的用户名和邮箱:
  个人 -> .gitConfig 查看

配置全局邮箱和用户名的好处,当本地仓库没有设置邮箱和用户名时 可以默认使用全局的用户名和邮箱,如果本地仓库有配置邮箱和用户名的化就使用本地的用户名和仓库

  • git 的常用操作
1> 查看git 文件状态
git status   
红色文字表示该文件被修改或添加但没有提交到git 本地的暂缓区
绿色文字表示该文件被提交到git 本地的暂缓区,但没有提交到本地仓库

2> 提交文件到暂缓区
git add . 

3> 提交暂缓区的文件到本地的代码仓库
git commit -m  '提交文件描述'
文件从暂缓区提交到本地仓库后,git 会清空暂缓区

4> 给命令行取别名(alias)
 git  config alias.st  "status"  
 意思是个 status 取一个别名 st ,此后可以使用 st 代替 status
 如: git status  ==  git st

 git config alias.xxyy  "commit -m"  
 别名配置后可以在 .git 的config 文件中查看和 个人的.gitConfig 文件中查看当前配置了的别名

5> 删除文件
 git rm person.m   将person.m 文件删除
 git commit -m     '删除文件描述'

6> 查看版本信息
 git log     版本号是一个由 sha1 算法生成的40 位哈希值
 git reflog  也可以查看版本号(更强大),可以查看所有版本回退的信息

7> 版本回退
  - 本地回退
  git reset --hart   HEAD 强制恢复(回退没有提交的代码)
  git reset --hard HEAD^ 回退到上一个提交版本
  git reset --hard HEAD^^  回退到上上一个提交版本
  git reset --hard HEAD~10  回退到前10个提交版本
  git reset --hard    12345               版本号(前5位) 通过git log 查看到的版本号



git 的工作原理
  • git 的几个核心概念
> 工作区(working directory): 根目录里面除了 .git 目录 外的内容
> 版本库(Repository):   .git 目录  ,用于存储记录版本信息
  暂缓区: (stage)
  分支(master): git 自动创建的第一个分支
  HEAD指针(游标): 用于指向当前的分支

> git add 和 git commit 的原理
  git add 把修改或者新添加的文件(从工作区文件目录)添加到暂缓区
  git commit: 把暂缓区的文件内容提交到当前分支(HEAD 指向的分支,比如master分支)

原理图

git工作原理.png

共享版本

  • git 服务器的搭建非常的繁琐(需要使用 linux)
  • 可以把版本托管到 github和oschina
  • 一个文件夹
  • 一个U盘
一个文件夹作为一个共享版本库
1.将一个文件夹作为一个共享版本
  cd 目录
  git init --bare    生成的这个仓库是没有.git 这个文件夹的(说明是一个共享版本库),其实也可以查看config 文件,共享版本库的 bare 属性是true,.git 文件内的 config 内的bare 是false.

2.将共享版本库的所有内容下载到本地(初始化项目)
  git clone 共享版本库地址

3.删除忽略文件(在项目开发中 有些文件是不需要的)
  cd 本地目录
  touch .gitignore   生成一个 忽略文件
  .gitignore 中填写的具体内容可以在 github 中搜索 ignore 找到粘贴即可


4.在对应的目录下创建工程即可 合作开发
  git add .
  git commit -m '初次创建工程'
  git push origin master

  • git 冲突的处理
1> git reset --hard HEAD^   回退到上一个版本(指的是本地仓库) eg: 1.0.1
2> git push -f   强制上传到共享版本库(相当于的更新远程仓库)  eg: 1.0.1
3> git pull
版本备份

以下是一个简单的备份示例流程:

1> 1.0 版本开发完毕,将1.0 版本上传到商店,对1.0 版本进行备份(打标签).
   git tag -a  1.0.0 -m '1.0版本上线'    本地打标签
  (也可以简写 git tag '1.0.0' )
   (顺便提下:git tag -d 1.0.0  删除本地标签)

2> 需要将标签 push 到共享版本库
   git push origin 1.0.0      上传本地的1.0.0 标签到 共享版本库(上传单个标签)
  (也可以使用命令:git push --tags  上传所有的本地标签)
  (顺便提下:git push origin :1.0.0  删除远程标签)

3> 开始2.0 版本的开发
   2.0 开始编码 并提交版本到 共享版本库

4> 发现1.0 版本有bug,在  xxx 的电脑下面创建一个文件夹,用于修复bug,将共享版本库clone.
   git clone xxx 地址     当前clone下来的代码是 正在开发的2.0 版本(包含完整的1.0.0 的代码)

5> 将当前的2.0ing 代码转为1.0标签,    创建分支并切换到分支.
   5.1> git checkout  1.0.0               将当前的2.0 的版本切换到1.0.0 分支(2.0 新增的代码将会被自动删除)
   5.2> git checkout -b 1.0.0fixBug     这时就将 1.0.0 切换到了一个新的分支

6> 在分支中修复bug.将修复好的代码打上tag,并上传到共享版本库.
   git add .
   git commit -m  '修复了1.0.0 的bug 的1.0.1 版本'
   git tag -a  '1.0.1' -m  '修复了1.0.0 的bug 的1.0.1 版本'
   git push origin 1.0.1  提交对应的标签到远程仓库

7> 根当前正在开发的2.0 版本进行合并.
   将 1.0.1 的代码 pull 到 2.0 ing 中

8> 删除分支
   git branch   查看当前分支
   git branch -r  查看本地版本库分支
      
   git checkout master   从当前的分支切换到master 分支
   git branch -d  1.0.0fixBug   删除 1.0.0fixBug 本地分支
   git branch -r -d  origin/1.0.0fixBug   删除本地版本库分支
   git push origin --delete  1.0.0fixBug  删除共享库中的1.0.0fixBug 分支

9> 补充:
   git push 403 错误
   原因:本地缓存了用户名和密码
   解决方法:重新设置用户名和方法:
   以远程仓库https://github.com/TangChangTomYang/h264.git 为例
   step 1:   git remote set-url origin https://ayngrui@github.com/TangChangTomYang/h264.git
   step 2: 这时push时就会提示 输入用户名 yangrui 对应的密码即可

 
新人共享版本库
将代码托管到github 上
  • SSHKeys 认证
1> 公钥: 存在github 上 用来解密的
2> 私钥: 存在本地的一个 .ssh 隐藏文件(个人 -> .ssh)里使用来加密的
  • 通过终端查看当前电脑是否存在 sshkeys
ls -al ~/.ssh
  • 通过终端生成SSHkey
1> 打开终端
2> ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
3> 一般来说直接回车 直到出现一个奇怪的图案 就可以了, 在 .ssh 中查看即可

git简单总结(二)版本操作相关 https://www.jianshu.com/p/7ab413165eb3

相关文章

  • Git 简单总结(一)

    简介 什么是git? git的起源 集中式 与 分布式 图解 git 和 svn 的简单对比 git 的工作流程 ...

  • 浅谈gitflow

    之前文章对git的日常操作做了简单的总结,本篇主要对gitflow进行说明和总结。 git日常的基本操作 Git ...

  • Git 简单总结

    如果需要用 git 来实现合作,具体操作大致分为如下(若没有仓库先新建一个): 1.找到想要存放的路径,如 cd ...

  • Git 简单总结

    Git的安装: Windows上操作。 1、安装安装包地址:http://msysgit.github.io/ 一...

  • 几张图让你彻底弄懂git工作流(二) ——git分支

    上篇文章已经说了Git简史以及Git基础,那么这篇文章简单总结下Git分支 Git分支 为了理解 Git 分支的实...

  • git用法简单总结

    git checkout -b 新建并切换分支 git chekcout -B 新建并覆盖同名分支 git c...

  • git使用简单总结

    MacOS git 使用总结 下载客户端(MAC OS 可以忽略)windows 系统下载Git客户端下载链接:h...

  • Git 的简单使用

    一直在使用Git,仅限于简单的使用,但还是记不住几个简单。在这边总结一下,加深印象,也方便查找。 安装Git 平常...

  • git 总结终结篇

    关于git,之前总是遇到什么问题然后做了一个简单总结。今天决定来一个系统的总结,加深一下自己对git的理解。 1、...

  • oschina代码管理

    总结下将文件托管到git.osch的简单步骤: 1 先到http://git.oschina.net 登录账号密...

网友评论

      本文标题:Git 简单总结(一)

      本文链接:https://www.haomeiwen.com/subject/qpttsxtx.html