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 

 

posted @ 2018-12-28 16:26  黑墨罗少  阅读(171)  评论(0编辑  收藏  举报