0
点赞
收藏
分享

微信扫一扫

Git和GitHub学习笔记

westfallon 2022-01-21 阅读 121
gitgithub

Git和GitHub学习笔记

1. Git概述

​ 免费、开源的分布式版本控制系统

1.1 版本控制

​ 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

1.2 版本控制工具

​ 集中式版本控制工具

​ 分布式版本控制工具

1.3 Git发展历史

请添加图片描述

1.3 Git工作机制

请添加图片描述

1.4 Git和代码托管中心

​ 代码托管中心是基于网络服务器的远程代码仓库,一般成为远程库

1.4.1 局域网

​ GitLab

1.4.2 互联网

​ GitHub(外网)

​ Gitee码云(国内网站)

2. Git安装

下载链接:https://www.git-scm.com/download/win
在这里插入图片描述
下载对应的版本安装即可

3. Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志文件” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

3.1 设置用户签名

签名的作用是区分不同的操作者。Git首次安装必须设置一下用户签名,否则无法提交代码

$ git config --global user.name 用户名 # 设置用户名
$ git config --global user.email 邮箱 # 设置邮箱
$ cat ~/.gitconfig # 查看配置文件
[user]
        name = SunChuanfu
        email = 2271204754@qq.com

3.2 初始化本地化库

Administrator@DESKTOP-5QFLFRG MINGW64 /e/PythonStudy/Git/git-test/git-demo
$ git init
Initialized empty Git repository in E:/PythonStudy/Git/git-test/git-demo/.git/

3.3 查看本地库状态

$ git status # 查看本地库状态

​ 首次查看本地库状态:
在这里插入图片描述

$ git status
On branch master # 当前分支在master
No commits yet # 当前没有提交过文件
nothing to commit # 当前没有文件需要提交

3.4 新增文件

​ 新增文件hello.txt,并查看本地库状态
在这里插入图片描述

Untracked files: # 未被追踪的文件 当前hello文件处于工作区但未被追踪,不在暂存区
$ git add hello.txt   # 当文件hello.txt添加到暂存区

3.5 添加到暂存区

$ git add hello.txt # 添加hello.txt到暂存区

​ 再次查看本地库状态:
在这里插入图片描述

$ git rm --cached hello.txt # 删除暂存区的hello.txt

3.6 提交本地库

git commit -m 版本信息 # 提交hello.txt到本地库

在这里插入图片描述查看版本信息

$ git reflog # 查看历史记录 显示前7位版本号
$ git log # 查看日志 更加详细 显示全部版本号

3.7 版本穿梭

查看所有版本信息

git reflog
git log

实现各个历史版本之前的移动:底层移动head指针

$ git reset --hard 版本号
$ git reset --hard fd9b186 # 切换到first commit 版本 

切换前
在这里插入图片描述
切换后
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y3zrxNpC-1642756450042)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220120132602968.png)]

4 分支操作

4.1 分支概述

含义:几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。
优点:同时并行推进多个功能开发,提高开发效率各个分支在开发工程中互不影响。

4.2 分支操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上
4.2.1 查看分支

在这里插入图片描述
其中路径后边(master)即是当前分支

4.2.2 创建分支

创建分支test并查看所有分支
在这里插入图片描述

4.2.3 切换分支

切换到test分支
在这里插入图片描述

4.2.4 合并分支
  1. 非冲突合并:将test 合并到master分支
    在这里插入图片描述
    在test分支中的修改已经在master中显示出:合并成功
    在这里插入图片描述
  2. 冲突合并:
    代码冲突:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改方案。Git无法替代我们决定使用哪一个,必须认为决定新代码内容
    解决冲突:自己修改文件 ,提交暂存区,提交本地库,不带文件名
    实例:
    master 中内容hello.txt改为,再提交本地库
    在这里插入图片描述
    在这里插入图片描述
    test中的内容hello.txt改为,再提交本地库
    在这里插入图片描述
    再次test 合并到master分支在这里插入图片描述
    自动合并失败,进入手动合并界面,此时hello.txt中内容为,此时进入手动合并过程
    在这里插入图片描述
    假设保存test中的修改,
    1、将hello.txt其他的删除即可,再进行保存

    2、将hello.txt提交到暂存区
    在这里插入图片描述
    3、将hello.txt提交到本地库(注意:不要带文件名 hello.txt)

    手工合并完成

5 团队协作

团队协作模式:
团队内协作
在这里插入图片描述
跨团队协作
在这里插入图片描述

6. Github

GitHub网址: https://github.com/
在这里插入图片描述

6.1 创建远程仓库

登录GitHub 网址
在这里插入图片描述
为远程仓库创建名字点击创建即可
在这里插入图片描述

6.2 远程仓库操作

命令名称作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程地址起别名
git push 别名 分支推送本地分支上的内容到远程仓库
git clone 远程地址将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前分支直接合并
6.2.1 为远程仓库地址创建别名并且查看

复制远程仓库地址
在这里插入图片描述
创建别名并且查看别名
在这里插入图片描述

6.2.2 将本地分支推送到远程仓库(Push)

将本地master分支推送到远程仓库
在这里插入图片描述
授权
在这里插入图片描述
推送成功界面
在这里插入图片描述
此时访问github账号发现多了一个master分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1HxVRiDq-1642756450065)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220121123323325.png)]

6.2.3 将远程仓库拉取到本地仓库(pull)

将远程仓库中的hello.txt最后添加一行 web modify
在这里插入图片描述
此时本地仓库的hello.txt内容依旧为
在这里插入图片描述
复制远程仓库地址
在这里插入图片描述
拉取
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i72IWPxV-1642756450069)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220121132540573.png)]
提示一行新增,此时查看本地库状态,查看hello.txt内容
在这里插入图片描述

6.2.4 clone 代码

Git文件夹下新建git-xiaolan模拟小兰用户克隆,由于windows只能识别一个用户,故需要将原来的CreateBubble凭据删掉
在这里插入图片描述
进行clone,注意公共库的clone不需要任何账户登录,只需要远程仓库的地址
在这里插入图片描述
clone 时同时完成:1.拉取代码 2.初始化本地库 3.创建别名,别名自动为origin
在这里插入图片描述

6.2.5 团队内协作:邀请进入团队

演示:computercreator和CreateBubble团队内合作

在这里插入图片描述
将computercreater邀请到CreateBubble的管理成员中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时computercreator就可以推送和拉取代码,进行团队内协作

6.2.6 跨团队协作:

在这里插入图片描述
演示:computercreator和CreateBubble团队外合作
1.computercreator fork CreateBubble项目
在这里插入图片描述
在这里插入图片描述
2.computercreator进行修改hello.txt保存修改
在这里插入图片描述
3.computercreator创建新的pull request 请求
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
4. CreateBubble 接受请求
在这里插入图片描述
5. 审核没有错误,进行合并
在这里插入图片描述
合并完成后

6.2.7 ssh免密登录

在这里插入图片描述
查看本地是否有ssh秘钥
C:\Users\你的登录用户 查看当前目录下是否有.ssh文件,如果有则删除
生成秘钥

$ ssh-keyger -t rsa -C 你的github邮箱 # 生成秘钥

在这里插入图片描述
生成秘钥后,进入.ssh文件,查看并赋值公钥

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

成功生成ssh
在这里插入图片描述
ssh拉取测试 此时的本地还未修改
在这里插入图片描述
获取ssh链接
在这里插入图片描述
拉取pull

$ git pull git@github.com:CreateBubble/git-demo.git master # ssh地址 分支

在这里插入图片描述
在这里插入图片描述
拉取测试成功

push测试:在本地hello.txt文件最后添加 ssh_push_test
在这里插入图片描述push到远程库

$ git push git@github.com:CreateBubble/git-demo.git master # ssh地址 分支

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

举报

相关推荐

Git&GitHub 笔记

Git和GitHub

git和github

Git和Github

重温git和GitHub

Git和Github操作详解

0 条评论