Git与Github的学习总结

1. Git

1.1 Git的简介

git是一种分布式的版本控制软件。

1.2 git的初始化操作

  1. 进入要管理的目录
  2. git init:初始化,让git帮助管理当前文件夹
  3. git status:检测目录下文件的状态
  4. 三种状态的变化
    • 红色:新增或者被修改的文件,git add 文件来添加
    • 绿色:git已经管理起来了,git commit -m '提交的描述'
    • 生成版本
  • ps:第一次使用时,生成版本之前需要个人信息的配置:用户名、邮箱

    git config --global user.email "[email protected]"
    git config --global user.name "staick"
    
  • git的三大区域

1.3 git的回滚

git log #1.先利用该命令查看各版本的校验值
git reset --hard 版本校验值  #2.使用该命令回滚到校验值所对应的版本  
git reflog  #该命令可以查看完整的版本目录
git reset Head 文件名  #暂存区->已管
git checkout -- 文件名 #已管->未管
  • 新版本只保留修改的部分,未修改的用指针指向上一个版本

1.4 分支

  • 分支的应用:bug的紧急修复

  • 分支的操作

    git branch    #分支表、目前所处分支
    git branch 分支名    #创建分支
    git checkout 分支名  #切换分支
    git merge 分支名 #合并分支,合并时应该注意切换分支
    git branch -d 分支名 #删除分支
    
  • ps:分支的合并操作可能出现冲突,解决方法是根据提示,手动修改

1.5 git工作流

2. Github

2.1 git 配合github的基本操作

  • git -> github

    1. 给远程仓库起别名:git remote add 别名 仓库地址
    2. 向远程推送代码:git push -u 别名 分支
  • github -> git

    1. git clone 远程仓库地址(内部已实现git remote add origin 仓库地址)
    2. 切换分支:git checkout 分支
  • ps:如果再dev上开发,要先合并master

    git merge mster
    
  • 更新一下

    git pull origin dev
    

2.2 多地开发的实现

  1. 在家里上传代码

    1. 给远程库起别名

      git remote add origin 远程仓库地址  #其中origin为别名
      
    2. 向远程推送源代码

      git push -u origin 分支
      
  2. 到公司新电脑上第一次获取代码

    1. 克隆远程仓库代码

      git clone 远程仓库地址  #内部已实现git remote add origin 远程仓库地址的操作
      
    2. 切换分支

      git checkout 分支
      
  3. 在公司开发

    1. 切换到dev分支进行开发

      git checkout dev
      
    2. 把master分支合并到dev(仅一次)

      git merge master
      
    3. 修改代码

    4. 提交代码

      git add
      git commit -m '描述'
      git push origin dev
      
  4. 回到家中继续写代码

    1. 切换到dev分支进行开发

      git checkout dev
      
    2. 拉代码

      git pull origin dev
      
    3. 继续开发

    4. 提交代码

  5. 开发完毕,上线

    1. 将dev分支合并到master,进行上线

      git checkout master
      git merge dev
      git push origin master
      
    2. 把dev分支也推送到远程

      git checkout dev
      git merge master
      git push origin dev
      
  • ps:git pull origin dev等同于

    git fetch origin dev  #拉到本地
    git merge origin/dev
    

2.3 rebase(变基):使git记录简洁

  1. 第一种:多个记录整合成一个

    git rebase -i 版本号    #现在的版本号与给的版本号之间进行合并
    git rebase -i HEAD~3 #最近三条合并
    
    • 注意:合并记录时,不要和已提交push合并。
  2. 第二种:仅记录为一条线,将C3插入到线中

    git checkout dev
    git rebase master
    git checkout master
    git merge dev
    
    • 关于log显示

      git log --graph    #可显示流程线
      git log --graph --pretty=format:"%h %s"    #按哈希值 说明显示
      
  3. 第三种:防止产生分叉

    git pull origin dev
    git fetch origin dev
    git rebase origin/dev
    
  • git rebase产生冲突时,先解决冲突,再git rebase --continue

2.4 多人开发

2.5 添加标签

  • 可以用标签替代版本哈希值

    git tag -a v1 -m "第一版"
    git push origin --tags
    
  • git checkout -b dev   #创建并切换到dev分支
    

2.6 给开源项目贡献代码

  1. fork源代码:将别人源代码拷贝到自己的远程库
  2. 在自己仓库进行代码修改
  3. 给源代码的作者提交修改申请(pull request)

2.7 git配置

  1. 项目配置文件:项目/.git/config

    git config --local
    
  2. 全局配置文件:~/.gitconfig

    git config --global
    
  3. 系统配置文件:/etc/.gitconfig

    git config --system  #该命令需要root权限
    

2.8 免密登录

  1. URL中实现

    原来的地址:https://github.com/xx

    现在的地址:https://用户名:密码@github.com/xx

  2. SSH实现

    1. 生成公钥和私钥(放在~/.ssh下,id.rsa.pub为公钥,id.rsa为私钥)

      ssh -keygen
      
    2. 拷贝公钥内容,并设置到github中

    3. 在git本地配置ssh地址

      git remote add origin [email protected]
      
  3. git自动管理验证

2.9 git忽略文件

  • git忽略文件可以让git部管理某些文件

  • 创建.gitignore文件,并在其中添加需要忽略的文件名

2.10 任务管理相关

  1. issues:文档以及任务管理
  2. wiki:项目文档

你可能感兴趣的:(Git与Github的学习总结)