首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Git介绍及常用命令(系统:Win11)

  • 24-03-18 01:48
  • 2137
  • 8886
blog.csdn.net

Git介绍及常用命令(系统:Win11)

    • 一、什么是Git?
      • 什么是分布式?集中式又是什么?
    • 二、Git安装:
    • 三、Git全局配置
    • 四、Git相关概念(版本库、工作区、暂存区)
      • 4.1 版本库:
      • 4.2 工作区
      • 4.3 暂存区
      • 4.4Git工作流程
      • 4.5 Git工作区中文件状态
    • 五、Git常用命令
      • 5.1 创建仓库
        • 5.1.1 创建本地仓库
        • 5.1.2 从远程仓库克隆一个仓库
      • 5.2 本地仓库操作
      • 5.3 远程仓库操作
      • 5.4 分支操作
      • 5.5 标签操作

一、什么是Git?

  1. Git是一个分布式的版本控制工具,多用来对开发过程中的源代码文件进行管理。
  2. Git不同与svn、csv这两个集中式的版本控制系统,它是分布式
  3. Git是目前世界上最先进的分布式版本控制系统。

什么是分布式?集中式又是什么?

  1. 集中式:集中式的版本控制系统的版本库集中放在服务器上。当我们写代码时会从服务器将最新的代码下载过来一份,然后编写完成后将自己的代码提交到服务器。使用集中式版本控制需要联网,如果断网则无法使用,且个人电脑只存放当前版本信息,其他信息存放在服务器,如果服务器数据不幸丢失…
  2. 分布式:分布式和集中式不同,每个人的电脑都相当于一台服务器,当我们从远程仓库拉取代码时,会获取到全部的信息,我们可以在本地对代码自由地进行回滚、提交到本地仓库、切换分支等操作,只有将本地仓库与远程仓库合并(执行推送操作和拉取操作)时需要联网。

二、Git安装:

  1. Git官网下载链接
  2. 根据自己系统类型下载后一直下一步就可以了
  3. 最后安装成功后在任意目录右键菜单可以看见这两个新增项,(win11需要先点击更多选项)
    在这里插入图片描述
  4. Git GUI Here: 打开Git图形界面
  5. Git Bash Here: 打开Git命令行

三、Git全局配置

参数介绍:

config: 配置git环境
--global: 表示全局
  • 1
  • 2

配置用户名:

 git config --global user.name "用户名"		
  • 1

配置邮箱:

git config --global user.email "邮箱"
  • 1

查看配置信息:

git config --list
  • 1

也可以不配置,后面需要用的时候再手动输入也可以

四、Git相关概念(版本库、工作区、暂存区)

4.1 版本库:

通过Git创建本地仓库或者从远程仓库克隆的仓库中的隐藏文件夹 “.git” 就是版本库,在版本库内部存放了当前Git仓库的很多配置信息、日志信息、文件版本信息等。内部文件Git自动维护,

4.2 工作区

包含".git“隐藏文件夹的目录就是工作区,也就是我们创建Git仓库是的空白文件夹,平常我们开发时存放的代码就放在这个区域。换句话说就是我们平时写代码的地方就是工作区。

4.3 暂存区

”.git“ 文件夹内部有一个”index",这个就是暂存区。暂存区是一个临时保存修改文件的的地方。

4.4Git工作流程

在工作区编写好代码后通过git add指令将文件提交到暂存区,然后通过git commit指令提交到版本库

4.5 Git工作区中文件状态

  • untracked 未跟踪(没有将当前文件纳入Git版本控制)
  • tracked 已跟踪(当前文件已被纳入版本控制)
    • Unmodified 未修改状态(当前文件内容和上次提交内容相同)
    • Modified 已修改状态(当前文件内容和上次提交内容不同)
    • Staged 已暂存状态(当前文件以纳入管理且没有提交过)

文件状态不是一成不变的,会随着我们执行Git的命令发生变化

五、Git常用命令

5.1 创建仓库

5.1.1 创建本地仓库
  1. 在任意目录下创建一个新的空目录作为本地仓库
  2. 进入该目录,打开 Git bash窗口
  3. 输入指令 git init
  4. 如果出现隐藏目录 “.git” 则说明创建成功

创建前:
在这里插入图片描述
执行后:
在这里插入图片描述

5.1.2 从远程仓库克隆一个仓库

在任意一个非其他仓库的目录下执行git clone url即可,在Git中,仓库之间不可以互相嵌套。
执行前:
在这里插入图片描述
执行后:
在这里插入图片描述
注:如果远程仓库私有,需要输入验证身份才可以下载

5.2 本地仓库操作

  • 查询文件状态:git status,如果想要查看指定文件状态就在指令后加上文件全名(需要有后缀名),如:git status file.txt
    在这里插入图片描述

  • 将文件添加到暂存区: git add fileName,添加所有文件到暂存区是:git add .
    在这里插入图片描述
    在这里插入图片描述

  • 提交暂存区文件到本地仓库:git commit -m "提交信息" 如果要提交指定文件就在后面加上文件名git commit - m "提示信息" fileName.txt,提交信息没有固定要求,一般写一下这次提交的内容是什么,做一个解释说明就可以了。
    在这里插入图片描述
    此时,我对test.txt文件内容进行了修改,可以看到,此时文件状态再次发生改变,变成了modified,已修改状态
    在这里插入图片描述

  • 将暂存区内文件取消暂存git resit fileName.txt或者切换到指定版本:git reset --hard 版本库id
    在这里插入图片描述
    回退到指定版本库(因为test1.txt文件未被git进行控制,所以无法对它进行修改,但其他被控制的文件已恢复到指定版本时的状态):
    在这里插入图片描述
    这一长串commit_id可以通过git log指令查看日志获取

  • 查看日志:git log
    在这里插入图片描述

5.3 远程仓库操作

  • 查看远程仓库 git remote,可在后面添加参数-v来查看更详细的信息在这里插入图片描述
  • 添加远程仓库git remote add remote-name url,remote-name: 就是远程仓库别名,我这里命名成了origin;url就是远程仓库地址,可以在远程仓库处获取。
    在这里插入图片描述
  • 克隆远程仓库:git clone url,更详细的内容在本文 “5.1.2 从远程仓库克隆一个仓库”,此处就不再赘述了。
  • 将本地仓库内容推送到远程仓库: git push remote-name branch-name remote-name: 远程仓库名,也就是上面起的别名,branch-name: 分支名
    在这里插入图片描述
    推送后的远程仓库(我用的gitee,国内正常情况下github加载太慢,如果要用github切换url就可以了):
    在这里插入图片描述
    注:执行推送操作需进行身份验证,一般只有第一次执行推送操作时需要
  • 从远程仓库拉取代码到本地:git pull [remote-name] [branch-name]
    在这里插入图片描述

注:如果当前本地仓库不是从远程仓库克隆,且仓库中存在文件,此时执行拉取操作时会报错fatal:refusing to merge unrelated histories,可以在命令后面添加--allow-unrelated-histories解决此问题

5.4 分支操作

注:每个分支内的文件相互独立,互不影响,即:在a分支内添加/删除/更新文件,b分支内文件状态不变。如下图:master分支中有master.txt文件,但div分支中没有。且div分支有div.txt文件,master分支下没有
master分支:
在这里插入图片描述
div分支:
在这里插入图片描述

  • 查看分支:git branch 后面不添加参数查看本地分支,添加参数-r查看远程分支,添加参数a查看所有分支
    在这里插入图片描述

  • 创建分支:git branch name name:分支名
    在这里插入图片描述

  • 切换分支:git checkout name
    在这里插入图片描述

  • 推送至远程仓库:git push remote-name name 推送本地仓库到远程仓库remote-name里面的name分支。
    在这里插入图片描述

  • 合并分支: git merge name 将当前所在分支A和指定分支name合并。下图是将master分支合并到div分支,执行合并分支操作后会有一个界面让编写合并日志(等同于提交操作时的提交信息),可以自己编写(按 " i " 进入编写模式,结束编写按 " esc " )合并信息,亦可以直接退出(先按" : ",在输入wq,回车)用默认生成的信息。
    在这里插入图片描述
    分支冲突问题

    • 产生原因:合并的两个分支存在相同文件,并且两个分支都对该文件进行了修改并提交,则可能出现分支冲突问题。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 解决方法:

      1. 进入冲突文件master.txt文件手动解决冲突
        在这里插入图片描述
        在这里插入图片描述
      2. 将解决完冲突后的文件添加到暂存区并提交到本地仓库,提交时可能会出现错误fatal: cannot do a partial commit during a merge., 意思是:在合并期间不能执行部分提交。可以在提交指令后面添加参数-i解决
        在这里插入图片描述

5.5 标签操作

标签,记录了某一个分支某一个时刻的状态,是静态的,不可修改的。通过标签,我们可以快速切换到标记时的状态。应用也很广泛,比如使用标签来标记发布节点(软件不同版本v1.0,v1.0.12,v2.0等)。

  • 查看已有标签git tag
    在这里插入图片描述

  • 创建标签git tag name
    在这里插入图片描述

  • 推送标签到远程仓库git push [remote-name] [name]
    在这里插入图片描述

  • 创建一个新的分支并签出到指定标签git checkout -b [branch] [name]
    在这里插入图片描述

注:本文转载自blog.csdn.net的一小人的文章"https://blog.csdn.net/qq_51800384/article/details/135729505"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

126
软件工程
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top