Git 使用教程

本文介绍了Git作为分布式版本控制系统的基本概念,包括本地与远程仓库的管理、仓库功能如Watch、Star和Fork,以及分支操作、代码冲突处理和版本回退。还介绍了在Gitee上注册、新建仓库和Git工具的使用方法。
摘要由CSDN通过智能技术生成

Git与版本控制

Git是一个免费、开源的分布式版本控制系统。

版本控制:指的是在多人协作软件开发过程中,对各种程序代码、配置文件及说明文档等文件迭代变更的一种管理方式。

常见的版本控制系统:

  • Git:原始支持命令行的,后续也出现了GUI界面工具。
  • Svn:GUI界面支持。

网站的使用

学习版本控制系统为什么要使用网站?

在版本控制系统中,有“仓库”的概念,而仓库有本地仓库和远程仓库之分。远程仓库的目的在于便于将“仓库”中的东西共享给其它人。例如:某北京分公司需要将代码分享给某上海分公司。而远程仓库的使用就是对网站(例如github、gitee等)的使用。

考虑到Github网站为境外网站,访问速度不佳,本次学习使用gitee替代。但两者使用的方式基本一样,功能也基本一致。

gitee注册:https://gitee.com/signup

新建仓库

注意点:

  • 一个账号可以建立n个仓库
  • 每个项目对应一个仓库
  • 仓库有公开和私有之分
  • 按照图示进入新建仓库的页面

img

  • 按照表单提示完成表单的内容填写

img

  • 建立仓库成功

img

仓库主界面功能

img

  • 统计
    • Watch:关注该仓库的人数(后期仓库项目有进度更新,则关注的人会收到通知)
    • Star:收藏该仓库的人数(后期仓库项目进度有更新不会收到通知的)
    • Fork:引用,将不错项目的仓库里的代码复制一份到自己的账号下,产生同名的仓库
  • 代码
    • 点击之后查看仓库的代码
  • Issues
    • 讨论区,用于对于项目中可能存在的问题进行交流讨论
  • Pull Requests:将引用的(fork)版本推送给被引用的仓库(需要原始仓库负责人去审核)

img

  • Wiki:在线编写项目的使用或者说明文档的
  • 管理
    • 删除仓库:不是特别需要,则不要进行这个操作
    • 仓库成员管理:团队协作往往是很多人参与进来,这个时候就需要邀请成员来参与
  • 克隆/下载:让用户去下载远程仓库的代码到他们本地机器上的操作

Git工具的使用

1、下载&安装Git

下载安装地址,按需求自行下载 https://git-scm.com/downloads

MacOS系统下载安装方式(2选1):

  • 先安装homebrew,随后执行brew install git(好处:要什么装什么)
  • AppStore中安装Xcode(好处:简单)

2、Git工作流程图

以下仓库指的是本地仓库

img

img

3、Git的使用(重点)

①首次使用Git的准备工作

 # 填写注册Gitee时候的用户名(后续使用其它平台的时候建议做替换操作)
 git config --global user.name "你的用户名称"
 # 填写注册Gitee时候的邮箱(后续使用其它平台的时候建议做替换操作)
 git config --global user.email "你的邮箱"
 # 如果随便写后续有影响吗?
 # 如果就使用功能上而言,没有影响。但是不建议,否则代码会识别成其它人提交的。

②本地仓库建立 (先创建项目的文件夹,进入后再执行)

 git init

③本地与线上仓库同步

a. 本地没有仓库

a1. 本地没有仓库,直接将线上克隆到本地,克隆完毕直接关联

 git clone 远程仓库地址

点开文件夹git下的config.如果里面有链接则证明同步成功
a2. 本地没有仓库,新建本地仓库,随后通过命令使得本地与线上仓库关联

 cd 项目空路径
 git init
 
 # touch:新建文件README.md
 touch README.md
 
 # 将文件添加到暂存区
 git add README.md
 
 # 将文件添加到本地仓库(建议给注释加上引号,防止有空格)
 git commit -m "init"
 
 # 将当前仓库与远程仓库建立对应关系
 git remote add origin 远程仓库地址
 
 # 提交本地仓库的代码到远程
 # 如果是首次则使用:git push -u origin master
 # 该命令中master(master是分支)是可变的,后续不一定每次都是master
 # 如果首次提交后,以后每次想将代码再提交到远程,则请直接使用git push
 git push -u origin master

b. 本地有仓库,与线上远程仓库关联

 cd 仓库路径
 git remote add origin 远程仓库地址
 git push -u origin master

若冲突,无法提交,则检查git是否被代理

 git config http.proxy

在这里插入图片描述

然后输入

 git config --global --unset http.proxy

在这里插入图片描述

④提交更改到暂存区(提交全部文件)

git存在一个提示性的命令,能够让我们在工作时候摸鱼回来提示我们下一步该干啥:

 git status
 git add .        提交全部文件

⑤提交更改到本地仓库

 git commit -m 注释内容

⑥将本地仓库代码提交到远程仓库

 git push

⑦将线上代码拉到本地(线上→本地同步操作)

 git pull

新手上路守则

  • 上班第1天
    • git config
    • git clone
    • git add .
    • git commit
    • git push
  • 上班第2天
    • git pull
    • git add .
    • git commit
    • git push
  • 上班第3天
    • git pull
    • git add .
    • git commit
    • git push

4、免密操作

该操作是可选的,只是多增加了一个鉴权的方式而已。

核心:公私钥对的验证

① 产生公私钥对

 ssh-keygen -t rsa -C cherish@cherish.pw

产生完毕后,公私玥对位于c/Users/用户名/.ssh/

  • id_rsa:私钥(私有的钥匙,不能公开)
  • id_rsa.pub:公钥(可以公开的钥匙)

② 将公钥上传至远程仓库个人中心的设置里

以gitee为例,添加公钥请访问:https://gitee.com/profile/sshkeys

img
备注:之前使用的是基于https的方式,那种方式是通过账号密码鉴权的;如果想用现在的免密登录,请使用ssh协议去关联本地与线上仓库。

5、分支操作(重点)

分支的概念及作用:分支在实际开发的时候一般会按照功能模块进行划分,团队协作开发的时候每个人都有自己的分支。各自会在自己的分支上开发,可以防止和别人产生冲突。在自己分支上开发的内容并不能算项目(其只是项目的一部分),在写完之后需要与其它分支进行合并的。

掌握的点:

  • 如何查看分支

  •   git branch
      # 分支列表中名字是绿色的,且前面有*号的,则表示当前的分支名
    
  • 如何创建分支

  •   git branch 分支名
      # 创建只是在本地创建,不会在线上仓库同步创建
       
      # 如果也需要线上有这个仓库,则需要push
      git push -u origin 分支名
    
  • 如何切换分支

  •   git checkout 分支名
    
  • 如何合并分支

  •   # 先需要进入到要 合并到的 分支(例如:user -> master)
      git checkout master    
      git merge 被合并的分支名
      # 最后如果需要同步到线上远程仓库,则需要在合并到的分支中执行git push
      git push
    
  • 如何删除分支

  •   git branch -d 分支名
    

6、代码冲突

线上仓库与本地仓库不同步时,直接修改本地仓库再提交的时候会出现的问题。

​ 线上先改了没给本地说,本地也改了,然后提交,就会冲突

img

上述体现就是冲突,在其中已经体现出哪个文件发生了冲突。
在这里插入图片描述
找到该文件
img

例如上述css文件最终保留我们需要提交的内容可能是:

 p {
     text-align: center;
 }
 
 * {
     font-size: 20px;
     color: #fff;
     line-height: 40px;
 }

解决好之后再去执行git addgit commitgit push

在这里插入图片描述

7、版本回退(Git中的时光机)

场景:代码经过不断的迭代,后续可能需要使用以前的某时候的代码,但是这个代码在现在代码中已经没了。

步骤:

  • 查看日志,获取版本号
 # 查看提交的历史
 git log
 # 查看提交的历史(格式化)
 git log --pretty=oneline

在这里插入图片描述

  • 依据版本号回退到指定版本
 # HEAD形式的两种回退方式不推荐用,原因:回去之后回不来了
 # 回退到上个版本
 git reset --hard HEAD^
 # 回退到前3次提交之前,以此类推,回退到n次提交之前
 git reset --hard HEAD~3
 
 # 推荐用后面这个(可以跳转到指定的时候,过去可以,未来也可以)
 # 回退到指定版本
 git reset --hard commit_id
 # commit_id在用的时候不必非得写全,一般7个前面的字母组合就完全够了

Vim界面

若git commit后不小心进入了vim界面

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值