热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git使用教程(尚硅谷)

文章目录Git常用命令1.设置签名2.初始化本地库3.查看本地库状态4.添加暂存区5.提交本地库6.修改文件7.历史版本Git分支操作分支分支的好处分支的操作查看分支创建分支切换分

文章目录

  • Git常用命令
      • 1. 设置签名
      • 2. 初始化本地库
      • 3.查看本地库状态
      • 4.添加暂存区
      • 5.提交本地库
      • 6.修改文件
      • 7.历史版本
  • Git分支操作
    • 分支
    • 分支的好处
    • 分支的操作
      • 查看分支
      • 创建分支
      • 切换分支
      • 合并分支
      • 产生冲突
      • 解决冲突
      • 创建分支和切换分支图解
  • 团队协作
    • 团队内协作
    • 跨团队协作
  • GitHub操作
    • 创建远程仓库
    • 远程仓库操作
      • 推送本地分支到远程仓库
      • 拉取远程库内容
      • 克隆远程库到本地
      • 邀请加入团队
    • 跨团队协作
    • SSH免密登录


Git常用命令

1. 设置签名


  • 区分不同开发人员的身份,与GitHub账号无关
  • 项目级别:仅在当前本地库范围有效

git config user.name layla
git config user.email 1506460359@qq.com
//信息保存位置
cat .git/config

  • 系统用户级别:登陆当前操作系统的用户范围

git config --global user.name layla
git config --global user.email 1506460359@qq.com
//信息保存位置
cd ~
ls -lA|less

  • 优先级:项目级别>系统用户级别

2. 初始化本地库


  • 初始化本地库

git init

3.查看本地库状态


  • 首次查看

git status

在这里插入图片描述

  • on branch master :目前在master分支
    No commits yet:目前没有任何提交
    nothing to commit:工作区没有任何文件

  • 新增文件

vim 文件名
i--修改
esc--退出
:wq--保存

在这里插入图片描述

  • 再次查看状态
    在这里插入图片描述发现一个未被追踪的文件

4.添加暂存区


  • 将工作区的文件添加到暂存区

git add 文件名

在这里插入图片描述

  • 查看状态
    检测到暂存区有新文件
    绿色表示git已追踪到该文件,但只是在暂存区
    在这里插入图片描述
  • 从暂存区删除文件

git rm --cached 文件名

在这里插入图片描述

  • 工作区仍然存在
    在这里插入图片描述
  • 再次查看状态
    • 暂存区的文件被删了
      在这里插入图片描述

5.提交本地库

git commit -m "日志信息" 文件名

  • 提交本地库

    • b714fb6 – 版本号
      在这里插入图片描述
  • 查看状态

    • 没有文件需要提交了
      在这里插入图片描述
  • 查看版本信息

git reflog

在这里插入图片描述

  • 查看日志详细信息\

git log

在这里插入图片描述

6.修改文件


  • 修改文件后查看
    • 检测到工作区有文件被修改
      在这里插入图片描述
  • 添加到暂存区
    在这里插入图片描述
  • 查看本地库状态
    在这里插入图片描述
  • 提交到本地库
    • 8行被修改(Git按照行维护文件,所以又8行新增8行删除)
      在这里插入图片描述
  • 再次查看状态
    在这里插入图片描述
  • 查看版本信息
    • 指针指向第二个版本(工作区中也只有一个文件)
      在这里插入图片描述
    • 获取版本内容
      在这里插入图片描述

7.历史版本


  • 查看历史版本

git reflog
git log
cat 文件名

  • 版本穿梭(版本可以回退也可以前进)

git reset --hard 版本号

指针指向了第一个版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Git分支操作

分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
在这里插入图片描述

分支的好处

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

分支的操作


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

查看分支

在这里插入图片描述

创建分支

在这里插入图片描述

切换分支

在这里插入图片描述

  • 修改文件内容
    在这里插入图片描述
  • 当前指向的版本就是hot-fix
    在这里插入图片描述

合并分支


  • 当前又变回了原来的hello.txt文件
    在这里插入图片描述
  • 合并后hello.txt改变
    在这里插入图片描述

产生冲突


  • 在master中修改hello.txt
    在这里插入图片描述
  • 在hot-fix中修改hello.txt
    在这里插入图片描述
  • 在将hot-fix分支合并到master上时,出现冲突
  • 冲突产生的表现:后面状态为 MERGING
  • 冲突产生的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

在这里插入图片描述

解决冲突


  • 编辑有冲突的文件,删除特殊符号,决定要使用的内容
  • 特殊符号&#xff1a;<<<<<<>>>
    在这里插入图片描述
  • 修改保存
    在这里插入图片描述
  • 添加到暂存区&#xff0c;执行提交&#xff08;注意&#xff1a;此时使用 git commit 命令时不能带文件名&#xff09;
  • MERGING消失
    在这里插入图片描述
  • hot-fix分支中的hello.txt文件并未修改
    在这里插入图片描述

创建分支和切换分支图解


  • master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支&#xff0c;其实是由 HEAD决定的。
  • 所以创建分支的本质就是多创建一个指针。
  • HEAD 如果指向 master&#xff0c;那么我们现在就在 master 分支上。
  • HEAD 如果执行 hot-fix&#xff0c;那么我们现在就在 hot-fix 分支上。

在这里插入图片描述

团队协作

团队内协作

在这里插入图片描述

跨团队协作

在这里插入图片描述

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

创建远程仓库

在这里插入图片描述

远程仓库操作


推送本地分支到远程仓库

在这里插入图片描述

拉取远程库内容

在这里插入图片描述

克隆远程库到本地

在这里插入图片描述

邀请加入团队


  • 被邀请人接收后就可以修改内容并 push 到远程仓库
    在这里插入图片描述

跨团队协作


  • 将远程仓库的地址发给跨团队协作的人
    被邀请人将链接复制到地址栏中&#xff0c;点击Fork将项目叉到自己的账号仓库
    被邀请人就可以在线编辑叉取过来的文件
    点击pull request
  • 邀请人账号就可以看到一个pull request请求
    进入聊天室&#xff0c;可以讨论代码相关内容
    审核后&#xff0c;如果代码没有问题&#xff0c;可以点击merge pull request合并代码

SSH免密登录


  • 先删除之前生成的.SSH文件在这里插入图片描述

ssh-keygen -t rsa -C GitHub邮箱账号

在这里插入图片描述

  • 查看id_rsa.pub文件内容
    在这里插入图片描述
  • 复制 id_rsa.pub 文件内容&#xff0c;登录 GitHub&#xff0c;点击用户头像→Settings→SSH and GPG keys

在这里插入图片描述

  • 将ssh-rsa复制进去

在这里插入图片描述

  • 复制SSH链接

在这里插入图片描述

  • 接下来再往远程仓库 push 东西的时候使用 SSH 连接就不需要登录了。

在这里插入图片描述


推荐阅读
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • Git GitHub多人协作
    在学校做一个小项目需要多人协作,就用到了gitHub,百度了一下多数写得乱七八糟或者支离破碎,于是总结了一下自己的步骤如下,第一次使用GitHUb,哪里不对望大神指出一.前期准备: ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
author-avatar
L的日记727248401
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有