(47)2020-03-09(git、gitee)

git、gitee

Git

1、什么是git

Git是一个免费、开源的版本控制工具。

2、什么是版本控制

版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。

系统具体功能

  • 记录文件所有的历史变化。
  • 随时可以恢复到任何一个历史状态(版本)
  • 多人协作开发
  • 错误恢复

版本控制的工具

  • SVN 集中式
  • Git 分布式

3、下载和安装

下载:

官网下载 https://git-scm.com/

国内较快地址 https://npm.taobao.org/mirrors/git-for-windows/

安装

双击,下一步。

检测是否成功安装

1、鼠标在桌面或者文件夹中任意位置右键,出现 git bash here 和git gui here都表示成功。

2、打开CMD 输入 git --version 出现版本号表示成功。

全局配置

使用一下命令查看全局配置

git config --list

如果没有初始化过用户名和邮箱,需要设置一下用户名和邮箱。

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

邮箱地址最好是真实有效的,而是最好是GitHub或者gitee的注册邮箱。

4、基本操作

4.1初始化仓库

git不会自动管理你的文件夹,如果我们需要对文件夹进行版本管理,需要将当前文件夹初始化一个git仓库。初始化仓库后,这个文件夹以及它的所有后代文件夹以及子文件都会被git管理。

  1. 在需要git管理的文件夹下打开命令行。

  2. 输入 git init

  3. 文件夹会有出现一个.git的隐藏文件夹。此时,你的文件夹就会被git管理。

git会将管理的文件分为两个区域四个状态。

(47)2020-03-09(git、gitee)

4.2 将工作区的内容添加到暂存区

【注意】工作区需要有内容,空的文件夹不会被添加。

  1. 当前目录下打开命令行
  2. 输入指令
    1. git add 文件名
    2. git add 文件夹名称
    3. git add --all
      1. 表示将当前工作区里面的所有未添加到暂存区的内容添加到暂存区。
      2. 简写方式:git add .

4.3 查看工作区和暂存区状态

  1. 当前目录下打开命令行
  2. 输入指令 git status 绿色表示文件以及添加到暂存区了,红色表示未添加到暂存区。

4.4 暂存区撤回内容

  • 当前目录下打开命令行
  • 输入指令(中间是两个-)
    • git reset HEAD – 文件名
    • git reset HEAD – 文件夹名称
    • git reset HEAD – . (撤回暂存区所有的内容)

4.5 形成历史版本

将暂存区中的内容形成一个历史版本。【注意】暂存区还有内容。

  • 当前目录下,打开命令行。
  • 输入指令 git commit -m “这次提交的内容说明。”

4.6 查看历史版本

  • 当前目录下,打开命令行
  • 输入指令 git log
  • 会以倒序的方式将本地文件中的历史版本显示出来。
// 历史版本ID
commit 2073eca472d19ea1cbb88065550c88e1a88c0b65 (HEAD -> master)
//设置的用户名和邮箱
Author: 2047 <244389185@qq.com>
//提交的日期
Date:   Tue Mar 9 10:07:10 2021 +0800
//说明
    git第一次提交

4.7 回滚历史版本

回滚到之前记录的某一个历史版本

  • 当前目录下,打开命令行
  • 输入指令 git reset --hard 版本id。 回车。

【注意】回滚后,尽量不要修改内容并提交。

4.8 删除历史版本

删除历史版本时,是使用删除版本上一个版本的id,而且删除后,该版本后的所有历史版本都会被删除。

  • 当前目录下,打开命令行
  • 输入指令 git rebase -i 历史版本id
  • 会进入编辑状态, 按下键盘 i 键,将光标移动到左上角 将pick修改为drop。
  • 按下esc键退出编辑状态
  • 输入:wq 表示保存,回车。

5、GitHub

GitHub是全球最大的社交编程及代码托管网站。

GitHub可以托管各种git仓库,并提供一个web界面。

因为只支持git作为唯一的版本库格式进行托管。所以叫GitHub。

与它功能类似的网站还有一个:gitee(码云) 是国内的网站

6、git相关文件

readme.md 说明文件

对你仓库的内容进行描述说明。

内容格式为md格式。 将仓库传输到远程时,readme文件会自动显示在仓库下面。

.gitignore 忽略文件。

可以忽略一些不需要提交的文件。

该文件的位置必须与.git同级目录。

.gitkeep 占位文件

git不会管理你的空文件夹。如果你需要当前的这个目录,那你有两种选择

  1. 在空文件夹下,新建一个没有用处的空文件。
  2. 在空文件夹下,新建一个.gitkeep文件

7.将本地git仓库上传到远程

git本地仓库可以上传到远程仓库中。比如说GitHub 或者 gitee

上传的时候是将.git所在的目录下所有的同级文件上传到远程。而不是.git上级文件夹上传。

1.建立一个远程仓库

登录GitHub页面,如果没有账号,要先注册一个。

点击账户旁边的+号,选择new repository 就可以新建一个仓库了。

2.确认本地仓库有一个没有上传过的历史版本。

3.在本地中添加一个远程仓库地址

git remote add origin https://gitee.com/envyTheCloud/ym001.git
remote 远程
add 添加
origin 变量名,可以*更改,值为后面写的远程仓库的地址。
	我们以后需要使用远程仓库地址时,就可以直接使用origin。

4.将本地历史版本推送到远程

  • 当前目录下,打开命令行。
  • 输入指令 git push -u origin master
    • push 推送
    • -u 记录下你本次推送到哪一个地址,哪一个分支。如果你下次修改后,再次推送时,就不需要写后面的origin master。 只需要直接写git push即可。
    • origin 表示远程仓库的地址。
    • master 分支

8、将远程仓库拉取到本地

首次

  1. 打开gitee上的仓库详情页,复制仓库远程地址。
  2. 在本地找到一个文件夹
  3. 打开命令行,输入指令 git clone 远程仓库地址

非首次

  1. 在当前目录下,打开命令行
  2. git pull 获取远程仓库最新版本。

解决冲突

当远程仓库有了新的推送时,如果你本地没有更新,去推送新的版本时,两个版本同时对一个文件进行了操作,那么就会冲突。

解决冲突的步骤:

  1. 先 git pull 从远程仓库获取最新的版本
  2. 可以在vscode中解决冲突,选择使用的代码。
  3. git add . 然后git commit -m “提交说明” ,提交生成新的历史版本。
  4. 将新的版本 git push 推送到远程仓库。

9、分支操作

9.1 新建分支

  1. 当前目录打开命令行
  2. 输入指令 git branch 分支名

9.2 查看所有分支

  1. 当前目录打开命令行
  2. 输入指令 git branch -a

9.3 切换分支

  1. 当前目录打开命令行
  2. 输入指令 git checkout 分支名

9.4 删除分支

  1. 当前目录打开命令行
  2. 输入指令 git branch -d 分支名

9.5 合并分支

当分支的开发工作完成,需要将分支和master进行合并。

  1. 当前目录打开命令行
  2. 输入指令 git checkout master 进入master分支。
  3. git merge 分支名。 将分支与master合并
  4. 将合并后的版本git push 推送到远程仓库。

9.6 将分支推送到远程

当我们在本地创建其他分支以后,默认是不会上传到远程仓库的。 git默认是上传到master分支。

在推送时可以指定上传的地址与分支。

git push -u origin 分支名

9.7 将远程分支拉取到本地分支

git checkout -b dev(本地分支名称) origin/dev(远程分支名称)

9.8 删除远程分支

第一种方式:

​ 打开命令行,输入

git push origin --delete 分支名

第二种:在gitee页面中直接删除。

9.9 分支命名规范

1.主分支 ---master
	常见git仓库时会自动生成。一般来说,不要直接在master上面写代码,它只接受dev分支的合并。
master代码在实际项目中一般与线上的正式环境中的代码保持一致。

2.主开发分支  ---dev
	初始化项目之后,从master分支上开辟的新分支。一般也不直接在上面写代码,而是从各个功能分支上合并代码。
	dev分支接受各个功能分支的代码后,进行测试,测试完成后合并到master分支上,在将master分支上的代码发布到正式环境。也就是我们常说的项目上线。
	
3.功能分支 ---feature-XXX
	是从dev分支上开辟的新分支。一般研发工作是在该分支上完成的。研发完成后,将其合并到dev分支上。假如开发购物车模块,分支名:feature-shopCar。
	
4.功能bug解决分支 ---feature-XXX-fix-XXX
	第二个XXX可以是bug的编号。 是从功能分支上开辟的新分支。bug修复后,再将其合并到功能分支上。
	
5.紧急bug解决分支   --- hot-fix-XXX
	直接从master分支上开辟的。进行紧急的bug修复。修复完毕以后,合并到mster分支上。

10、解决gitee上传问题

第一种:本地没有仓库,远程先创建一个仓库。

git clone 远程地址。

第二种:本地已经有了仓库,远程创建一个仓库。

添加远程仓库地址后,将本地版本推送到gitee远程仓库

git pull origin master --allow-unrelated-histories

进入编辑状态

1.按键盘字母 i 进入insert模式

2.修改最上面那行黄色合并信息,可以不修改

3.按键盘左上角"Esc"

4.输入":wq",注意是冒号+wq,按回车键即可

11、使用密钥拉取远程仓库

1.打开命令行,输入指令

ssh-keygen -t rsa -C "邮箱地址"

【注意】邮箱地址为git配置中的邮箱地址。

输入完成后,按下三个回车,直到出现新的命令行。此时,在 /c/Users/Administrator/.ssh/id_rs

目录下生成两个文件。

2.打开pub后缀的文件。复制内容

3.进入设置,找到ssh公钥,生成一个新的公钥。

4.在需要获取的文件夹下,打开命令行,输入

git clone ssh地址。
上一篇:47-基于STM32的GPS定位GSM短信上报系统


下一篇:47.输入某年某月某日,判断这一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于时需考虑多加一天。