Git 基本用法

史上最靠谱的利用Git将本地文件夹上传到GitHub中以及出现nothing added to commit but untracked files present的解决方案 史上最靠谱的利用Git将本地文件夹上传到GitHub中以及出现nothing added to commit but untracked files present的解决方案 遇到的问题: $ git commit -m ‘first commit’ On branch master Initial commit Untracked files: … … nothing added to com... 阅读详情
Git有一个好处,在本地的每一个项目都是一个完整的仓库,除了需要从网络拉取和推送到网络之外,其他所有的操作都可以在本地完成。
本文简单地介绍如何在本地使用Git来对文件进行管理,下一篇文章再来说一下分支的管理。
根据文件在 Git中 的状态,可将其内部分为三个工作区域:

1)工作目录
     如果拿 Git 来管理项目的源代码,那工作目录就是一个Workspace。其中的源代码文件可根据其是否纳入Git的管理流程分为三类:
     1.1)Untracked:未纳入Git管理流程的
     1.2)Tracked:已纳入Git管理流程的
           对于已纳入Git管理流程的可以再分为三类:
               a)已修改,未暂存的     (Changes not staged for commit)
               b)已修改,已暂存的,未提交的     (Changes to be committed)
               c)已提交,未修改的   (commited)
     1.3)不纳入Git管理流程的(在.gitignore文件中定义)

2)暂存区域
     对于未纳入Git管理流程的文件和已纳入Git管理流程中处于 a)状态的文件,可以使用add命令来将其添加到暂存区域:
          git add a.file

     此时,a.file就会被保存到暂存区域。

3)本地仓库
     对于已保存在暂存区域中的文件,可以使用commit命令,将其添加到本地仓库,如下:
          git commit -m "Commit Staged files"

指定 -m 参数,可以后面添加对提交内容的注释信息。
如果不指定 -m 参数,则 Git 会跳转到一个vi输入界面,等待用户输入注释信息之后,再提交。

利用Git在本地分支上进行开发工作,一般的流程如下:
1)先利用git status查看一下当前的工作目录状态:
$ git status
# On branch master
nothing to commit (working directory clean)

2)添加一个文件 test.txt,再查看一下其状态,如下:
$ touch test.txt
$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       test.txt
nothing added to commit but untracked files present (use "git add" to track)

可看到,在Untracked files:下面存在一个test.txt文件,而最下面一行则提示没有文件需要提交,但是存在未跟踪的文件(未跟踪,也即未纳入Git管理流程),此时 test.txt 文件就是处于未纳入管理流程的状态。
另外一种情况,修改已纳入Git管理流程的文件,再查看其状态:
$ echo "Add content to end of the a.txt" >> a.txt
$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   a.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       test.txt
no changes added to commit (use "git add" and/or "git commit -a")

可以看到,对于a.txt文件,其已纳入Git管理流程,所以其显示的是Changes not staged for commit,即上面所述的状态 a)。
3)利用 git add 命令将其添加到暂存区域
对于未纳入Git管理流程的文件, add 命令可将其纳入Git管理流程,同时将其添加到暂存区域。
对于已纳入Git管理流程的文件,add 命令可将修改过的文件添加到暂存区域。
切记,只有添加到暂存区域的文件,才能够提交到本地仓库。
$ git add test.txt
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   test.txt
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   a.txt
#

利用add命令,将test.txt文件添加到暂存区域(Changes to be commited),可看到test.txt已经是处于暂存区域,等待提交了,其状态就是上述状态中的 b)状态了。
同样的,利用add命令添加a.txt,如下:
$ git add a.txt
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   a.txt
#       new file:   test.txt
#

可看到,上面两个文件都被加入到暂存区域了。
4)利用 git commit 命令,将暂存区域的文件保存到本地仓库。
在这里要记住一点,提交(commit)做的操作是将暂存区域里面的内容保存到本地仓库。那些处于已修改,但还未添加到暂存区域的文件是不会被提交的。
在命令行输入:
git commit

Git 会启动文本编辑器,让用户输入本次的提交说明,如下:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   a.txt
#       new file:   test.txt

当用户输入提交信息之后,保存在暂存区的内容就会被保存到本地的仓库了。
$ git commit
[master d15838d] Commit the changes
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

可看到,在提交成功之后,Git会计算出一个Hash值(如上面,最前面几位是:d15838d),作为这次提交的标识值,可利用git log来查看。
另外,可以在git commit 命令行上指定 -m 参数,后面带上提交的注释信息,则Git会直接将-m参数指定的内容作为提交信息,直接提交到本地仓库,不再需要去编辑界面。
$ git commit -m "Add new files"

到这里,可以看出Git在本地某一分支上的一般流程如下:
(0)工作目录中,创建文件。
(1)编辑文件,利用 add 添加进暂存区域。
(2)利用 commit 将暂存区域的文件保存到本地仓库。
(3)编辑文件,利用 add 将其添加进暂存区域,回到(2)步,如此循环。

对于已经纳入Git管理流程的文件,每一次修改之后,都需要利用先add(添加到暂存区域),再commit(提交到本地仓库),这是比较麻烦的,可以直接在commit命令指定 -a 参数,则可以一步执行两个操作,如下:
$ git commit -am "Add and then Commit"

但是对于未纳入Git管理流程的文件,则不能这么做,必须先显式使用add命令将其纳入Git管理流程,保存进暂存区域,再提交。

5)利用 git rm 将文件从跟踪状态变成未跟踪状态,即不再纳入Git管理流程,如下:
$ git rm b.txt
rm 'b.txt'

查看其状态:
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    b.txt
#

同样的,这次删除操作也会被保存进暂存区域,直接提交了,才是真正从本地仓库中删除了,如下:
$ git commit -m "delete b.txt"
[master 2daa294] delete b.txt
 0 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 b.txt

而此时,b.txt文件也从工作目录中被删除了。
$ ls
a.txt  c.txt  d.txt  test.txt

如果只是想从Git管理流程中删除此文件,而想在工作目录中保存此文件的话,则需要指定参数 --cached,如下:
$ git rm --cached d.txt
rm 'd.txt'

查看状态可发现d.txt已经存在于Untracked files下面了:
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    d.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       d.txt

提交之后,再看一下Git状态:
$ git commit -m "remove d.txt from git"
[master d625705] remove d.txt from git
 1 files changed, 0 insertions(+), 1 deletions(-)
 delete mode 100644 d.txt
$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       d.txt
nothing added to commit but untracked files present (use "git add" to track)

最后,还可以使用log命令来查看多次的提交信息,如下:
$ git log
commit d62570527d545ae2677708ac2f9b015aab2df86f
Author: linmiansheng <sheepjtgjfc@163.com>
Date:   Tue Jun 17 14:31:10 2014 +0800

    remove d.txt from git

commit 2daa294a500bf9b3b0af7fe586353d882f0c3592
Author: linmiansheng <sheepjtgjfc@163.com>
Date:   Tue Jun 17 14:27:50 2014 +0800

    delete b.txt

commit d15838d91e2c09e5e25a0a348e4dfb27c7e6b928
Author: linmiansheng <sheepjtgjfc@163.com>
Date:   Tue Jun 17 14:18:28 2014 +0800

    Commit the changes

commit b52882cca685b024991dec8b976c35a1cbc6c9cf
Author: linmiansheng <sheepjtgjfc@163.com>
Date:   Tue Jun 17 14:11:13 2014 +0800

结束。

31、MSP430FR2355时钟系统与低功耗模式解析 本文详细解析了MSP430FR2355的时钟系统和低功耗模式。首先介绍了时钟系统的组成,包括XT1振荡器、DCO、MODCLK、MCLK、SMCLK和ACLK的功能与配置方法。接着探讨了MSP430FR2355的五种低功耗模式及其配置要点,并分析了时钟系统与低功耗模式之间的协同关系。最后通过实际应用案例展示了如何在具体场景中优化系统功耗。文章旨在帮助开发者充分利用MSP430FR2355的时钟与低功耗特性,实现高性能、低功耗的嵌入式系统设计。 阅读详情

相关推荐

ROS基础(一)——命令行代码(以小乌龟程序为例)

ROS学习(一)——命令行代码(以小乌龟程序为例)1 基础命令行语句1.1 roscore1.2 rqt_graph(显示系统计算图)1.3 rosnode(显示所有节点相关信息)1.4 rostopic(和话题相关)2 服务类型指令rosservice同时存在两只海龟3 指令记录 1 基础命令行语句 从大二四旋翼无人机编队后就没再接触过ROS了,最近由于科研任务需要重新捡起来,打算系统学一下!学习过程参考古月居老师的视频,有兴趣的同学可以去[BliBli]学习。 学习平台:Ubuntu 18.04 硬件

北理自动化小白 6266

nothing added to commit but untracked files present (use“git add“to track)

报错内容:①nothing added to commit but untracked files present (use "git add" to track);②error: pathspec 'test3.txt' did not match any file(s) known to git;

记录和分享属于我的“IT”时光。 1万+

cutlass2.x源码解读之PitchLinearStripminedThreadMap

TensorCoord:使用layout::PitchLinearCoord作为张量坐标。Shape:使用模板参数Shape_作为tile的形状,kThreads:线程总数,定义为模板参数Threads。kElementsPerAccess:每次访问的元素数,定义为模板参数ElementsPerAccess。ThreadAccessShape:线程访问的形状,使用layout::PitchLinearShape定义。内部实现细节:ShapeVec。

jiangjkd的专栏 788

关于git上传代码报错(已解决)

关于git上传代码报错(已解决)

T8682828的博客 1727

告别谷歌翻译失效!手把手教你用Immersive Translate插件实现双语网页阅读(附Chrome/Edge/Firefox保姆级配置)

本文详细介绍了如何使用Immersive Translate插件实现双语网页阅读,解决谷歌翻译失效的问题。通过Chrome、Edge和Firefox的保姆级配置指南,帮助用户轻松安装和使用这款支持双语对照、智能识别网页内容的翻译插件,提升外文资料阅读效率。

weixin_28683689的博客 485

01 底盘制动产品之轮速传感器

轮速传感器是用来测量汽车车轮转速的传感器。对于现代汽车而言,轮速信息是必不可少的,汽车动态控制系统(VDC)、汽车电子稳定程序(ESP)、防抱死制动系统(ABS)、自动变速器的控制系统等都需要轮速信息。

汽车软件工程师 | 好奇博主 | 处女座 4656

nothing added to commit but untracked files present解决方法

在给仓库提交文件时可能会出现还有未提交的文件存在而无法提交的情况 Untracked files: ../target/ ../zblog.iml nothing added to commit but untracked files present 解决办法 将未提交但不需要的文件添加到git忽略文件 .gitignore 主要步骤: ...

萤火之光 5万+

莆田市C++专项选拔第一轮题4

现在小明同学想要从两堆硬币中各选择一枚硬币,使得两枚硬币的面值之和 不超过 k。不同的硬币组合,就算面值相同,也视为不同的方案。现在他把这些硬币分成了两堆,已知两堆硬币分别有 n 和 m 枚硬币。可选方案有: (1,2), (1,1), (1,1), (5,2), (5,1), (5,1),共 6 种。第一行三个整数 n, m, k,分别表示第一堆硬币的数量,第二堆硬币的数量,以及面值之和的上限。对于30%的数据,1 ≤ n , m ≤ 1000 , 1 ≤ b , c ≤ 1000。

lpstudio的博客 924

当使用git出现提示untracked files时怎么办?

在使用 git 工具时,遇到如下错误。

2401_83143557的博客 1930

【嘉立创EDA】从AD21导入pcb边界到嘉立创EDA专业版

有许多前期工程由AD进行完成,在后续update的过程中,由于开模等原因限制,部分pcb外型需要继续沿用,本文将此过程记录,以供有需要的读者参考。

l64481000的博客 4518

YOLOv11【第二章:核心模块进阶篇·第3节】LDConv线性可变形卷积改进YOLOv11!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 7439

Git和Github的基本用法

git是一个版本控制工具主要解决三个问题1.代码被喵星人吃掉了2.产品经理反复修改需求需要同时维护多个版本代码3.多人协同开发Github是全球最大的同性社交网站".通过git可以把代码上传到Github上给全球的用户分享这个是一个git的windows系统的命令行版本或者这个是git的图形界面1.先安装再安装2.安装一路next即可3.安装中需要配置git.exe,这个是包含的部分如果安装成功这一步使用默认结果即可.

实事求是,追求技术,精益求精~将至而立之年,不忘年少初心! 1362

华为OD机试真题 新系统2026-04-01 Python&JS 实现【空间占用计算】

员工A的磁盘空间经常被耗尽,他需要找到占用空间最大的目录或文件,然后决定如何清理文件释放空间。给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录一级子项(文件或子目录)中占用空间最大的项。

MISAYAONE的博客 1300

git tag的基本用法

git tag的基本用法

weixin_43342105的博客 199

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

GIT基本概念和用法总结

GIT基本概念和用法总结 guibin.beijing@gmail.com 在日常使用GIT过程中,经常会出错,比如无意间丢失了未提交的数据,回退版本时丢失了工作目录,等等。经过思考发现,所有这些错误都是因为对 GIT中一些基本的概念模糊而导致,因为对一些基本概念不清晰,导致对GIT每一条命令将会产生的结果不符合预期。下面我就梳理以下我经常碰到的问题相关 的基本概念。 1. Working D

664

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Git基本用法

Git基本用法

ZhuTT的博客 956

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

git的基本用法

git是一个功能强大的软件,你可以在上面与其他人共同开发一个项目,在这里向大家介绍git的基本用法,以便大家能更好的运用这个软件。 一、下载git。 要使用肯定要先下载,可以到官网下一个,但官网可能下的很慢,这里提供一个下载地址,默认安装就可以了 https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit ...

远方的博客 325

关于git的基本用法

关于Git的基本用法

m0_62111965的博客 1150

GIT基本用法

Git 教程 - Git 基本用法Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project # 创建项目目录 cd project # 进入到项目目录 git init # 初始化 git 仓库。此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息 初始化提交 touch R

hlj_include的博客 5596

Git基本用法教程

Git(官网:https://git-scm.com/download/)安装之后鼠标右键会自动多出两个选项,这时就代表了安装成功。

可不期诺的博客 861

git的基本用法总结

下载项目 git clone 阿里云地址 更新本地代码git pull origin master 如果使用git pull origin master没办法拉取远程代码。可以使用下面的方法拉取远程的某个文件 git checkout pages/kykpage/markpapercheck.html git status –s 可以看到本地修改了远程的哪些代码。 比较本地代码和服务器代码,具体的文件修改了哪些部分。 git diff 文件路径 上传代码步骤:一张...

肖肖肖丽珠的博客 282

初探Git git基本用法

Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project # 创建项目目录 cd project # 进入到项目目录 git init # 初始化 git 仓库。此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息 初始化提交 touch README ...

143

git及SVN基本用法

一、Git基本用法 1、配置 1)在网上下载git软件。我的是Git-1.9.5-preview20150319.exe和TortoiseGit-1.8.14.0-64bit.msi。 安装完后,从开始菜单点击git bash 2)输入 ssh-keygen -C "shixin@yiche.com" -t rsa 来生成一对密钥,默认保存到~/.ssh目录。 3)输入git c...

艟粼的专栏 1325

git基本用法

Git 教程 - Git 基本用法 您的评价:        收藏该经验     Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project  # 创建项目目录  cd project  # 进入到项目目录  g

可克技术 692

Git 教程 - Git 基本用法

Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project  # 创建项目目录  cd project  # 进入到项目目录  git init  # 初始化 git 仓库。此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息 初始化提交 touch README 

lwqldsyzx的博客 488
上一篇: Android学习小Demo(20)关于Fragment的应用
下一篇: Git 分支管理
linmiansheng
博客等级 码龄20年 507粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值