Git

为什么要去管理代码? 我们就会通过很多工具进行代码管理。 包括可以查看历史记录,可以解决代码冲突问题。
我们在公司中管理代码的工具都有哪些???

git(14年左右出现)
SVN(小乌龟)

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

1.版本的概念

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

(2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。  1.1.1=>大版本迭代 就是2.0.1

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

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

2.管理版本

(1) 传统管理方式

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

(2) 版本控制方式

介绍:

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

3.git介绍

(1)定义 :

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

(2)特点:

项目越大越复杂,协同开发者越多,越能体现出Git 的高性能和高可用性!并且git有3个区域

(3)三个区域

  • 工作区

         

就是本地电脑的各个盘符

  • 暂存区

        

 

git自己的隐藏某一个文件夹

  • 仓库区

        

 

远程仓库地址(码云/github)

4.安装步骤

(1)下载安装

Git - Downloads

注意1:下一步下一步(next),尽量开发相关的软件都安装到默认盘符,不要去修改,更不要放到中文文件夹以及中文名字

window系统。鼠标右键,git Bash Here,默认打开git终端

注意2:mac 下载安装好后,用自带的终端去使用git即可

(2)配置用户信息

注册账号:

码云或者是github通过邮箱和手机号进行注册。教学过程中用的是码云。不用担心操作命令都是一样的。

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

配置命令:

git config --global user.name xxx
git config --global user.email xxx

以上的配置命令既是添加也是修改

验证是否配置成功

  1. 输入命令:   git  config  --list
  2. 在 c:/用户/用户名   下有 .gitconfig文件,存放的就是git配置的用户信息

特殊说明:

安装完git后,只需要配置一次用户信息,后期不需要再配置

5.Git操作步骤

(1)新项目git管理步骤

第一、在码云中创建一个仓库(新建仓库)

给当前仓库设置一个名字

给当前仓库设置一个描述

给当前仓库设置是否开源(建议开源)

之后不需要选择任何,直接创建

第二、找到你工作区,右键 git bash here

初始化 : git init

第三、把本地的内容添加到暂缓区

. 或者 *代表所有

文件名 git add index.html

一个类型  git add *.txt

git add .

第四、加备注

commit  提交

git commit -m 'this is a new project'

第五、链接远程仓库

git remote add origin 你自己的仓库地址

第六、把内容推送到远程仓库

master 默认分支

git push -u origin "master"

总结:
1、不认真 不仔细
	单词拼错  add. 这是不错  add .这是对了
2、忘记设置全局用户名和邮箱
	git config --global user.name xxx
	git config --global user.email xxx
3、电脑的凭据管理(管理电脑自身系统的用户名密码)
	第一次上传会出现弹框,是让你输入用户名有密码,是码云的用户名密码

(2) 项目修改或者创建步骤

一、右键 git bash here

二、git add 文件/文件夹/全部
三、git commit -m '记录'

四、git push

特殊说明

  • 一个项目只需要在最开始初始化一次,后期不需要再初始化
  • .git 文件夹,默认是隐藏的,不需要手动修改,通过git命令修改,里边是版本仓库

(3)如何在公司中下载上传代码(非新项目)

  • 先把远程仓库的内容克隆到本地

git clone 远程仓库地址(项目地址)

  • 在已提交之前一定要先更新!!!!

git pull   //拉取

  • 上传

git add 文件/文件夹/全部
git commit -m '记录'
git push  //推送

6.Git命令

init    初始化

git  init

add   提交到暂存区

git add  .   把项目目录下所有文件都提交到暂存区
git  add 文件名  把指定的文件提交到暂存区
git *   把项目目录下所有文件都提交到暂存区
git *.html  一类文件上传

commit   提交到仓库区

  • 每提交一次,就生成一个版本

git  commit -m  版本描述

status  查看状态(谁被提交的一个状态)

git  status

log   查看版本号

git log    版本详细信息
git  log  --oneline  简洁的版本信息

reset   --hard   切换版本

git  reset  --hard  版本号

eg: git reset --hard 83132fe (把所有代码回退到某一个版本)

reflog   查看所有版本号

git reflog
eg: c610837

7.文件忽略

(1)介绍:

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

(2)使用步骤

  • 在项目文件夹下创建文件   .gitignore
  • 在该文件里配置信息

(3)常用配置规则:

  • /git-demo1/ 过滤整个文件夹
  • *.txt  过滤所有.txt文件
  • /git-demo1/a.html 过滤某个具体文件

8.分支

(1)介绍

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

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

(2)分支解决的问题

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

(3)分支相关命令

branch   查看所有分支

git branch

branch 分支名      创建分支

git branch 分支名

checkout   切换分支

git checkout 分支名

merge   合并分支

git merge 分支名

(4)项目使用分支的步骤

(5)冲突问题

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

9.远程仓库

(1)介绍:

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

(2)远程仓库分类:

  • github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响
  • gitee:gitee(码云)是一个基于git的代码托管平台,国内使用频率较多

(3)操作流程

提交项目到远程仓库

    • 第一种
git  push  远程仓库地址  分支名
    • 第二种
起别名:  git  remote add  别名 远程仓库地址
查看是否起成功:  git  remote -v
提交 :   git  push  别名  分支名
    • 第三种
git push -u  别名/远程仓库地址  分支名

-u  可以记录本次的远程仓库地址和分支名,后期再提交时只需要 git  push即可

(4) 相关命令

remote add   添加 远程仓库别名

git  remote  add  别名  远程仓库地址

remote -v    查看别名

git  remote -v

remote  rm   删除别名

git remote rm  别名

push  提交到远程仓库

git push  远程仓库地址  分支名

git push  别名  分支名

git push  -u  别名  分支名
后边的提交只需要  git push  即可
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐