跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash大前端

Git 使用指南:从安装到远程仓库推送

Git 的基础使用方法,包括在 Linux 环境下安装配置、创建本地仓库、理解工作区暂存区与版本库的关系、执行文件添加与提交操作,以及进行远程仓库的克隆、推送和拉取。文章通过具体命令示例,展示了如何完成从本地开发到代码托管平台的完整版本控制流程。

古灵精怪发布于 2026/3/22更新于 2026/10/22102 浏览
Git 使用指南:从安装到远程仓库推送

前言

本文介绍了如何使用 Git 创建远程仓库,并将本地代码推送到远程仓库。

1. Git 的安装

1.1 Linux CentOS 环境下安装

首先,你可以试着输入 Git,看看系统有没有安装 Git:

git
-bash: git: command not found

如果出现上面的结果,说明你并没有安装 Git。

安装 Git 命令:

sudo yum -y install git

查看 Git 安装的版本:

git --version

1.2 Linux Ubuntu 环境下安装

首先,你可以试着输入 Git,看看系统有没有安装 Git:

git
Command 'git' not found, but can be installed with:
sudo apt install git

如果出现上面的结果,说明你并没有安装 Git。

安装 Git:

sudo apt-get install git -y

查看 Git 安装版本:

git --version

2. 创建 Git 本地仓库

仓库是进行版本控制的一个文件目录。我们要想对文件进行版本控制,就必须先创建一个仓库出来。所以本地仓库和远程仓库本质上都是一个文件!这也印证了一句话 Linux 下一切皆文件。

指令:

git init

注意我们不能修改原先 Git 仓库的所有内容,不然会导致正常的 Git 操作会出错。

3. 配置 Git

当安装 Git 后首先要做的事情是设置你的用户名称和 e-mail 地址,这是非常重要的。配置命令为:

git config [--global] user.name "Your Name"
git config [--global] user.email "[email protected]"
# 把 Your Name 改成你的昵称
# 把 [email protected] 改成邮箱的格式,只要格式正确即可。

其中 --global 是一个可选项。如果使用了该选项,表示这台机器上所有的 Git 仓库都会使用这个配置。如果你希望在不同仓库中使用不同的 name 或 e-mail,可以不要 --global 选项,但要注意的是,执行命令时必须要在仓库里。

查看配置命令为:

git config -l

删除对应的配置命令为:

git config [--global] --unset user.name
git config [--global] --unset user.email

4. 认识工作区、暂存区、版本库

  • 工作区:是在电脑上你要写代码或文件的目录。
  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,我们把暂存区有时也叫作索引(index)。
  • 版本库:又名仓库,英文名 repository。工作区有一个隐藏目录 .git,它不算工作区,而是 Git 的版本库。这个版本库里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以'还原'。
    1. 图中左侧为工作区,右侧为版本库。Git 的版本库里存了很多东西,其中最重要的就是暂存区。
    2. 在创建 Git 版本库时,Git 会为我们自动创建一个唯一的 master 分支,以及指向 master 的一个指针叫 HEAD。
    3. 当对工作区修改 (或新增) 的文件执行 git add 命令时,暂存区目录树的文件索引会被更新。
    4. 当执行提交操作 git commit 时,master 分支会做相应的更新,可以简单理解为暂存区的目录树才会被真正写到版本库中。

    由上述描述我们便能得知:通过新建或粘贴进目录的文件,并不能称之为向仓库中新增文件,而只是在 Work 区新增了文件。必须要通过使用 git add 和 git commit 命令才能将文件添加到仓库中进行管理!!!

    5. 添加文件

    5.1 git 命令

    在包含 .git 的目录下新建一个 ReadMe 文件,我们可以使用 git add 命令可以将文件添加到暂存区。

    添加一个或多个文件到暂存区:

    git add [file1] [file2] ...
    

    添加指定自录到暂存区,包括子目录:

    git add [dir]
    

    添加当前目录下的所有文件改动到暂存区:

    git add .
    

    5.2 commit 命令

    再使用 git commit 命令将暂存区内容添加到本地仓库中:

    提交暂存区全部内容到本地仓库中:

    git commit -m "message"
    

    提交暂存区的指定文件到仓库区:

    git commit [file1][file2] -m "message"
    

    6. 远程操作

    6.1 新建远程仓库

    新建远程项目仓库:

    在代码托管平台上创建一个新的仓库。

    6.2 克隆远程仓库

    克隆/下载远端仓库到本地,需要使用 git clone 命令,后面跟上我们的远端仓库的链接,远端仓库的链接可以从仓库中找到:选择'克隆/下载'获取远程仓库链接。

    SSH 协议和 HTTPS 协议是 Git 最常使用的两种数据传输协议。SSH 协议使用了公钥加密和公钥登陆机制,体现了其实用性和安全性,使用此协议需要将我们的公钥放上服务器,由 Git 服务器进行管理。使用 HTTPS 方式时,没有要求,可以直接克隆下来。

    我们这里直接采用最简单的方法:使用 HTTPS 协议。

    clone 命令:

    git clone 远程仓库克隆的网站
    

    当我们从远程仓库克隆后,实际上 Git 会自动把本地的 master 分支和远程的 master 分支对应起来,并且,远程仓库的默认名称是 origin。在本地我们可以使用 git remote 命令,来查看远程库的信息,如:

    git remote
    

    用 git remote -v 显示更详细的信息:

    git remote -v
    

    上面显示了可以抓取和推送的 origin 的地址。如果没有推送权限,就看不到 push 的地址。推送是什么意思呢,我们继续往下看。

    6.3 向远程仓库推送 push

    本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容,例如新增一个 file.txt 文件:

    # 新建文件
    user@host:~/git_teaching$ ls
    README.en.md README.md
    user@host:~/git_teaching$ vim file.txt
    user@host:~/git_teaching$ cat file.txt
    hello git
    # 提交文件
    user@host:~/git_teaching$ git add .
    user@host:~/git_teaching$ git commit -m "create file.txt"
    [master 7ce3183] create file.txt
    1 file changed, 1 insertion(+)
    create mode 100644 file.txt
    

    提交时要注意,如果我们之前设置过全局的 name 和 e-mail,这两项配置需要和远程仓库上配置的用户名和邮箱一致,否则会出错。或者从来没有设置过全局的 name 和 e-mail,那么我们第一次提交时也会报错。这就需要我们重新配置下了,同样要注意需要和远程仓库上配置的用户名和邮箱一致。

    到这里我们已经将内容提交至本地仓库中,如何将本地仓库的内容推送至远程仓库呢,需要使用 git push 命令,该命令用于将本地的分支版本上传到远程并合并,命令格式如下:

    git push <远程主机名> <本地分支名>:<远程分支名>
    # 如果本地分支名与远程分支名相同,则可以省略冒号:
    git push <远程主机名> <本地分支名>
    

    此时我们要将本地的 master 分支推送到 origin 主机的 master 分支,则可以:

    user@host:~/git_teaching$ git push origin master
    Enumerating objects: 4, done.
    Counting objects: 100% (4/4), done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 308 bytes | 308.00 KiB/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    remote: Powered by GITEE.COM [GNK-6.4]
    To gitee.com:user/git_teaching.git
     c6ce3f0..7ce3183 master -> master
    

    推送成功!

    7. 拉取远程仓库

    如果我们在远程仓库进行更改的时候,我们本地是看不见的。

    此时,远程仓库是要领先于本地仓库一个版本,为了使本地仓库保持最新的版本,我们需要拉取下远端代码,并合并到本地。Git 提供了 git pull 命令,该命令用于从远程获取代码并合并本地的版本。格式如下:

    git pull <远程主机名> <远程分支名>:<本地分支名>
    
    # 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
    
    git pull <远程主机名> <远程分支名>
    

    使用一下:

    # 拉取远程分支,并与当前分支进行合并
    user@host:~/git_teaching$ git pull origin master
    remote: Enumerating objects: 5, done.
    remote: Counting objects: 100% (5/5), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), 1.02 KiB | 1.02 MiB/s, done.
    From gitee.com:user/git_teaching
     * branch master -> FETCH_HEAD
    7ce3183..60e6b0a master -> origin/master
    Updating 7ce3183..60e6b0a Fast-forward
    README.md | 2 ++
    1 file changed, 2 insertions(+)
    user@host:~/git_teaching$ cat README.md
    ... 第一次修改内容
    

    我们发现,拉取成功了!

    目录

    1. 前言
    2. 1. Git 的安装
    3. 1.1 Linux CentOS 环境下安装
    4. 1.2 Linux Ubuntu 环境下安装
    5. 2. 创建 Git 本地仓库
    6. 3. 配置 Git
    7. 把 Your Name 改成你的昵称
    8. 把 [email protected] 改成邮箱的格式,只要格式正确即可。
    9. 4. 认识工作区、暂存区、版本库
    10. 5. 添加文件
    11. 5.1 git 命令
    12. 5.2 commit 命令
    13. 6. 远程操作
    14. 6.1 新建远程仓库
    15. 6.2 克隆远程仓库
    16. 6.3 向远程仓库推送 push
    17. 新建文件
    18. 提交文件
    19. 如果本地分支名与远程分支名相同,则可以省略冒号:
    20. 7. 拉取远程仓库
    21. 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
    22. 拉取远程分支,并与当前分支进行合并

    更多推荐文章

    查看全部
    • OpenVLA 架构解析:基于 Prismatic VLM 与下一个 Token 预测的动作生成
    • Java 面试题及答案汇总
    • GLM-4.7 与 Dify 平台深度集成实践
    • SAM 掩码生成原理与算法深度解析
    • Qwen2.5-7B 对话机器人微信接入部署指南
    • 降低 AIGC 检测率的提示词优化策略与实践指南
    • 数据结构栈与队列基础及竞赛高频算法实操
    • ZeroClaw:零开销全 Rust AI 助手基础设施,与 OpenClaw 对比
    • 在Windows11利用llama.cpp调用Qwen3.5量化模型测试
    • VSCode Remote SSH 结合 cpolar 实现远程开发环境配置
    • 基于 Vue3 和 Python 的粮油商品交易平台设计与实现
    • Jetpack Hilt 依赖注入框架使用指南
    • 《Agent Runtime 工程化》第九章 可观测与 Trace:9.7 验收标准
    • AI 辅助游戏开发:基于 DeepSeek 构建贪吃蛇游戏
    • OpenClaw AI Agent 框架技术解析与架构设计
    • Windows 安装 OpenCode AI 编码助理实战指南
    • 前端 EME DRM 反录屏原理及实战代码
    • 汇川 RobotLab 软件常规操作指南
    • 数据结构:图论基础
    • 多模态交互智能体全面解析:定义、架构、机制与应用

    相关免费在线工具

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

    • HTML转Markdown

      将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

    • JSON 压缩

      通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

    • JSON美化和格式化

      将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online