zoukankan      html  css  js  c++  java
  • 三阶段课程——Day01(Git介绍、安装、操作、分支、远程仓库、SSH访问)

    1、Git作用

      工作中必用,不是写代码的,而是维护代码的一个工具。在团队协作开发中,它的优势非常明显。

    2、版本的概念

      (1)初指一种书籍经过多次传抄、刻印或以其他方式而形成的各种不同本子。随着时代的发展,版本也开始应用于影视、软件等事物上,形容事物相同但介绍方法等不同的两个事物。

      (2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。

      (3)软件名称后面经常有一些英文和数字,如:CTS3.3.5、QQ 2021 Beta,这些都是软件的版本标志,通过它,我们可以对软件的类型有所了解。

      各版本的时间轴演变,每一次版本的改变,都会有功能的改变。

     

    3、管理版本

      3.1、传统管理方式

      传统管理方式造成了本地电脑上有很多相同的文件,不容易维护,造成了非常混乱的局面。

                 

     

     

      3.2、版本控制

      使用版本控制以后,只需在本地保存一份,各个版本由版本控制软件来进行管理,常见的版本控制软件有git和svn。

     

    4、Git介绍

      4.1、定义:

      Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。

      项目越大,那么git的优势就越明显 。

     

      4.2、特点:

      项目越大越复杂,协同开发者越多,越能体现出Git 的高性能和高可用性

     

      4.3、操作说明

      如果文件在工作区,则可以提交到暂存区,如果文件在暂存区则可以提交到仓库区。

     

      4.4、Git的三个区域

    • 工作区:相当于写代码的地方
    • 暂存区:我们可以完成某一个功能(登陆、注册),临时的放在一个地方
    • 仓库区:所有的功能完成了,放在仓库区。

      4.5、安装步骤

      下载:

      官网:https://git-scm.com/downloads

      淘宝镜像:https://npm.taobao.org/mirrors/git-for-windows/v2.31.1.windows.1/

     

      安装:

      安装盘符随意(建议路径全英文),安装选项全部默认

     

     

      在任意目录下,点击鼠标右键,会出现以下两菜单

     

      配置用户信息

      安装完Git 之后,需要设置自己的用户名和邮件地址。进行管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作。

      既然是团队协作开发,那么git就需要记录哪个开发者修改了代码文件(删除文件、添加了文件)。

      特殊说明:在你的电脑上只需要配置一次即可。

      配置命令:在任意目录下打开 git bash here

    git config --global user.name 用户名
    git config --global user.email 邮箱

      查看是否配置成功

      1)git config --list

      2) 查看 .gitconfig文件

      查看文件:C:/Users/用户名文件夹/.gitconfig

      Git操作步骤

      (1)使用git初始化项目(一个项目初始化一次即可)

        以git-demo1文件夹为例,它是一个项目根文件夹。

    git init

        1、在项目根目录下,打开git bash here

        2、执行初始化命令

      (2) 编写代码

        新建一个index.html为例 (工作区)

      (3) 把工作区添加到暂存区

        把工作区的果实(文件)放到暂存区

    git add 文件名

      (4) 把暂存区添加到仓库区

    git commit -m 提交说明

      commit: 提交的意思 。只要执行commit命令,就会生成一个版本号

      在开发过程中,一直会围绕着 2、3、4步骤重复操作。

      如果工作区和暂存区是干净的,就不需要提交

     

    1、在代码文件夹下,创建git-demo1文件夹,做为根目录文件(所谓根目录,即以后写代码都在这个里面)
    2、在根目录文件夹下,右键打开git
    3、初始化git                   git init
    4、开发文件(写代码)
    5、将工作区的文件添加到暂存区   git add 文件名
    6、将暂存区的文件添加到仓库     git commit -m 提交说明

      特殊说明:.git文件

      默认是隐藏文件

      不要对.git里面做任何修改,我们在执行git的一些命令的时候,自动会修改的。

      

      Git命令

    • git init

      作用:初始化(一个项目只用执行一次)

    • git add 文件名
    • git add .        代表仓库下所有的文件及文件夹

      把工作区添加到暂存区

    • git commit -m 提交的说明

      把暂存区提交到仓库区。同时生成 一个版本

    • git status

      看仓库中文件的状态

    • git log    以完整方式输出
    • git log --oneline  以简短形式输出

      指向当前的记录及以前的,后面的记录不显示

    • git reset --hard 版本号

      回退版本。在某些情况下(新版本有问题,那么开发者可能要马上回退到上一个版本)

    • git reflog

      可以查看所有的版本,简短形式表示

    文件忽略

      介绍:

      对于无需使用git进行管理的文件或文件夹使用此文件进行配置

      一些公共库代码是不需要往仓库放的。(现在只需要会配置即可,到后面讲项目才能深刻理解)

     

      使用步骤:

    1. 创建配置文件 .gitignore (和.git目录同级)

      注意:必须使用软件开发者(vscode)去创建

    2. 在配置文件中添加一些忽略配置

      常用配置规则:

       (1) /js/ 忽略整个js文件夹

       (2) *.txt 忽略所有.txt文件

       (3) /js/a.js 忽略 js下的a.js文件

     

    分支

      介绍:

      git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。默认只有一个分支为master主分支。

     

      什么是主分支:

      在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支

     

      主分支的问题:

      在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验和效率,建议每个开发者都基于分支进行项目功能的开发

     

      分支解决的问题:

      用来保存和记录整个项目已完成的功能代码。但是不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃

      协议上规定:不应该在master主分支上维护代码 。应该在主分支的基础上,创建分支然后维护代码

      补充说明:在分支上的提交操作和主分支的提交操作命令一样。

     

      分支相关命令

    • git branch

      查看当前git管理的项目中有哪些分支

    • git branch 分支名

      如果主分支上没有任何提交,则不允许创建分支。

    • git checkout 分支名

      切换分支, 在切换的分支上开发功能代码

      注意:当第一次从 master上切换到某一个分支上,则会完全的复制master上第一次提交记录到当前分支上

    • git merge 分支名

      把merge后面的分支记录合并到当前分支上。一般情况下都是合并到主分支上。

      也就说 merge合并 命令,在master分支上 执行比较多。

     

     

    解决冲突:

    介绍:如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法合并它们。 我们需要打开这些包含冲突的文件然后手动解决冲突。

     

    解决步骤:

    1、在git-demo4项目中有 主分支master , 有两个分支:deva和devb

    2、有index.html文件,同时deva和devb同时修改并且提交了

    3、切换到master主动上,合并deva和devb

    4、解决冲突后,再在master上提交

     

     

    补充一

    虽然master合并了deva和devb。

    master上永远是完整的代码。

    我们再切换到分支的时候,需要再合并master的。

     

    补充二

    如何避免冲突:不同的功能模块是不会发生冲突。只有修改了公共文件才有可能发生冲突 ( 谁修改了公共文件,在团队群告知一下 我修改了xxxx文件 )

     

    合并冲突时有时报错详解:

    https://www.cnblogs.com/wei325/p/5278922.html

     

    远程仓库

    Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。 就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。

    目的:把本地的仓库文件上传到远程仓库。

     

    远程仓库分类:

    (1)、github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响

    (2)、gitee:gitee是一个基于git的代码托管平台,国内使用频率较多 (码云)

    (3)、公司自己部署,了解即可,不是前端人员部署的,使用步骤和命令都一样

     

    操作流程:

    1、注册

    https://gitee.com/

     

    2、创建远程仓库(仓库名称和路径保持一致,并开源)

    3、本地文件推送(上传)到远程仓库

    git push 远程地址 远程仓库分支名

    把本地的某个仓库的master分支,上传到远程仓库地址。

    注意:在上传的时候,要验证你的用户名和密码

    4、克隆和同步远程仓库

    团队协作开发,比如:deva上传了某个文件,devb要下载(同步)远程仓库

     

    push: 是把本地仓库推送到远程

    clone:克隆远程仓库到本地(完完全全地下载一份),一般只用一次(如果是第一次下载用克隆)

    git clone 远程仓库 

    pull: 以后同步更新用pull。(比如:deva开发者,只修改了一个文件,其他的开发者只用pull即可。pull只下载更新的文件)

    git pull 远程仓库 

    其他相关命令

    • git remote add [别名] 远程仓库地址

      本地仓库和远程仓库地址产生关联 ,以后可以用别名代表远程仓库地址提交

    • git remote -v

      查看本地仓库和哪个远程仓库进行了关联

    • git clone 地址

      第一次下载用clone

    • git pull 地址

      再次下载,就可以只用拉取新添加的

    刚入职的操作流程

    1、先安装git

    2、全局配置 git config

    以上两步有时候不用。

    3、再下载公司已有的项目(git clone)

    4、99%以上的时间在 写代码和改代码

    5、早上上班时候?

    git pull 更新最新的

    6、下班的时候要做什么 ?

    git add .

    git commit -m

    git push 进行推送

     

    SSH访问

    简介:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。而且,在公司中工作,这个帐号和密码也只会领导掌握。不会下发给员工。

    SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。

    SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。

    生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击回车

     

    1、生成公钥私钥

    ssh-keygen -t rsa -b 4096 -C "开发者的邮箱"

    这样,在开发者的电脑用户名下面会有一个.ssh文件夹,里面就会生成公钥和私钥文件。

    2、将公钥文件添加到远程仓库

    3、验证添加是否成功。要输入yes

    如果成功,本地同公钥私钥文件夹下,会生成一个known_hosts文件。

    ssh -T git@gitee.com

    4、把本地的仓库提交到远程(ssh)

    注意:使用ssh提交不能用https打头。 应该使用 git@gitee.com: 此协议进行提交。提交时,就不用再输入远程仓库的帐号和密码了。

    Git与SVN区别

    SVN:SVN是一个开放源代码的集中式版本控制系统,用于多个人共同开发同一个项目,实现共享资源。集中式版本控制系统:版本库是集中存放在中央服务器,开发者需要先从中央服务器获取最新的版本文件,然后开始干活,最后再把自己修改的文件推送到中央服务器。

    Git:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,联网开发不是必须的。但两两开发者之间肯定不会以qq或U盘形式传送,也有一台充当“中央服务器”的电脑(gitee和github)。此服务器的作用仅是用来方便“交换”各开发之间的修改。

  • 相关阅读:
    HDU-3336-Count the string(扩展KMP)
    洛谷-P3805-Manacher模板
    洛谷-p5410-扩展KMP模板
    HDU-2594-Simpsons' Hidden Talents(kmp, 扩展kmp)
    POJ-3080-Blue jeans(KMP, 暴力)
    [办公应用]两个单独的列数据快速变为两列匹配关联数据
    [办公应用]如何将单词中的部分字母加下划线
    [办公应用]word 2007:全屏快捷键,让复制图片保持原样大小(office 全屏快捷键)
    [办公自动化]如何让excel图表标签中显示最新值数据
    [计算机故障处理]无法访问网络共享资源
  • 原文地址:https://www.cnblogs.com/miaochaofan/p/14806187.html
Copyright © 2011-2022 走看看