git&github

Posted ywzq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git&github相关的知识,希望对你有一定的参考价值。

一、版本控制工具

  功能:

    协同修改:多人并行修改服务器同一个文件。

    数据备份:不仅保存目录和文件的状态,还能保存一个提交过的历史状态。

    版本管理:在保存每一个版本的文件信息的时候都要做到不保存重复数据。这方便svn采用的是增量

         git采用文件系统快照的方式。

    权限控制:团队中参与开发的人员进行权限控制

         团队对外开发者贡献的代码进行审核(git独有) 

    历史记录:查看修改人、修改时间、修改该内容、日志;本地文件恢复到一个历史状态

    分支管理:允许开发团队在工作过程中多条生产线同事推进

  简介:

    分如下两类:

    1.集中式版本控制工具(例:cvs、svn...)

    技术图片

 

     特点:文件、版本信息存储在服务器上;服务器损坏历史数据丢失

    2.分布式版本控制工具(例:git)

 

    技术图片

 

     特点:分布存储,可以有效避免单点故障、与linux命令全面兼容

         

二、git结构

  分为三部分:本地库、缓存区、工作区三个大区

  工作区:写代码

  暂存区:临时存储

  本地库:历史版本

  结构图:

 

    技术图片

 

 

三、get和代码托管中心(维护远程库)

  局域网环境下

    gitLab服务器

  外网环境下

    gitHub、码云(国内速度快一点)

本地和远程库

  情况一:团队内协作

  技术图片

 

 

 

  情况二:跨团队协作

        技术图片

 

 

 

四、 git命令行操作  

  本地初始化

    命令:git init

    效果:  技术图片

 

 

     注意:.git存放的是本地库的子目录和文件

五、设置签名(区分开发人员身份):

  设置用户名、地址 (辨析:和代码托管中心的用户名没有关系)

   项目/仓库级别:尽在当前本地方位内有效;

    git config user.name  zwl

    信息存储位置./git/config文件

   系统用户级别:登录当前操作系统的用户范围

    git config --global user.name  zwl

    信息存储位置 ~/.gitconfig文件使用ll -lA查看

 

六、git&github添加提交查看  

  git status查看状态(查看工作区、暂存区状态)

  git add 添加操作 (将工作区添加到暂存区)

  git rm --cached 文件移除暂存区/追踪文件

  git commit 文件提交(将暂存区提交到本地库)

  git add 修改文件 ;或者使用git commit -a提交

  git commit -m ‘my second commit,modify file‘ good.txt 添加文件并注释

七、版本查看

  git log 版本查看(默认完整内容;--pretty=oneline:一行展示;--oneline:简洁模式(展示当前版本位置))

  git raflog 查看版本(展示当前版本位置,移动版本需要几步)

八、版本控制

  本质:head指针控制

  基于索引值操作版本

    命令:git reset --hard 索引值/hahs值

  基于^符号:只能后退(一个^表示后台一步,多个表示后退多步)

    命令:git reset HEAD^3

  基于~符号:只能前进

    命令:git reset head~

 

  get help 命令(例:soft)查看帮助文档

  --soft参数:移动指针

  --mixed参数:移动指针,重置暂存区

  --head参数:移动指针、重置暂存区、重置工作区

八、添加到暂存区删除文件找回

  前提:删除前,问津存在的状态提交到本地库

  操作:git reset --head 指针位置

    删除操作已经提交到本地库:指针指向历史记录

    删除操作未提交到本地库:指针执行HEAD

九、文件对比

  git diff 文件名 工作区和暂存区对比

   git diff HEAD 工作区和本地库对比

  git diff  HEAD 索引值 文件名 工作区和历史记录对比

十、分支

  多任务并行推进

  分支查看:git branch -v 

  创建分支:git branch 分支名

  切换分支:checkout 分支名

  合并分支:

    切换(git checkout 被分支名)到被合并的分支上;执行megre命令(git megre 有新内容分支名字)

  解决冲突:

    技术图片

    删除特殊符号,修改内容,保存退出

    git add 文件名

    git commit -m 日志内容(不能带文件名)         

 十一、git基本原理

  哈希:一种加密算法

    特点:大量数据,算法加密长度固定。

       哈希算法确定,输入数据确定,输出数据不变

       哈希算法不可逆

  git底层采用SH-A算法

  git保存版本的机制

    git的“提交对象”

     技术图片

 

 

    提交对象及其父对象想成的链条

    技术图片

 

 

  git分支的创建:本质就是创建指针

  技术图片

 

 

   切换分支:

  技术图片

 

 

   

GitHub

  本地和远程库交互

  推送

    git push 远程库地址(别名) 分支  

  拉取(克隆)

    git clone 远程仓库地址

    三个目的:完成下载远程库到本地;创建origin 远程库别名;初始化本地库 

   邀请加入团队

    远程库(github)settings中邀请Manager access中邀请成员加入  

  远程库修改拉取

  拉取(pull=fetch+merge)

    git fetch 远程库地址别名 远程分支名

  切换分支

    git checkout 别名/分支名

  合并

    git merget 远程地址别名/远程地址分支名

   拉取并合并

    git pull 远程库别名 远程库分支名

  分支冲突

    如果不是基于gitHub最新库所做的修改,不能推送,必须先拉取最新内容

    拉取内容,修改冲突,提交本地库;推送远程库

跨团队协作

  远程库fork操作

  pull request 远程库提交修改

  merge pull request;confirm merge 远程库合并修改

   将远程库拉取到本地

配置SSH免密登录

  生成ssh目录: ssh-keygen -t rsa -C github邮箱账号

  进入目录,复制id_rsa.pub秘钥

  githuib配置ssh key

  本地库新建远程库别名:git remote add origin_ssh 地址

  

git图形化界面

  eclipse工程初始化本地库

    工程右键→Team→share project →git→creat repository(创建工程本地库)

  设置签名

    git Configuration设置签名

  git配置忽略文件

       新建忽略文件目录;git配置文件路径

  eclipse推送远程库

    工程右键→Team→push(配置远程库)

  eclipse克隆远程库

    import→git→Projects from Git→Clone URI(远程库地址)→选择分支→选择eclipse工作区目录→普通工程→转换工程(maven)

 

 

  

    

  

   

 

 

 

 

  

    

 

以上是关于git&github的主要内容,如果未能解决你的问题,请参考以下文章

Git与GitHub

git介绍

git介绍

vs中使用git

GitHub

git--github使用