• Git 操作


    一、Git 简介

    • Git 是一个开源的分布式版本控制系统,用于敏捷 高效地处理任何或小或大的项目。
    • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
    • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

    二、Git 安装配置

    这里咱们就介绍 Windows 下的安装, 下载也是十分简单 https://git-scm.com/downloads,直接一路 next, 就按照默认提示安装就好

    • 安装成功之后,在窗口内点击鼠标右键,出现 Git GUI Here 和 Git Bash Here;证明安装成功;
    • Git 安装完成之后,还需要最后一步设置,打开 Git Bash Here 输入 :
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    • 因为 Git 是分布式版本管理系统所以每个机器都必须自报家门:你的名字和邮箱地址;--global 表示全局,表示这台机器上所有的 Git 仓库都会使用这个配置。

    三、初始化版本库

    • 版本库(repository),其实可以理解为一个文件夹,这和文件夹内的所有文件都可以被 Git 管理起来;初始化版本库;在指定文件夹下,打开 Git Bash Here 输入:
    $ git init
    • 此时文件夹内会生成一个 .git 文件夹,这个目录是 Git 来跟踪管理版本库的。

    四、把代码存储到 .git 仓库中

    $ git add ./filename    # 如果需要提交多个文件 直接用 ./ 表示当前目录下所有文件
    $ git commit -m "commit description"
    $ git commit --all -m "commit description"   # 一次性把修改后的代码直接放到仓库中

    五、查看当前状态

    $ git status

    六、查看日志

    $ git log   # 查看历史提交记录
    $ git log --oneline   # 查看精简版的日志
    $ git reflog   # 可以看到每一次切换版本的记录: 可以看到所有提交的版本号

    七、回退到指定的版本

    $ git reset --hard Head~0   # 这里 0 表示索引
    $ git reset --hard 版本号   # 这里的版本号 是提交后的版本号 通过 git log --oneline 查看

    八、创建分支

    • 默认有一个主分支 master 工作流程为:
      • 先创建一个分支
      • 切换到指定的分支
      • 然后正常写入内容, 完成后提交
      • 切换到主分支
      • 合并至主分支
    $ git branch dev   # 创建了一个 dev 的分支, 刚创建时里面的东西和 master 是一样的
    $ git checkout dev   # 切换到指定的分支(dev)
    $ git branch   # 查看当前的所有分支
    $ git merge dev   # 把当前分支与指定分支, 进行合并
    • 从某个分支提交代码如果存在冲突的话,需要手动去处理冲突,然后再提交一次
    • 在实际开发中,我们应该按照几个基本原则进行分支管理

    • 分支理解
      • 首先,master 分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活    
      • 那在哪干活呢?干活都在 dev 分支上,也就是说,dev 分支是不稳定的,到某个时候,比如 1.0 版本发布时,再把 dev 分支合并到 master 上,在 master 分支发布 1.0 版本 
      • 你和你的小伙伴们每个人都在 dev 分支上干活,每个人都有自己的分支,时不时地往 dev 分支上合并就可以了  
      • 所以,团队合作的分支看起来就像这样

    九、提交和拉取

    $ git push https://github.com master    # 把本地代码提交到 远程仓库的 master 分支
    $ git pull http://github.com master   # 从远程仓库的 master 分支把文件拉到本地
    $ git clone http://github.com   # 会得到远程仓库相同的版本, 如果多次执行会覆盖本地内容(一般第一次使用)
    • 每次的提交和拉取文件都需要 输入远程仓库的地址, 这样会显得很不方便, 当然这个也是有办法解决的
    $ git remote add origin http://github.com    # 相当于给连接定义了一个 origin 的变量, 以后再次 git push 或 git pull 的时候就不需要每次都输入连接了
    $ git push origin -u master # 相当于把远程仓库的 master 和本地的 master 建立了关系, 以后再次 push 和 pull 的时候就直接使用 git pull 或 git push 就可以了
    • git pull 和 git clone 的区别
      • clone 是本地没有 repository 时,将远程 repository 整个下载过来。pull 是本地有 repository 时,将远程 repository 里新的 commit 数据(如有的话)下载过来,并且与本地代码 merge。  

    十、ssh方式上传代码

    • 生成公钥和私钥
    $ ssh-keygen -t rsa -C "your email"
    • 执行命令后会在当前电脑的用户目录下生成一个文件夹 .ssh(windows为例)
    • 一个 id_rsa 文件, 另一个 id_rsa.pub, 然后复制 id_rsa.pub 内的值放到 github => setting =>SSH andGPG keys => New SSH keys 复制完成之后就可以通过 ssh 的方式提交代码了
    $ git push git@github.com:xxx/ssh.git master
  • 相关阅读:
    AjaxPro对象参数传递
    SQLServer “无法对数据库'XX' 执行删除,因为它正用于复制”的解决方法
    sql server 查询某个表被哪些存储过程调用
    存储过程简单实例
    清理sqlserver 2012 日志文件
    从客户端(XXX)中检测到有潜在危险的Request.Form 值
    sqlserver无法在数据库上放置锁
    C#趋势图(highcharts插件)
    TFS 报错解决方案:tf400324
    checkbox勾选事件,JQ设置css,下拉框JQ选中
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/15808940.html
Copyright © 2020-2023  润新知