代码编织梦想

1 git概述

1.1 简介

git是分布式版本控制系统(Distributed Version Control System,简称DVCS),分为两种仓库 :本地仓库远程仓库

  • 本地仓库:是在开发人员自己电脑上的Git仓库
  • 远程仓库:是在远程服务器上的Git仓库

在这里插入图片描述

  • Clone:克隆,就是将远程仓库复制到本地
  • Push:推送,就是将本地仓库代码上传到远程仓库
  • Pull:拉取,就是将远程仓库代码下载到本地仓库

1.2 工作流程

在这里插入图片描述
工作流程如下:

  1. 从远程仓库中克隆代码到本地仓库
  2. 从本地仓库中checkout代码,然后进行代码修改
  3. 在提交前先将代码提交到暂存区
  4. 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. 修改完成之后,需要和团队成员共享代码时,将代码push到远程仓库

1.3 Git的下载和安装

下载地址:官网地址,点一下就行

在这里插入图片描述
然后双击下载的安装文件,一直傻瓜式的下一步就行吗,如果想更改安装目录,就在最开始的时候选择你想要安装的目录就行。
安装好git之后,在你电脑的任何一个文件夹,桌面也可以,右键一下,如果在列表里面出现了下面两个选项,就说明安装成功了。

在这里插入图片描述

2 Git代码托管服务

2.1 常用的Git代码托管服务

前面我们已经了解到了git中存在两个类型的仓库,即本地仓库远程仓库。那么我们如何搭建Git远程仓库呢?其中我们可以借助互联网上提供的一些代码托管服务来实现,其中常用的有GitHub码云GitLib等。

可能是因为我是中国人,习惯看中文,所以我个人比较喜欢码云,用它来托管我们的服务

想使用码云的相关服务,需要注册账号,注册地址

注册完之后,就可以登录你的远程仓库啦
在这里插入图片描述
紧接着,就可以创建一个名为:MyGitRept创库玩一玩咯
在这里插入图片描述
创建完成之后,就可以查看仓库信息
在这里插入图片描述

每一个Git远程仓库都会对应一个网络地址,可以点击克隆/下载按钮弹出窗口并点击复制按钮获得这个网络地址
在这里插入图片描述
我们当前的网络地址为:https://gitee.com/ldy0206/myGitRept.git

3 Git常用命令

主要介绍一下命令:环境配置获取Git仓库工作目录、暂存区以及版本库概念Git工作目录下的两种状态本地仓库操作远程仓库的使用分支标签

3.1 环境配置

当安装Git后,首先要做的事情就是设置用户名和email地址,这是非常重要的,因为每次Git提交都会使用该用户信息

  • 设置用户信息
    git config --global user.name "刘小亮"
    git config --global user.email 1078813134@qq.com

  • 查看配置信息
    git config --list
    git config user.name

通过上面的命令设置的信息会保存在 ~/.gitconfig文件中

3.2 获取Git仓库

要使用Git对我们的代码进行版本控制,首先需要获得git仓库

获取Git仓库常用的两种方式:

  • 在本地初始化一个Git仓库
  • 从远程仓库克隆

3.2.1 在本地初始化一个Git仓库

执行步骤如下:

  1. 在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库
  2. 进入这个目录中,点击右键打开Git bash窗口
  3. 执行命令git init

如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹),则说明Git仓库创建成功
在这里插入图片描述

3.2.2 从远程仓库克隆

可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令形式为:git clone 远程Git仓库地址
在这里插入图片描述

2.3 工作目录、暂存区以及版本库概念

  • 版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
  • 工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码。
  • 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方。

在这里插入图片描述

2.4 Git工作目录下的两种状态

Git工作目录下的文件存在两种状态:

  • untracked未跟踪(未被纳入版本控制)
  • tracked已跟踪(被纳入版本控制)
  • Unmodified未修改状态
  • Modifed已修改状态
  • Staged已暂存状态

这些文件的状态会随着我们执行Git的命令发生变化

2.5 本地仓库操作

  • git status 查看文件状态
    在这里插入图片描述
    也可以使用git status -s是输入的信息更加的简介
    在这里插入图片描述
  • git add将未跟踪的文件加入暂存区
    在这里插入图片描述
    将新创建的文件加入暂存区后查看文件的状态
    在这里插入图片描述
  • git resst 将暂存区的文件取消暂存
    在这里插入图片描述
    将文件取消暂存后查看文件状态
    在这里插入图片描述
  • git commit 将暂存区的文件修改提交到本地仓库
    在这里插入图片描述
  • git rm删除文件
    在这里插入图片描述
    删除文件后查看文件状态
    在这里插入图片描述
    上面删除的只是工作区的文件,需要提交到本地仓库
    在这里插入图片描述
  • 将文件添加到忽略列表
    一般我们总会有些文件无需纳入git的管理,也不希望他们总出现在为跟踪文件列表。通常都是些自动生成的文化,比如日志文件、或者编译过程中创建的临时文件等。在这种情况下,我们可以在工作目录中创建一个名为.gitignore的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:
    在这里插入图片描述
  • git log查看日志记录
    在这里插入图片描述

2.6远程仓库操作

下面会分别介绍查看远程仓库添加远程仓库从远程仓库克隆移除无效的远程仓库从远程仓库中抓取与拉取推送到远程仓库

  • 查看远程仓库
    如果想查看已经配置的远程仓库服务器,可以运行git remote命令。它会列出指定的每一个远程服务器的简写。如果已经克隆了远程仓库,那么应该至少能看到origin,这是git克隆的仓库服务器的默认名字。
    在这里插入图片描述
  • 添加远程仓库
    运行git remote add <shortname> <url>添加一个新的远程git仓库,同时指定一个可以引用的简写
    在这里插入图片描述
  • 从远程仓库克隆
    如果你想获得一份已经存在的git仓库的拷贝,这时就要利用git clone命令了。git克隆的是改git仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。当你执行git clone命令的时候,默认配置下远程git仓库中的每一个文件的每一个版本都将被拉取下来。
    克隆仓库的命令是 git clone [url]
    在这里插入图片描述
  • 移除无效的远程仓库
    如果因为一些原因想要移除一个远程仓库,可以使用git remote em
    在这里插入图片描述
    注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库

从远程仓库中抓取与拉取
git fetch是从远程仓库获取最新版本到本地仓库,不会自动merge
git pull是从远程仓库获取最新版本并merge到本地仓库

git fetch是从远程仓库获取最新版本到本地仓库,不会自动merge
在这里插入图片描述
git pull是从远程仓库中获取最新版本并merge到本地仓库
在这里插入图片描述
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时在从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories),解决此问题可以在git pull 命令后加入参数--allow-unrelated -histories

推送到远程仓库
当你想分享你的代码时,可以将其推送到远程仓库
命令形式:git push [remote -name] [brach -name]
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_38088097/article/details/106680130

git pull 或者git push 报错:There is no tracking information for the current branch.-爱代码爱编程

报错: There is no tracking information for the current branch. // 当前分支没有跟踪信息。 no upstream configured for branch master. // 没有为master分支配置上游。 出现以上问题的原因是因为本地的分支与git仓库的远程分支没有关联起来,这

git错误 You are not currently on a branch的解决办法-爱代码爱编程

今天使用 git pull和git push 命令,分别报错: You are not currently on a branch, so I cannot use any 'branch.<branchname>.merge' in your configuration file. Please specify which remote b

Git—代码管理、提交及冲突解决流程的思考-爱代码爱编程

1 代码管理   Git不多说,大家都知道这是一个分布式版本控制系统,对开发者而言,可以敏捷高效的进行代码管理及开发,也非常适合多人协作。话不多说,下面就来点干货。 1.1 创建新仓库   我们在工作区(就是自己的电脑里)创建一个新的文件夹,这个文件夹用来存放远端同步过来的代码库。进入到这个新建的文件夹,执行创建新的仓库的命令:$ git init

深入了解一下Git-04:fetch和git pull的区别-爱代码爱编程

Git fetch和git pull区别为:远端bai跟踪分支不同、拉取不同、commitID不同。 一、远端跟踪分支dao不同 1、Git fetch:Git fetch能够直接更改远端跟踪分支。 2、git pull:git pull无法直接对远程跟踪分支操作,我们必须先切回本地分支然后创建一个新的commit提交。 二、拉取不同 1、Git

Git Push,Pull,Clone出现SSL certificate problem: unable to get local issuer certificate-爱代码爱编程

使用Git进行Clone或者Pull, Push程序的时候会提示, SSL certificate problem: unable to get local issuer certificate 这个是由于Git默认开启了SSL验证,关闭即可; 解决方式: git config --global http.sslVerify false 执行

git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:-爱代码爱编程

场景:因为有事情需回到学校搞毕设,同事在公司说接口代码有问题,需要修改; 我用笔记本把代码同步到笔记本,然后做了一些修改、提交。修改完成。 第二天我来到公司(公司里用台式机,不是自己的笔记本),忘了先git pull到本地之后,直接在台式机上的代码进行编写,突然想起忘了pull了,然后想用git pull来更新本地代码。结果报错: error:

git在push错误HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)-爱代码爱编程

错误描述: git在push时候出现错误,完整错误如下: Push failed Enumerating objects: 269, done. Delta compression using up to 4 threads Total 197 (delta 122), reused 0 (delta 0) RPC failed; cur

git pull 或者git push 报错:There is no tracking information for the current branch.-爱代码爱编程

报错: There is no tracking information for the current branch. // 当前分支没有跟踪信息。 no upstream configured for branch master. // 没有为master分支配置上游。 出现以上问题的原因是因为本地的分支与git仓库的远程分支没有关联起来,这

Git自建本地仓库push到刚刚新建的远程仓库-爱代码爱编程

1.背景介绍 有一个svn管理的项目,想迁到git上,在项目目录中打开Git Bash初始化了仓库并添加、提交,然后在gitee上新建了空的远程仓库,结果将本地仓库push到刚刚新建的远程仓库时,提示如下错误: 2.解决步骤 上面图片中,hint黄字提示我们:因为本地当前分支落后,可以用在push前先git pull来进行合并;但当使用git pul

git push 提交失败-爱代码爱编程

  提交错误如下: $ git push origin Enumerating objects: 1107, done. Counting objects: 100% (1107/1107), done. Delta compression using up to 16 threads client_loop: send disconnect: Con

git使用git push 命令跳出remote: Permission to Aname denied to usernameB 的问题-爱代码爱编程

开始git上传项目,不料,在git push这一步骤发生了错误? remote: Permission to nigelaozi/firstRepository.git denied to dalaoshi. fatal: unable to access 'https://github.com/nigelaozi/firstRepository.gi

git push失败:Push failed REMOTE HOST IDENTIFICATION HAS CHANGED-爱代码爱编程

最近有一次 git push 时有报错,异常信息如下: 异常信息 Push failed @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@