git操作指南

这篇博客详细介绍了Git的使用,包括Git的基本概念、Git与GitHub的关系、Git工具的下载安装、仓库的创建与管理,以及Git的常用操作如分支、合并、版本回退等,帮助读者从零开始掌握Git。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Git

一、概述

1、Git与版本控制

问:Git是什么?

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

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

情况1:不使用版本控制

情况2:使用版本控制(主流)

常见的版本控制系统:

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

2、Git与Github的关系

注意:git与github半毛钱关系没有。

  • Github:它是全球最大的同性交友网站。(本质:网站)
  • Gitee:也是一个远程git托管平台,在国内使用较多 (本质:网站)

简介:全球最大的社交编程及代码托管网站(基友网站)

网址:https://github.com/

类似网站:

码云gitosc/gitee

gitlab

  • Git是一个免费、开源的版本控制软件。(本质:CS(client/server)模式软件)

二、网站的使用

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

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

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

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

1、新建仓库

注意点:

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

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

  • 建立仓库成功

  • 多人远程开发

    // 第1次
    // 开发先拉主分支
    git clone 地址
    //  创建一个自己的开发分支
    git checkout -b 自己的分支
    // 推送自己的开发分支到远程
    git push -u origin 分支名
    
    // 合并者 或其他开发者
    // 第1 次  git clone
    // 不是第1次
    git pull origin master
    // 拉取其它分支
    // 在主分支
    git merge 分支名
    
    // 推送
    git push -u origin master
    

2、仓库主界面功能

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

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

三、Git工具的使用

1、下载&安装Git

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

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

2、Git工作流程图

以下仓库指的是本地仓库

3、Git的使用(重点)

首次使用Git的准备工作

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

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

git init

③本地与线上仓库同步

a. 本地没有仓库

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

git clone 远程仓库地址

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 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

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

5、分支操作(重点)

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

掌握的点:

  • 打成zip包
git tag 版本号
git archive --format=zip v1.0>v1.0.zip
  • 如何查看分支

    • 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、代码冲突

什么叫做代码冲突:线上仓库与本地仓库不同步时,直接修改本地仓库再提交的时候会出现的问题。

上述体现就是冲突,遇到冲突该如何处理呢?

答:需要解决冲突。

例如上述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个前面的字母组合就完全够了
  • 工作区中的文件回退
// 回退的文件内容,一定要当前此文件必须已提在本地仓库中提交过
git checkout -- 文件名
  • 暂存区中的文件回退
// 当前文件一定在之前提交到本地仓库过一次
git reset HEAD 文件名     让当前的此文件回退到上一次的暂存区的位置,当前文件回到工作区
git checkout -- 文件名

四、总结

git init 
git add .
git commit -m "说明"

git checkout -- 文件名
git reset HEAD 文件名

git log
git reset --hard commit—id


图形工具

https://tortoisegit.org/download/

https://www.sourcetreeapp.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值