首页 > 其他分享 >Git(千锋)

Git(千锋)

时间:2024-01-18 22:56:21浏览次数:27  
标签:千锋 git 仓库 Git master 文件夹 分支

目录

Git

​ 作者:kerwin

​ 版本:QF1.0

​ 版权:千锋HTML5大前端教研院

​ 公众号: 大前端私房菜

一. 走入Git

1.Git介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  • 版本控制

    版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

  • 团队协作

    从单兵作战转换为团队开发。

2.Git对比SVN
image-20220907110331660
  1. SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己的代码推送到中央服务器。集中式版本控制系统是必须联网才能工作。

  2. Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上,可以离线工作。

3.Git安装

https://git-scm.com/

image-20220907110802124
  • 下载好以后,直接双击进行安装就行

  • 一直下一步就可以,安装再默认路径就行

  • 安装完毕后检测一下安装是否成功

    1. 方法一: 打开 cmd 窗口,输入指令检查

      # 检测 git 是否安装
      $ git --version
      
      • 出现版本号,说明安装成功

    2. 方法二: 随便找个地方单机 鼠标右键,出现下图内容,说明安装成功

  • 安装完毕,接下来我们就可以开始使用了

二.Git常用命令

1.设置用户签名

签名的作用就是用来标识用户,以区分不同的开发人员。

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"
2.初始化本地库
  • 我们希望一个文件夹被 git 管理的话,那么就要在一个文件夹下进行 git 初始化

  • 找到一个希望被 git 管理的文件夹

  • 在文件夹内单击鼠标右键,点开 Git Bash Here

  • 输入指令

    # git 初始化的指令
    $ git init
    
  • 然后文件夹内会多一个 .git 的文件夹(这个文件夹是一个隐藏文件夹)

  • 这个时候,我的这个 git_demo 文件夹就被 git 管理了

    • git 不光管理这一个文件夹,包括所有的子文件夹和子文件都会被管理
  • 注意: 只有当一个文件夹被 git 管理以后,我们才可以使用 git 的功能去做版本管理

    • 也就是说,我们必须要把我们电脑中的某一个文件夹授权给 git
    • git 才能对这个文件夹里面的内容进行各种操作
    • git init 就是在进行这个授权的操作
3.Git工作区、暂存区和版本库

image-20220907112424167

托管平台

  • 局域网(内网)
    • gitlab
  • 公网(外网)
    • gitlab
    • github
    • gitee 码云
4.git add
  • 我们要放入暂存区,要使用 git add 指令

  • 把单独一个文件放在暂存区

    # 把文件夹下的 index.txt 文本放在暂存区
    $ git add index.txt
    
  • 把单独一个文件夹放在暂存区(暂存区不能存放空文件夹)

    # 把文件夹下的 ceshi文件夹 放在暂存区
    $ git add ceshi/
    
  • 把所有文件都放在暂存区

    # 把文件夹下所有的内容都放在暂存区
    $ git add --all
    
    # git add --all 有一个简单的写法
    $ git add .
    
    • 全部存放的时候使用上面两个指令哪个都行
5.git commit
# 把暂存区的内容放到历史区
$ git commit -m "我是第一个版本"

我们使用 git log 这个指令查看版本信息

# 查看当前历史区版本信息
$ git log
  • 我们使用 git reset --hard 版本编号 进行历史回退

    # 回退到上一次提交的版本
    $ git reset --hard HEAD^
    
    # 回退到上上次提交的版本
    $ git reset --hard HEAD^^
    $ git reset --hard HEAD~2
    
image-20220908074740564
6.git revert 与 git reset

image-20220908075826032

  • git reset 是回滚到对应的commit-id,相当于是删除了commit-id以后的所有的提交,并且不会产生新的commit-id记录,如果要推送到远程服务器的话,需要强制推送-f
  • git revert 是反做撤销其中的commit-id,然后重新生成一个commit-id。本身不会对其他的提交commit-id产生影响,如果要推送到远程服务器的话,就是普通的操作git push就好了

三. Git 分支

1.初识分支
  • git 分支,就是我们自己把我们的整个文件夹分成一个一个独立的区域

  • 比如我在开发 登录 功能的时候,可以放在 login 分支下进行开发

    • 开发 列表 功能的时候,可以放在 list 分支下进行开发
    • 大家互不干扰,每一个功能都是一个独立的功能分支
  • 这样开发就会好很多

  • git 在初始化的时候,会自动生成一个分支,叫做 master

  • 是表示主要分支的意思

  • 我们就可以自己开辟出很多独立分支

2.创建分支
  • 开辟一个分支使用 git branch 分支名称 指令

    # 开辟一个 login 分支
    $ git branch login
    
  • 查看一下当前分支情况

    # 查看当前分支情况
    $ git branch
    
    • 会看到,当前有两个分支了
    • 一个是 master,一个是 login
    • 前面有个 * 号,并且有高亮显示的,表示你当前所处的分支
3.切换分支
  • 我们对 登录 功能的开发要移动到 login 分支去完成

  • 我们切换所处分支使用 git checkout 分支名称

    # 切换到 login 分支
    $ git checkout login
    
  • 然后我们在整个分支上进行 登录 功能的开发

  • 开发完毕以后,我们就在当前分支上进行提交

  • 提交以后我们进行分支切换

    • 发现 master 上面还是最初始的状态
    • login 分支上有我们新写的 登录 功能的代码
  • 我们按照分支把所有功能都开发完毕了以后

    • 只要把所有代码都合并到 master 主分支上就行了
4.合并分支
  • git 的合并分支,只能是把别的分支的内容合并到自己的分支上

  • 使用的指令是 git merge

    # 切换到 master 分支
    $ git checkout master
    
    # 把 login 的内容合并到自己的分支
    $ git merge login
    
  • 这个时候,我们刚才在 login 上开发的东西就都来到了 master 主分支上

  • 如果是有多个分支的话,那么所有的最后都合并到 master 分支上的时候

  • 我们的主分支上就有完整网站的所有页面

    • 各个分支上都是单独的页面和功能
5.删除分支
  • 这个时候我们开辟的分支就没有什么用了,就可以删除分支了

    1. 先切换到别的分支

    2. 使用指令 git branch -d 分支名称 来删除

      # 先切换到别的分支
      $ git checkout master
      
      # 删除 login 分支
      $ git branch -d login
      

四.远程仓库

  • 我们的所有内容已经全部保留在了本地历史区
  • 理论上是不会丢失了
    • 但是如果把文件夹删除了,还是没有了
  • 所以我们要使用 git 把我们所有的内容推送到 github 上面保存起来
  • 那么就本地文件夹就算删除了,那么远程上面还有一份,还可以拿回来使用
  • 所以我们现在就要把本地内容推送到远程
  • 这个时候我们接需要一个 github 的账号了
  • 先去 github官网 注册一个账号
1.创建一个远程仓库
  • 有了 github 账号以后

  • 我们就登录 github 网站,开辟一个远程仓库

  • github 的远程也是以一个仓库一个仓库的形式来保存代码

    • 我们可以在一个 github 上保存很多的项目
    • 只要一个项目一个仓库就可以了
  • 按照下面步骤开辟仓库

    1. 先点击新建仓库

2.添加仓库地址
  • 接下来,要使用 git 上传代码了

  • 我们先要告诉 git 上传到哪里

  • 也就是给 git 添加一个上传的地址

  • 我们还是来到我们的项目文件夹

  • 使用 git remote add origin 仓库地址 来添加

    # 在项目文件夹下打开 git base
    # 添加仓库地址
    $ git remote add origin *********************
    
    • remote:远程的意思
    • add:添加的意思
    • origin:是一个变量名(就是指代后面一长串的地址)
3.git push
  • 上传到哪里的地址我们已经添加好了

  • 接下来就是上传内容了

    • 上传要保证 历史区 里面有内容
    • 上传的过程会把 历史区 里面所有的内容上传到远端
  • 我们使用 git push 指令来上传

    # 上传内容
    $ git push -u origin master
    # 表示把内容上传到 origin 这个地址
    # master 是上传到远程的 master 分支
    
    • 如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。
  • 第二次上传

    • 第二次上传的时候,因为有刚才的记录,就不需要再写 originmaster

    • 会默认传递到 origin 这个地址的 master 分支上

    • 除非你要传递到别的分支上的时候再进行书写

      # 第二次上传
      $ git push
      
  • 到这里,就完成了一次 git 推送

  • 这个时候本地的文件夹就真的可以删除了

  • 因为远程有一份我们的内容,本地的删除了,可以直接把远程的拉回来就行

4.git clone
  • git 克隆是指把远程仓库里面的内容克隆一份到本地

  • 可以克隆别人的 公开 的仓库,也可以克隆自己的仓库

  • 克隆别人的仓库,我们只能拿下来用,修改后不能从新上传

  • 克隆自己的仓库,我们修改后还可以再次上传更新

  • 输入克隆指令 git clone 仓库地址

    # 直接克隆仓库
    $ git clone *************
    
5.git pull
  • 当人家的代码更新以后,你想获得最新的代码

  • 我们不需要从新克隆

  • 只要拉取一次代码就可以了

  • 直接在项目文件夹里面使用指令下拉

    # 拉取远程最新代码
    $ git pull
    
  • 这样一来,你本地的仓库就可远程的仓库同步了

五.VScode集成Git

VSCode内置版本控制机制,并自带对Git和Github的支持,你也可以安装插件以支持其他控制软件,如SVN(需要先安装 SVN )等。

  1. 初始化

    image-20220910091354495
  2. 可视化界面管理项目
    image-20220910091438534

六. gitignore

在一些项目中,我们不想让本地仓库的所有文件都上传到远程仓库中,而是有选择的上传,比如:一些依赖文件(node_modules下的依赖)、bin 目录下的文件、测试文件等。一方面将一些依赖、测试文件都上传到远程传输量很大,另一方面,一些文件对于你这边是可用的,在另一个人那可能就不可用了,比如:本地配置文件。

  • 空行不匹配任何文件;

  • 如果本地仓库文件已被跟踪,那么即使在 .gitignore 中设置了忽略,也不起作用。

  • .gitignore 文件也会被上传的到远程仓库,所以,同一个仓库的人可以使用同一个.gitignore 文件。

# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
# #开头的便是注释

# 忽略文件和目录
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

# 使用通配符
npm-debug.log*
yarn-debug.log*
yarn-error.log*   

标签:千锋,git,仓库,Git,master,文件夹,分支
From: https://www.cnblogs.com/SanshQ/p/17973602

相关文章

  • Git 学习
    Git学习git分布式版本控制系统.每一个开发者都同事拥有一个相当于当前文件操作的工作区与一个用于存储该项目所有版本,分支,以及标签的本地版本库.开发者A开发者BAAA->BA->CA->B->->C->D开发者A导入了开发者B所做的修改,......
  • GitHug 攻略
    GitHug攻略Githugisdesignedtogiveyouapracticalwayoflearninggit.Ithasaseriesoflevels,eachrequiringyoutousegitcommandstoarriveatacorrectanswer.https://github.com/Gazler/githuglevel1初始化一个仓库gitinitlevel2设置git的用户......
  • Android studio 集成github copilot
    AndroidStudio集成GitHubCopilot引言在软件开发的过程中,编写代码是一个不可避免的环节。而对于一些常见的代码块,我们可能已经写了很多次。在这种情况下,GitHubCopilot可以成为我们的好帮手。GitHubCopilot是由GitHub开发的人工智能代码助手,它通过学习开源代码库中的代码......
  • 查看、修改本地git用户名和邮箱地址
     用户名和邮箱地址的作用用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录。github的contributions统计就是按邮箱来统计的。 查看用户名和邮箱地址gitconfiguser.namegitconfiguser.email 修改用户名和邮箱地址gitconfig--g......
  • Git Clone报错:Permission denied (publickey).
    GitClone报错具体报错如下:Permissiondenied(publickey).fatal:Couldnotreadfromremoterepository.Pleasemakesureyouhavethecorrectaccessrightsandtherepositoryexists.原因在于此电脑的sshpublickey没有放到服务器上。先看下本地是否有以下文件,......
  • Code Review、InLineChat、RAG能力全部独家提供,这波上新CodeGeeX平替Github Copilot稳
    智谱AI2024年度的技术开放日上,CodeGeeX重磅发布第三代模型。针对CodeGeeX插件产品的系列新功能,也同时上线发布,提供给用户免费使用。一、第三代模型性能全面提升CodeGeeX第三代模型正式发布,基础能力全面提升。针对Python、Java、JavaScript、C++、Golang五种主流编程语言,代......
  • ssh: connect to host github.com port 22: Operation timed out fatal: Could not re
    问题:git推送到远程仓库发生错误执行命令:gitpushorigindev发生错误:ssh:connecttohostgithub.comport22:Operationtimedoutfatal:Couldnotreadfromremoterepository.Pleasemakesureyouhavethecorrectaccessrightsandtherepositoryexists.......
  • Node.js(千锋)
    目录Node.js(最全)基础+全栈项目一、Node.js基础1.认识Node.js01nodejs的特性02使用Node.js需要了解多少JavaScript03浏览器环境vsnode环境2.开发环境搭建3.模块、包、commonJS02CommonJS规范03modules模块化规范写法4.Npm&Yarn01npm的使用02全局安装nrm03yar......
  • Git问题:解决“ssh:connect to host github.com port 22: Connection timed out”
    vscode拉取代码突然获取不了了,报错: 通过查阅各种资料,得知原因可能是由于电脑的防火墙或者其他网络原因导致ssh连接方式端口22被封锁。解决方案:得知22端口被封锁,换一个端口就可以了!1.进入~/.ssh路径下cd~/.ssh2.创建一个config文件 3.复制这段内容到config文件,并......
  • 【Git】:git 常用操作速查
    前言工作之后无法避免和git打交道,所以专门记录一些常用的git操作。1.克隆指定分支gitclone-b<branchname><remote-repo-url>2.删除指定分支gitbranch-d<localBranchName>#删除本地分支gitpushorigin--delete<remoteBranchName>#删除远程分支3.......