git status-检查文件状态

检查文件状态的主要工具是git status命令,如果你在clone项目后直接运行这个命令
你可以看到下面的结果

这意味着你又一个干净的工作目录,换一句话说,你的所有tracked文件都没有被更改,Git也没有看到任何untracked文件,这个命令告诉你你在哪个分支上面,并且可以知道你的分支和在服务器上的分支状态是一致的,
默认的分支是master

实例:
添加一个新的文件到项目中,一个简单的README文件,如果这个文件以前没有存在,那么你可以运行git status命令,可以看到untracked 文件如下所示:

$ echo ‘My Project’ > README
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Untracked files:
(use “git add …” to include in what will be committed)

README

nothing added to commit but untracked files present (use “git add” to track)
可以看到最新的README文件是untracked,Git看到这个文件不再上一个commit里面,Git不会提交这个文件除非你将它加到提交列表里面,这样可以保证你不会讲一些你不想加入到git中的文件提交,比如二进制文件。

跟踪新文件
git add README : 将README加入到跟踪状态

随后再次执行git status 命令,会发现README文件已经被跟踪了,准备提交。
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)

new file:   README

修改一个tracked文件,然后执行git status,可以看到如下结果
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)

new file:   README

Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git checkout – …” to discard changes in working directory)

modified:   CONTRIBUTING.md

修改一个tracked的文件,会使其不在暂存空间里面,要将它加入到暂存空间,可以执行git add命令,暂存空间是文件提交到git的空间,任何不再暂存空间里面的文件都不能加到git里面。

git add命令有很多种用途,

  1. 将新文件加入到tracked状态
  2. 将文件加入暂存空间
  3. 合并冲突文件

将CONTRIBUTING.md文件进行git add命令 会有如下结果
git add CONTRIBUTING.md
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)

new file:   README
modified:   CONTRIBUTING.md

当修改了暂存区里面的文件,需要再次执行git add命令,将文件加入到暂存区中。不然运行git commit命令只是将上一次运行git add的结果进行提交。

git status 命令不容易理解,使用git status -s命令可以更加直观的理解文件所处的状态
新文件处于untracked状态会被标记为两个问号??
新文件处于暂存区的被标记为A
新文件被更改后标记为M
通常状态表示有两列组成,左边一列表示暂存区文件的状态,右边一列表示工作目录下的文件状态,右边一列表示暂存区中文件状态。
举例来说README文件在工作目录中被修改,但是没有在暂存区中。
Lib/simplegit.rb文件在暂存区中但是被修改,Rakefile在工作目录下被修改并提交到暂存区,再次被修改,所以被标记为MM

`在这里插入图片描述

`git reset --hard origin/master` 是 Git 中的一个命令,用于将当前分支(通常是 HEAD)的指针直接指向远程仓库 `origin` 的 `master` 分支。这个操作是不可逆的,一旦执行,所有本地对远程 `master` 分支所做的更改都将被丢弃,工作目录和暂存区的内容都会恢复到最后一次从远程 `master` 拉取的状态。 如果你意识到这个操作可能会导致数据丢失,你应该尽快采取以下步骤尝试恢复: 1. **检查状态**: 在执行 `git reset --hard` 前,使用 `git status` 确认你的当前状态,这能帮助你确定哪些文件可能已经被重置。 2. **恢复未提交的更改**: 如果有未提交的更改,你可以在执行 `reset` 前先 `git add .` 将它们添加到暂存区,然后用 `git commit -m "Your commit message"` 记录下来。之后再做 `reset`,这些更改不会丢失。 3. **使用 `git reflog`**: 如果 `reset --hard` 已经执行,`git reflog` 可以帮你追踪HEAD的先前位置。查找最近的 `HEAD@{n}`,其中 n 是时间点,然后使用 `git reset --hard HEAD@{n}` 尝试恢复。 4. **恢复未删除的文件**: 如果有被误删的文件,查看 `.git/refs/original/HEAD` 文件或使用 `git reflog` 找到对应的提交,然后从那个提交中恢复文件。 5. **提交历史备份**: 如果你没有在执行 `reset --hard` 之前创建过提交,你可能需要重新创建提交历史,这会比较复杂,可能需要一些Git魔术或第三方工具(如BFG)来完成。 请注意,以上步骤仅适用于你知道自己想撤销的具体操作,因为大部分情况下,一旦数据被 `reset --hard` 重置,就很难完全恢复。因此,建议在执行敏感操作前做好充分的备份和确认。如果你不确定如何操作,最好是咨询更有经验的开发者或查阅Git官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值