Git和Github

 

1.版本控制概念

  版本控制是一种记录文件变化的方式,以便将来查阅特定版本的文件内容

 

2.Git是什么

  git是一个分布式版本管理控制系统,可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任意时间点将更新记录恢复回来。

       git环境搭建 :

   在git官网下载,然后傻瓜式安装下一步就可以了

3.git基本工作流程和使用前配置

  工作目录:被Git管理的项目目录,也就是我们编写代码的地方

  暂存区:临时存放被修改文件,方便进行管理

  Git仓库:代码最终提交存放的位置

     执行流程: 工作目录中修改的文件 --> 提交到 暂存区 --> GIT仓库

  

  使用前配置:

    配置提交人姓名:git config --global user.name + 提交人姓名

    配置提交人邮箱:git config --global user.email + 提交人邮箱

    查看git配置信息: git config --list

   通过命令行的形式进行的配置,也可以通过修改配置文件来进行修改,文件名字叫 .gitconfig,位置在 C:\Users\系统用户名.gitconfig

   要对配置信息进行修改的话,重复上述命令即可

4.Git使用

  提交文件到Git仓库

    1.初始化git仓库

      git init

    2.添加文件到暂存区

      git add index.html   

      git add . 是将全部文件进行提交

    3.提交到Git仓库 

      git commit -m '日志信息'

    4.查看相关状态

      git status

    5. 查看提交日志信息

      git log

5.恢复版本

  1.从暂存区进行恢复

    git checkout 文件名

  2.从git仓库中进行版本恢复

    git reset --hard 版本id         //版本id需要通过git log命令来查询

  3.删除掉暂存区的文件

    git rm --cached 文件名

6.分支和分支相关命令

  主分支master

    第一次向 git 仓库中提交更新记录时自动产生的一个分支。这个属于是主分支,主分支中的代码是很稳定的代码,所以我们在开发的时候一般都不会把代码直接提交到主分支中,主分支中的代码一般都是用于线上的项目;我们一般在开发的时候,会把代码先            同步到开发分支上,等功能完成并且测试没有问题了,我们才会同步到主分支上

  开发分支develop

    作为开发的分支,基于 master 分支创建,这条分支就是用于我们日常开发的分支

  功能分支feature

    作为开发具体功能的分支,基于开发分支创建,为了不影响整体的开发项目,我们在实现某一些有难度的功能时候,会创建功能分支,等到功能实现完毕,没有问题了我们才会同步到开发分支上

 

  三者的合并流程为:功能分支 -> 开发分支 -> 主分支

  

  分支相关命令

    查看分支  git branch 

    创建分支  git branch +分支名称  

    切换分支  git checkout + 分支名称

      注意:当切换分支的时候,需要把暂存区里面的文件进行提交,不然暂存区里面的文件会跟着到切换的这条分支上(也就是使用git status后显示nothing to commit, working directory clean)

      当切换回主分支的时候,就看不到其他分支的文件了

    创建并切换到分支  git checkout -b +新分支名称

    合并分支  git merge +分支名称 

    删除分支 git branch -d +分支名 删除已经合并过的分支

        git branch -D +分支名 强制删除分支,就算没有合并过也进行删除

    暂时保存更改

    在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。

      存储临时改动  git stash

      恢复改动 git stash pop

 

GitHub

概念:GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

7.将本地仓库推送到GitHub:

 第一种:使用push进行代码推送

    git push +远程仓库地址 +本地需要推送代码的分支

    例如:git push https://github.com/WSUYI/gaoshou.git  master

 第二种:

  1.设置远程仓库地址别名

    git remote add +远程仓库地址别名+远程仓库地址 

    例如:git remote add origin https://github.com/WSUYI/gaoshou.git 

  2.git push +远程仓库地址或别名 +本地分支名称

    例如:git push origin master

      或git push -u origin master

      //-u参数的作用就是记住别名和分支名,下次推送代码的时候直接git push就可以了
  

8.下载GitHub的代码

  git clone+ 远程仓库的地址            第一次下载远程仓库的代码

 

    git pull +远程仓库地址+分支名      拉取代码

 

9.解决代码冲突

  多人开发肯定会出现代码冲突的情况,冲突情况的产生,是多个人同时修改了一个文件,例如,A修改了index.html文件,B也修改了index.html文件;A进行了提交,那么B就不能提交了

  就会报错:failed to push some refs to "GitHub远程仓库的地址"

  解决方案: 

    先拉取最新的代码: git pull origin master

    打开产生冲突的文件,修改冲突的代码。  

    修改完成之后,将代码重新推送即可。 (git commit -m 日志    git push origin master)

10.SSH免登录

    利用SSH协议去进行提交,可以进行免登录操作,实现其原理用的是公钥与私钥,公钥跟私钥是成对呈现,打个比喻:公钥就是一个门锁,私钥就是打开门锁的钥匙,公钥保存在github的账户中(远程服务器中),私钥保存在客户端,当客户端进行push的          时候,会携带私钥,远程服务器就会去比对是否匹配,如果匹配,那么push成功

    公钥:保存在github账户中,也就是在远程服务器中

    私钥:保存在客户端

   生成密钥:

      ssh-keygen 生成的密钥在C:\\Users\当前用户名称\.ssh 文件夹里面

   在GitHub中添加公钥

      找到 id_rsa.pub文件,这个就是公钥,复制里面的内容,到github上,点击用户头像,选择settings

11.Git忽略清单

  在根目录中创建  .gitignore  文件

  在文件中输入需要忽略的文件夹的名字或者需要忽略的文件名称

12.仓库的详细说明

  在仓库根目录添加一个 readme.md 文件即可,在里面写上内容,push到服务器后,默认在github里面就能看到仓库的详细说明了

     

 

 

 

 

 

 

 

  

 

posted @ 2019-10-07 21:28  少年e  阅读(208)  评论(0编辑  收藏  举报