Git教程(入门)

简介: Git是分布式版本控制系统,支持本地版本管理与远程协作。通过`git init`或`git clone`创建仓库,用`add`、`commit`提交更改,`branch`、`merge`管理分支,`push`、`pull`同步远程代码。配置用户名邮箱后即可开始版本控制,结合`.gitignore`忽略文件,`reset`回退版本,高效协作开发。

Git介绍

  • Git是一个分布式版本控制系统
    • 版本控制:仓库中每个文件都有完整的历史版本记录.
    • 分布式版本控制系统:分布式即每个人都有一个完整的版本库只需本地修改,长传进度只需同步仓库即可.

Git的安装

  • 前往官网安装 Git
  • 下载安装包然后一直点下一步就行了

1. git用户名/邮箱配置及查看

  • 配置

    $ git config --global user.name "输入你的名字"
    $ git config --global user.email "输入你的邮箱"
    
  • 查看

    $ git config --global -l
    

2. 新建版本库

  • git仓库的创建及一些常用linux命令

  • git仓库初始化(请cd到要构建本地仓库的位置)

    $ git init
    这里会生成一个.git文件但是这是隐藏文件
    隐藏文件查看方式:点 查看->显示->隐藏的文件
    
  • 生成文件和初始化git仓库也可以写成一步

    $ git init 文件名
    
  • 还有一种创建git仓库的方式就是克隆别人的仓库

    $ git clone 仓库地址 
    //一般地址在别人github上会写
    

    补充代码:

  • 这个指的是返回上级目录
    $ cd ..
    
  • 若文件在目录下可以直接cd文件名(这个和返回上级目录都是相对路径)
    $ cd 文件名
    
  • 直接cd到你要的目录(绝对路径)
    $ cd 完整的目录 
    //补充一下单个.表示当前目录后面我们可以巧用.来做操作
    
  • 创建文件
    $ mkdir 文件名
    
  • 看目录下文件的代码(不包括隐藏目录)
    $ ls
    
  • 要看隐藏文件
    $ ls -a
    
  • 查看文件信息
    $ ls -l
    
  • 隐藏文件+信息都显示
    $ ls -al
    
  • 删除当前目录下某个文件
    $ /rm -rf 文件名包括完整后缀 
    //后缀查看方式在刚才隐藏文件旁边有个文件扩展名
    
  • 创建文件
    $ echo "内容"
    $ 文件名(包括后缀)
    
  • 查看文件内容
    $ cat 文件名(包括后缀)
    
  • 在vim中编辑文件
    $ vi 文件名(包括后缀)
    
  • 查看当前目录位置
    $ pwd
    
  • 清屏
    $ clear
    

3. git的工作状态及文件状态

简单展示命令具体用法在后面

工作区域:工作区 -> 暂存区 -> 本地仓库
命令:       git add   git commit
工作区域:工作区 <- 暂存区 <- 本地仓库
命令:    git checkout  git reset
工作区域:本地仓库 -> 远程仓库
命令:          git push
工作区域:远程仓库 -> 本地仓库
命令:     git clone/fetch
工作区域:远程仓库 -> 工作区
命令          git pull

4. 添加和提交文件

  • 查看文件状态
    $ git status
    
  • 刚创建文件会显示Untracked
  • 现要把他放入暂存区
    $ git add 文件名
    
  • 然后就会显现changed to be commited
  • 现在提交到本地仓库
  • 场景1(-m提交):
    $ git commit -m "Inital commit" 
    //这里 -m "名字" 我的理解是给该次提交版本起个名字方便查询以及回退
    
  • 场景2(打开vim提交):
    $ git commit
    //按 i 键进入编辑模式输入前面说的我觉得也是名字
    //按 esc 退出编辑模式,输入 :wq 保存 
    //注意不管第几次题解只有暂存区的文件才能提交
    
  • 场景3(更改了一个文件后想直接提交到本地仓库):
    $ git commit -a -m '名字'
    //注意这里只适用于用git status查看发现是modified状态的文件
    
  • 提交记录查询
    $ git log
    
  • 每次提交记录只显示一行
    $ git log --oneline
    //除此之外还有--graph(这里先学分支后再讲)和--all(所有分支)
    

5. .gitignore文件

//这个文件作用是忽视一些文件在操作git的时候

//语法1(忽视单个文件):
文件名(包括后缀)

//语法2(忽视一个文件夹):
文件夹名/

//语法3(忽视某种后缀):
*后缀名
//后缀名以 . 开头
//在语法3中如果你在该后缀文件中有某个文件不想忽略
!文件名(包括后缀)

//去github上的gitignore可以看到很多模版

6. 版本回退

首先回退的命令是reset其中有三种类型
--hard --mixed --soft
区别:
         工作区   暂存区
--hard     N        N
--mixed    Y        N    (什么都不写默认是这个)
--soft     Y        Y
  • 第一步我们先用git log --online --all看一下信息
  • 会发现前面有编号对每次版本
  • 回退操作:
    $ git reset (--?) 版本编号(可以不写全前提是不写全的部分需要与其他版本编号不一样)
    
  • 如果想要回退到之前的状态但是有因为已经回退了操作编号不见了那么可以用这个命令(查询所有操作)
    $ git reflog
    //然后再用一次git reset就好了
    

7. 分支的操作

  • 作用:如果我们想基于一些基础功能做不同的项目就可以用到分支这样就能单独管控不同的项目

  • 查看当前有哪些分支

    $ git branch
    
  • 创建一个分支
    $ git branch 分支名
    
  • 删除一个分支
    $ git branch -d 分支名
    
  • 切换进入分支
    $ git checkout 分支名
    
  • 分支的合并(分支回到主干的过程)
  • 分支的合并指的是内容而不是分支
    $ git merge 分支名
    //若有文件不一样就会发生冲突
    
  • 查看冲突
    $ git diff
    
  • 解决冲突之后就会合并(解决就是改文件改完之后再提交)
    $ git commit '操作名'
    
  • 分支的变基(变基是改变分支开始的位置)
    $ git debase 分支名
    //这里填写的需要变基到的分支名
    
  • 分支的优选(让其他分支的提交作用于当前分支)
    $ git cherry-pick 分支编号
    

8. 远程仓库

远程仓库->本地仓库方式1

  • 先告诉本地有这个远程仓库
    git remote add 远程仓库名字(自定义) 远程仓库的地址
    
  • 从本地仓库投到远程仓库
    git push 远程仓库名字 本地仓库的分支名字
    
  • 这里输完会弹出来一个github登录界面
  • 这里去git上生成一个token
  • setting -> Develop setting -> Personal access tokens -> Generate new token(记得创建的时候勾选一些权限)

远程仓库->本地仓库方式2

  • 先cd到要放文件夹的位置然后直接
    $ git clone 远程仓库地址
    
  • 这样就会直接克隆到本地仓库
  • 但是当另一个人提交了1次代码但是你clone的时候并未clone他的代码(解决方案):
  • 此时应该是我们提交代码会报错(rejected)
  • 那么我们之间抓取该文件
    $ git fetch 远程仓库名字
    
  • 但是抓取完我们用log查看发现这是两个分支所以我们需要merge合并
    $ git merge 远程仓库拉下来的分支名
    
  • 然后再push进远程仓库就好了

  • 同时上次提交的那位的朋友

  • 他也需要把你提交的文件fetch下来
    $ git fetch 远程仓库名字
    
  • 此时他开log会发现head指向的还是现在他的版本位置也就是说他本地仓库已经拉下来了但是他本地工作区还没有更改
  • 那么就需要合并一下fetch的内容
    $ git merge 远程仓库拉下来的分支名
    
  • 还有一个更简单的操作
  • pull = fetch + merge
    $ git pull 远程仓库名字
    
  • 这样直接就能拉到工作区
目录
相关文章
|
Linux 开发工具 git
【Git】Git基本操作-1
【Git】Git基本操作-1
|
Linux 数据安全/隐私保护 虚拟化
Linux技术基础(1)——操作系统的安装
本文是龙蜥操作系统(Anolis OS) 8.4 的安装指南,用户可以从[龙蜥社区下载页面](https://openanolis.cn/download)获取ISO镜像。安装方法包括物理机的光驱和USB闪存方式,以及虚拟机中的VMware Workstation Pro设置。安装过程涉及选择语言、配置安装目标、选择软件集合和内核,设置Root密码及创建新用户。安装完成后,可通过文本模式或图形化界面验证系统版本,如Anolis OS 8.4,标志着安装成功。
|
1月前
|
人工智能 测试技术 开发者
AI Coding后端开发实战:解锁AI辅助编程新范式
本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
1667 106
|
21天前
|
运维 Linux Shell
Docker教程
Docker 是一个开源容器化平台,通过镜像和容器实现应用的快速部署与隔离。本文详细介绍 Docker 的核心概念与常用命令:包括镜像管理(查看、拉取、构建、导出/导入)、容器操作(启动、停止、日志、执行命令)、数据卷与网络配置、Dockerfile 编写、Compose 编排及镜像加速设置,帮助用户高效使用 Docker 进行开发与运维。
185 0
|
3月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
31585 10
|
存储 开发工具 git
git工具使用教程全讲解
本文介绍了版本控制的概念及其重要性,详细对比了多种版本控制工具,如VSS、CVS、SVN和Git,重点讲解了Git的基本使用方法、工作原理及与SVN的区别。此外,文章还介绍了GitHub、GitLab和Gitee等流行的代码托管平台,以及如何在这些平台上注册账号、创建和管理仓库。最后,文章还提供了如何在IntelliJ IDEA中配置和使用Git的具体步骤。
541 1
|
5月前
|
存储 Java 开发工具
【Git】零基础入门:配置与初始操作实战指南
本文聚焦 Git 的“从 0 到 1”配置与基础操作,旨在帮助 Java 开发者快速掌握环境搭建、用户配置、仓库初始化、代码提交、版本回退等核心技能。内容设计上避免涉及复杂的分支策略或高级命令,以实用为导向,适合零基础入门者系统学习,为后续参与企业级项目开发奠定版本控制基础。
|
缓存 网络协议 算法
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)