HIT2020春软件构造 Git&Github学习笔记

HIT2020春软件构造->Git&Github学习笔记

  • 由于软件构造课程需要,学习使用git,以下作为学习笔记.
    • 一、Git初始化及仓库创建和操作
    • 二.分支
    • 三.git远程仓库管理
    • 四.SSH免密登录
    • 五.github pages 搭建网站

由于软件构造课程需要,学习使用git,以下作为学习笔记.

一、Git初始化及仓库创建和操作

HIT2020春软件构造 Git&Github学习笔记_第1张图片
1.基本信息设置(设置签名)
命令
项目级别/仓库级别:仅在本地仓库范围内有效
git config

系统用户级别:登录当前操作系统的用户范围
git config –global
ls -lA|less 查看文件内容
在这里插入图片描述
在这里插入图片描述
级别优先级:就近原则->项目级别优先于系统用户级别

1.设置用户名

git config –global user.name ‘hiter1180300322’

2.设置用户邮箱

git config –global user.email ‘[email protected]

3.查看设置

git config –list

注:该设置在GitHub仓库主页显示谁提交了该文件
2.初始化一个新的Git库
1.创建文件夹
 mkdir test
2.在文件夹内初始化git(创建git仓库)
cd test
git init

注:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不可随意修改
在这里插入图片描述
HIT2020春软件构造 Git&Github学习笔记_第2张图片
3.向仓库添加文件
touch xx(文件) 创建新文件

git status 查看文件状态

git add hello.c 添加至暂存区

git status

git commit -m ‘提交描述’ 将文件从暂存区提交到仓库
    HIT2020春软件构造 Git&Github学习笔记_第3张图片
git rm –cached hello.c 将文件从暂存区撤回至工作区
HIT2020春软件构造 Git&Github学习笔记_第4张图片
4.修改文件
nano hello.c

重复向仓库添加文件
  在这里插入图片描述
5.删除仓库文件
1.)删除文件

rm -rf hello.c

2.)从git中删除文件

git rm hello.c

3.)提交操作
  在这里插入图片描述
 注:git rm -f hello.c 同时删除工作区和暂存区文件
6.永久删除文件后找回
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找回:回退到某一个记录
7.添加至暂存区的删除文件找回
git reset –hard HEAD
HIT2020春软件构造 Git&Github学习笔记_第5张图片
在这里插入图片描述
注:删除后可找回,需要文件存在时的状态提交至本地库

git log

HIT2020春软件构造 Git&Github学习笔记_第6张图片
git log –pretty=oneline
在这里插入图片描述
git log --oneline
在这里插入图片描述
git reflog 显示到某个版本需要几步 HEAD@{移动到当前版本需要多少步}
在这里插入图片描述
多屏显示控制方式:

空格向下翻页

b向上翻页

q退出

8.前进后退(使用指针head)

基于索引值操作 git reset –hard [局部索引值]
  HIT2020春软件构造 Git&Github学习笔记_第7张图片
  使用^符号:只能后退

git reset –hard HEAD^ 回退一步

git reset –hard HEAD^^ 回退两步

git reset –hard HEAD^^^ 回退三步
    HIT2020春软件构造 Git&Github学习笔记_第8张图片
  使用~符号

git reset –hard HEAD~3 回退三步

注:reset命令的三个参数对比

–soft 仅仅在本地库移动HEAD指针
在这里插入图片描述
HIT2020春软件构造 Git&Github学习笔记_第9张图片
–mixed 在本地库移动HEAD指针,重置暂存区

在这里插入图片描述

HIT2020春软件构造 Git&Github学习笔记_第10张图片

–hard 在本地库移动HEAD指针,重置暂存区和工作区

比较文件差异 git diff [文件名]

将工作区中的文件和暂存区中进行比较

HIT2020春软件构造 Git&Github学习笔记_第11张图片

结果
在这里插入图片描述

git diff [本地库中历史版本] [文件名]

将工作区中文件和本地库历史记录比较

注:不带文件名可以比较多个文件

二.分支

在版本控制过程中,使用多条线同时推进多个任务

优点:同时并行推进多个功能开发,提高开发效率;各个分支在开发过程之中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除后重新开始即可。

git branch -v 查看所有分支

git branch 分支名 新建分支

git checkout 分支名 切换到某一分支

HIT2020春软件构造 Git&Github学习笔记_第12张图片
在不同分支上进行修改 修改后哈希值发生改变
HIT2020春软件构造 Git&Github学习笔记_第13张图片
1.合并分支

切换到接受修改的分支上(被合并,增加新内容),执行merge命令

将hot_fix合并至master
HIT2020春软件构造 Git&Github学习笔记_第14张图片
2.合并冲突
修改不同分支同一文件的同一位置

删除特殊符号,修改文件内容后,即可进行合并。

三.git远程仓库管理

新建别名 git remote add 别名 原名(远程库原地址)

在这里插入图片描述
在这里插入图片描述

本地库推送至远程库 git push 别名 分支名
1.Git克隆操作

目的:将远程仓库(GitHub对应的项目)复制到本地

git clone 仓库地址
  在这里插入图片描述
  效果:完整的把远程库下载到本地;创建origin远程地址别名;初始化本地库

2.远程库的拉取

pull=fetch+merge

1)git fetch [远程库地址别名] [远程分支名]

2)git merge [远程库地址别名/远程分支名]

两步骤等同于

git pull [远程库地址别名] [远程分支名]

3.协同开发时的冲突解决

两人同时修改同一位置,先提交的人成功。

后提交的人需要先拉取,再推送。(不是基于GitHub的最新版)

若进入冲突状态,进入“分支冲突”解决。
  HIT2020春软件构造 Git&Github学习笔记_第15张图片
4.跨团队协作

  1. )其他用户点击

在这里插入图片描述

此时其他用户回到他的主页

当前仓库所有人是其他用户,但是是从我们的团队fork来的

2.)本地bash 进行clone 修改后推送到远程

3.)其他用户
HIT2020春软件构造 Git&Github学习笔记_第16张图片

  1. )我们的团队

在这里插入图片描述

查看消息内容,可进行对话,代码审核,确定没有问题。

填写本次操作的日志信息

5.远程库的修改可拉取至本地

四.SSH免密登录

1.进入当前用户的家目录 $ cd ~

2.删除.ssh 目录$ rm -rvf .ssh

3.运行命令生成.ssh 密钥目录 $ ssh-keygen -t rsa -C 用户邮箱

4.进入.ssh 目录查看文件列表 $ cd .ssh $ ls -lF

查看id_rsa.pub 文件内容 $ cat id_rsa.pub

5.复制id_rsa.pub 文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG Keys -> New SSH Key 输入复制的密钥信息

6.回到Git bash 创建远程地址别名 $ git remote add origin_ssh ssh地址

7.推送文件进行测试

附:解决git push错误 The requested ULR returned error:403 Forbidden while accessing

私有项目,没有权限,输入用户名密码,或者远程地址采用这种类型

vi .git/config

#将

[remote “origin”]

url=https://github.com/用户名/仓库名.git

修改为:

[remote “origin”]

url=https://用户名:密码@github.com/用户名/仓库名.git

五.github pages 搭建网站

个人站点

访问

https://用户名.github.io

搭建步骤

1.创建个人站点->新建仓库(注:仓库名必须是【用户名.github.io】)

2.在仓库下新建index.html的文件即可

注:1.github pages 仅支持静态网页

2.仓库里面仅能有.html文件

Project Pages 项目站点

https://用户名.github.io/仓库名

附:邀请团队成员

HIT2020春软件构造 Git&Github学习笔记_第17张图片

你可能感兴趣的:(HIT2020春软件构造 Git&Github学习笔记)