Git随记

为了方便的编写代码,灵活的修改,回退代码,需要有工具替我们管理我们写过的代码,Git
  1. 版本控制工具应该具备的功能
    1. 协同修改
    2. 数据备份
    3. 版本管理 SVN采用的是增量式管理,Git采用文件系统快照的方式
    4. 权限控制
      1. 对团队中参与开发的人员进行权限控制
      2. 可以对团队开发者以外贡献的代码进行审核,Git独有
    5. 历史记录
      1. 产看修改人,修改时间,修改内容,日志等等
      2. 可以恢复到某一个历史版本
    6. 分支管理
      1. 开发过程中可以允许多条生产线一起开发
  2. 版本控制简介
    1. 版本控制
    2. 版本控制工具
      1. 集中式的版本控制工具:SVN 缺点:依赖服务器端,单点故障问题
      2. 分布式版本控制工具:Git 任何一台客户端上都有用完整的库
  3. Git的优势
    1. 大部分操作在本地完成,不需要联网
    2. 完整性保证
    3. 尽可能添加数据而不是删除或修改数据
    4. 分支操作非常流畅快捷
    5. 与linex命令全面兼容
  4. 下载安装Git
  5. Git和代码托管中心
  6. Git本地初始化
    1. 效果
  • 注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修
  • 设置签名
    • 形式
      • 用户名
      • Email地址
    • 作用:区分不同开发人员的身份
    • 辨析:这里设置的签名和远程库(代码托管中心)的账号密码没有任何关系
    • 命令:
      • 项目级别/仓库级别:仅在当前本地库范围有效
        • git config user.nametom_pro
        • git config user.email_pro...
      • 系统用户级别:登录当前操作系统的用户范围
        • git config--golbal user.name witcher_glb
        • git config--golbal email_glb...
      • 优先级:就近原则.项目级别优先于系统用户级别
基本操作
  1. 状态查看操作
    1. git status
    2. 产看工作区,暂存区的状体
  2. 添加操作
    1. git add [file name]
    2. 将工作区的新建/修改添加的暂存区
  3. 提交操作
    1. git commit -m"自定义的提交信息" [file name]
    2. 将暂存去的内容提交到本地库
  4. 产看历史记录
  • gig log --pretty=oneline 每条日志只显示一行;
  • git log --oneline 与上面相比哈希值只显示一部分,内容只显示故去的;
  • git reflog 增加HEAD@{0}显示指针移动的步数
  • 多屏显示时的控制方式,和linux一样,空格向下翻页 b向上翻页 q退出
  1. 前进后退 HEAD
    1. 推荐使用基于索引的办法 git reset --hard 索引值
    2. 使用^符号,只能往后退,不能往前 git reset --hard^后退一步 一个符号表示后退一步
    3. 使用~ git reset --hard ~n 后退n步 只能后退
  2. reset 命令的三个参数对比
    1. soft
      1. 仅仅是在本地库移动HEAD指针
    2. mixed
      1. 在本地库移动指针
      2. 重置暂存区
    3. hard
      1. 在本地库移动HEAD指针
      2. 重置暂存区
      3. 重置工作区
  3. 删除文件并找回
    1. 前提:删除前,文件存在时的状态提交到了本地库
    2. 操作:git reset --hard [指针位置] 还是利用了hard这个参数的特性,会统一 工作区.暂存区 本地库
      1. 如果删除操作已经提交到本地库:指针位置指向历史记录
      2. 如果删除操作尚未提交的本地库:指针位置使用当前HEAD
  4. 比较文件差异 diff
    1. git diff[文件名]
      1. 将工作区中的文件和暂存区进行比较
    2. git diff[本地库中历史版本(HEAD)][文件名]
      1. 将工作区中的文件和本地库历史记录比较
    3. 不指定文件名比较所有文件的差异
  5. 分支 master主干featute(功能)_
    1. 同时并行推进多个功能开发,提高开发现率
    2. 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支产生影响,失败的部分直接删除就可以
  6. 分支操作git branch -v查看分支
    1. 创建分支
      1. git branch[分支名]
    2. 查看分支
      1. git branch -v
    3. 切换分支
      1. git checkout[分支名]
    4. 合并分支(切换到接受修改的分支上)
      1. 执行 merge 命令
      2. git merge [有新内容的分支名]
    5. 解决冲突 冲突的表现
      1. 编辑文件,删除特殊符号
      2. 把文件修改到满意程度,保存退出
      3. 第三部git add[文件名]
      4. git commit -m"日志信息" 注意:现在不要加文件名
Git基本原理
  1. 哈希
  1. Git的文件管理机制
  1. Git分支管理机制
  2. 整合github
    1. git remote -v 查看当前所有远程地址别名
    2. git remote add[别名][远程地址]
  3. 推送
    1. git push[别名][分支名]
  4. 克隆 命令:git clone [远程地址],作用有三
    1. 完整的把远程库下载到本地
    2. 创建origin远程地址别名
    3. 初始化本地库
  5. 拉取 fetch merge
    1. pull=fetch + merge
    2. git fetch [远程库地址别名][远程分支名]
    3. git merge[远程库地址别名/远程分支名]
    4. git push origin master
 
  1. 解决冲入
    1. 要点
      1. 如果不是基于githb远程库的最新版所做的修改,不能推送,必须先拉取
      2. 拉取下来后如果进入冲突状态,则按照"分支冲突解决"操作即可
  2. 跨团队写作
    1. Fork
    1. 本地修改,推送到远程
    2. pullrequests
      1. 发送请求
    • 管理人,处理请求
 
SSH的免密码登录
  1. ssh-keygen -t rsa -C 邮箱
 
 
 
idea连接码云的方法:


posted @ 2020-01-09 21:42  bloodAndWine  阅读(123)  评论(0)    收藏  举报