Git向仓库提交代码三步走详解(add、commit、push)

 更新时间:2026年04月11日 10:33:28   作者:WF文丰  
文章主要介绍了Git的工作区、暂存区和版本库的概念,并详细讲述了如何使用`git add`、`git commit`和`git push`命令进行代码版本管理,此外,还介绍了如何配置用户名和邮箱地址、创建版本库、记录快照、上传代码到远程仓库以及强制推送等操作

Git 工作区、暂存区和版本库概念

使用 git add命令将想要快照的内容写入缓存区,执行 git commit将缓存区内容添加到仓库中,执行 git push用于从将本地的分支版本上传到远程并合并。

基本概念:我们先来理解下Git 工作区暂存区版本库概念

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage, 或 index。一般存放在 “.git目录下” 下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

如下图所示:

Git向仓库提交代码git commit

  • 使用 git add命令将想要快照的内容写入缓存区, 而执行 git commit将缓存区内容添加到仓库中。
  • Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。
git config --global user.name 'XXXX'
git config --global user.email XXXXXXXXX@qq.com

账号信息通过如下途径可以获得:

https://gitee.com

创建版本库(仅用于第一次)

git init
  • 接下来我们写入缓存,并提交对 test.php 的所有改动。
  • 在首个例子中,我们使用 -m 选项以在命令行中提供提交注释。
  • 递归将本目录下所有文件
git add .
git commit -m '初始化项目'
 2 files changed, 2 insertions(+)
 create mode 100644 README
 create mode 100644 test.php
  • 现在我们已经记录了快照。如果我们再执行 git status:
git status
# On branch master
nothing to commit (working directory clean)
  • 以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean:干净的工作目录"。
  • 如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认(Linux)会打开 vim。

直接提交

如果你觉得 琐,Git 也允许你用 -a 选项跳过这一步(git add 提交缓存的流程太过繁)。

命令格式如上:

git commit -a

本地分支版本上传到远程git push

本地仓库与远程仓库连接(首先回到gitee仓库页面,复制https链接)

  • 远程仓库连接
git remote add origin 刚才复制的https链接 

  • 强制推送
  • 将远程仓库拉到本地仓库git版本控制(远程仓库为空可跳过)
git pull --rebase origin master
  • 本地仓库的代码传到远程仓库
git push -u origin master
  • 如果弹出gitee的登录窗口登录即可

回到gitee仓库页面刷新一下即可看到代码已经上传完成了

如果你发现有文件夹或者目录一直未上传(即使修改了)

请检查:.gitignore

如何强制删除本地的所有更改?

如果你想要强制删除本地的所有更改(包括未提交的更改、暂存的更改以及本地分支上的提交),并将远程分支的最新版本同步到本地,你可以按照以下步骤操作:

  • 备份你的工作:首先,确保你保存了所有重要的更改,因为以下步骤将会丢弃它们。
  • 清理工作目录:如果你有任何未提交的更改,你可以通过git stash将它们保存起来,稍后可以再恢复。但如果你想要丢弃这些更改,可以使用git reset --hard。
git stash save "My stash message"  # 如果你想要保存更改
git reset --hard                   # 如果你想要丢弃更改

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在地址栏里显示logo的实现方法

    在地址栏里显示logo的实现方法

    在地址栏里显示logo,其实大家可以看一些网站的头部里面,下面的方法讲的更仔细。
    2009-02-02
  • 解析动态代理jdk的Proxy与spring的CGlib(包括区别介绍)

    解析动态代理jdk的Proxy与spring的CGlib(包括区别介绍)

    Spring是Java程序员基本不可能绕开的一个框架,它的核心思想是IoC(控制反转)和AOP(面向切面编程)。本文重点给大家介绍动态代理jdk的Proxy与spring的CGlib,感兴趣的朋友跟随小编一起看看吧
    2022-01-01
  • Git三方合并策略详解

    Git三方合并策略详解

    本文详细解析了Git中的合并(Merge)的概念,快进合并(Fast--ForwardMerge)和三方合并(Three-WayMerge),并介绍了三方合并的决策规则、冲突处理以及合并提交(MergeCommit)等内容,需要的朋友可以参考下
    2026-06-06
  • git blame命令详解

    git blame命令详解

    git blame用来追溯一个指定文件的历史修改记录。这篇文章给大家介绍git blame命令的用法,感兴趣的朋友一起看看吧
    2020-10-10
  • 值得收藏的9个提高代码运行效率的小技巧(推荐)

    值得收藏的9个提高代码运行效率的小技巧(推荐)

    本文给大家分享9个提高代码运行效率的小技巧(推荐),本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-04-04
  • 详谈git 提交代码步骤,干货

    详谈git 提交代码步骤,干货

    这篇文章主要介绍了详谈git 提交代码步骤。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • IDEA配置以及插件和快捷键超全总结

    IDEA配置以及插件和快捷键超全总结

    这篇文章主要给大家介绍了关于IDEA配置以及插件和快捷键的相关资料,学习软件工程的同学基本上都要用到idea,并且它也是目前比较主流的开发工具,需要的朋友可以参考下
    2023-07-07
  • Postman返回中文乱码的解决方案

    Postman返回中文乱码的解决方案

    使用postman发出请求,返回值含有中文字符串,却发现中文被乱码,本文就详细的介绍一下Postman返回乱码的解决方案,感兴趣的可以了解一下
    2022-01-01
  • 使用VSCode如何从github拉取项目的实现

    使用VSCode如何从github拉取项目的实现

    这篇文章主要介绍了使用VSCode如何从github拉取项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • vscode如何设置默认打开的浏览器为Chrome

    vscode如何设置默认打开的浏览器为Chrome

    这篇文章主要介绍了vscode如何设置默认打开的浏览器为Chrome,需要的朋友可以参考下
    2020-08-08

最新评论