zoukankan      html  css  js  c++  java
  • Git 初识

    Git是什么?

    Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
    
    Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。
    开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。
    尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。
    例如 很多 Freedesktop 的项目迁移到了 Git 上。

    GitHup

    是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。

    Git的使用:

    window下

    就是去官网下载然后点点点------>官网地址:https://git-scm.com/

    liunx:

    yum install git (但是好像会出错)

    源码安装:

    还是自己百度吧:我也不想复制了

    第一次使用(我们这里是window)

    首先进入程序目录:
     
    第一次进入需要执行git init 方法进行初始化
     
    git status命令可以查看当前git的状态
     
    git add .                 #添加当前目录下所有文件到版本库
     
    git commit -m "xxx"     #提交到版本库并写说明
     
    第一次执行git commit 命令的时候可能会弹出用户和邮箱的配置
     

    回溯到以前的版本

    git log查看往后的版本号
    git reflog    查看提交的版本记录

    git reset --- 版本号 回到那个版本 git stash 把代码存在储存在某个地方

    stash相关常用命令:(将当前工作区所有修改过的内容存储到“某个地方”)

    git stash  把代码存在储存在某个地方
    git stash             将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
    git stash list        查看“某个地方”存储的所有记录
    git stash clear     清空“某个地方”
    git stash pop       将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash apply     编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) 
    git stash drop      编号,删除指定编号的记录

    创建分支:

    git branch 分支名称             创建分支
    git checkout 分支名称          切换分支
    git branch -m 分支名称        创建并切换到指定分支
    git branch                  查看所有分支
    git branch -d 分支名称         删除分支
    git merge 分支名称              将指定分支合并到当前分支

    git如果代码出现了bug ,如何解决?

    创建一个bug分支 吗然后进行bug处理 , 处理完毕后,合并到master分支

    删除bug分支

    回到dev分支继续开发

    提交云端:(githup)

    • githup  做代码托管
    • 码云   做代码托管

    第一次上传代码

    git add .
    git commit -m 'xx'
    git remote add origin https://github.com/WuPeiqi/greenlu.git
    git push origin master 

    第一次下载下载代码

    方式一
                git clone https://github.com/WuPeiqi/greenlu.git
                    
    方式二
                git init 
                git remote add origin https://github.com/WuPeiqi/greenlu.git
                git pull origin master 直接拿回来
                
    方式三
                git init 
                git remote add origin https://github.com/WuPeiqi/greenlu.git
                这的两句相当于git pull origin master 这一句
                git fetch origin master  拿到分支上了
                git merge origin/master  合并在一起
            
    日后
                git pull origin master  #
                
    或者
                git fetch origin master 
                git merge origin/master   或者  git rebase origin/dev 
                
                
                
    如果你在本地修改问题,又add,又提交,在线上去拿的时候,或许会冲突

    在协同开发的时候需要注意

    git协同开发应当注意:
      1:创建好一个组织
      2:给组织拉取成员
      3:赋予每个成员owner权限(即最高的权限,否则只有自己才可以提交数据,成员提交不了)
      4:创建每一个分支
      5:每个成员拉取自己的分支工作(git clone -b 分支 git@github.com:xxxx.git)
      6:写自己的代码,
      7:提交自己的代码()
        - git add .
        - git commit -m "提交测试代码"
        - git push origin "自己的分支"
      8:重新写代码
        - git pull origin news

    而在协同开发中  同事一起来一起合并代码时候就会出错

    error: Your local changes to the following files would be overwritten by merge:
        xxx/xxx/xxx.php
    Please, commit your changes or stash them before you can merge.
    Aborting
    解决问题的方式是:
    需要 把
    git pull master
    

     版本

        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 checkout v.10                   切换tag
        git fetch origin tag V1.2
    
        git push origin  --tags
        git pull origin  --tags
        
        git clone -b v0.1
    
      版本相关 

    用户:

    由于Git和Github交互操作可能会很频繁,那么一定少了用户授权的操作,为了防止每次操作重复输入用户名和密码,Git提供了两种解决方法:

      • 秘钥
        首先创建一对秘钥  ssh-keygen -t rsa,然后将 id_rsa.pub (公钥)内容拷贝到github中,日后操作无需再输入用户名和密码。
        注意:这种方式需要使用GIt中 git@github.com:WuPeiqi/xxxxx.git 格式地址。
      • 密码
        Https访问git时,避免每次操作需要输入用户名和密码,可以在配置文件中添加如下配置项:
            [credential]
            helper = store/cache/第三方

        store:
                表示将用户名和密码保存在硬盘上
                第一次输入过用户名和密码之后,用户名和密码就会保存在当前用户根目录的 .git-credentials 文件中,内容格式为:https://用户名:密码@github.com

                自动添加配置命令:git config credential.helper store
        cache: 
                表示将用户名和密码保存在缓存中
                第一次输入过用户名和密码之后,用户名和密码就会保存在缓存中,默认超时时间是 900 秒,缓存相关文件保存在当前用户根目录的 git-credential-cache 中 
                自动添加配置命令:
                       git config credential.helper cache
                       git config credential.helper 'cache --timeout=300'

        相关操作:
                清除缓存:git credential-cache exit 
                指定超时:
                    [credential]
                    helper = cache --timeout=300
        注意:
                 这种方式需要使用GIt中 https://github.com/WuPeiqi/xxxx.git 格式地址。
                 指定用户名和密码: https://用户名:密码@github.com/wupeiqi/xxx.git 

  • 相关阅读:
    Linux_Rsync远程同步备份服务器
    Linux_Rsync远程同步备份服务器
    Linux_VMWare12 Install RHEL7
    Linux_VMWare12 Install RHEL7
    Linux_SquidProxyServer代理服务器
    Linux_SquidProxyServer代理服务器
    Linux_LAMP 最强大的动态网站解决方案
    Ozone Native ACL的应用
    Ozone Audit Log解析工具的应用
    Ozone数据探查服务Recon2.0设计
  • 原文地址:https://www.cnblogs.com/Zhao--C/p/10191322.html
Copyright © 2011-2022 走看看