【Git】 工作区 — 本地仓库的操作命令

文章介绍了Git的基本操作流程,包括通过gitinit建立本地仓库,gitadd将文件从工作区移动到暂存区,gitcommit将暂存区内容提交到本地仓库。此外,还提到了gitstatus查看修改状态,gitlog查看提交日志,gitreset进行版本回退,以及如何使用.gitignore文件忽略特定文件或目录。

 我们要上传文件到本地仓库,不是直接拷贝进去的,而是需要通过命令一步步上传。从工作区到本地仓库分为了三步,也可以说是三个区域:


目录

1、操作命令

(1) git init(建立本地仓库)

(2) git add(工作区 ==》暂存区)

(3) git commit(暂存区 ==》本地仓库)

2、查看命令(查看历史提交记录)

(1) git status(查看修改的状态)

(2) git log(查看提交的日志信息)

3、git reset(版本回退)

4、添加文件至忽略列表


1、操作命令

(1) git init(建立本地仓库)

从上图可以知道,在上传到远程仓库之前,我们需要先将文件上传至本地仓库。无论是Windows环境还是Linux环境,我们都可以选择任一目录作为本地仓库,然后初始化该仓库。

Windows环境下,在一个空目录下右键点击 Git Bash,然后输入 git init 初始化为本地仓库

如果当前目录下出现了 .git 目录,说明初始化成果

(2) git add(工作区 ==》暂存区)

我们在当前目录下创建一个 file.txt 文件,然后将该文件上传到暂存区。只要还没提交到本地仓库,我们可以多次上传文件到暂存区。

# 将当前目录下的file.txt 上传至暂存区
git add file.txt

# 将当前目录下所有的文件上传至暂存区
git add . 

(3) git commit(暂存区 ==》本地仓库)

提交一条上传记录到本地仓库,同时为该条记录分配ID,有了ID我们就可以进行版本回溯,提交时可以携带提交信息,即本次提交做出了哪些修改。

git commit -m "提交信息"

2、查看命令(查看历史提交记录)

即便是提交了,我们也可以获取到曾经提交到该本地仓库的相关记录。

(1) git status(查看修改的状态)

该命令可以查看暂存区和工作区的修改,一旦commit,该命令所保留的修改会被清空。

对工作区中file.txt 文件的修改,可以使用 git status 查看到

一旦commit,也就是提交一条记录到本地仓库,git status 保存的修改就会被清空,此时的修改状态信息就会被保存到 日志信息中,可以使用 git log 查看。

(2) git log(查看提交的日志信息)

git log 可以查看已经提交到本地仓库的日志记录。(可以携带选项)这些记录里包含了 Git 分支的提交记录。

git log --all        # 查看所有分支
选项解析
--all显示所有分支
--pretty=oneline将提交信息显示为一行
--abbrev-commit使得显示的commit信息更加简短
--graph以图的形式展示

3、git reset(版本回退)

git reset 可以让当前文件的内容回退到过去某次提交记录时的状态,相当于撤销了此前的一系列修改。命令格式如下:

git reset --hard 提交记录的ID

示例:

首先我们要明确回到哪一个版本,我们可以输入 git log 查看之前的提交记录

假设我们要回退到 second commit 记录被提交时的状态

4、添加文件至忽略列表

默认情况下,Git会管理工作区的所有文件, 使用 git add . 命令的时候也是会将当前工作区中的所有文件加入到暂存区,然而对于一些临时文件,我们不希望Git 来管理,此时我们可以在忽略列表中加入某个文件的名字。

首先我们要在工作目录下创建一个 .gitignore 文件(文件名称固定)

然后在 .gitignore 文件中加入要忽略的目录或者文件,可参考如下写法

# 忽略所有的 .a 文件
*.a

# 忽略 build 目录下的所有文件
build/

# 忽略build 目录下的所有 .txt 文件,注意 build/doc/ 下的 .txt 文件不会被忽略
build/*.txt

# 忽略build目录以及子目录下的所有 .txt 文件
build/**/*.txt
<think>首先,用户的问题是:“撤回git本地工作区修改的命令”。根据用户提供的引用,我需要参考之前的引用内容来回答。 回顾引用: - 引用[1]:讨论了如何撤回最后一次提交,使用`git reset --soft HEAD~1`等。 - 引用[2]:总结了各种撤回命令,包括暂存区、本地仓库和远程仓库的撤回。 - 引用[3]:解释了Git本地仓库操作,提到工作区、暂存区和仓库之间的关系。 - 引用[4]:列出了git常用撤回命令,特别是对于工作区修改的撤回。 用户特别询问“撤回git本地工作区修改的命令”,所以我需要聚焦于工作区(working directory)的修改。 从引用[4]中: - `git restore .`:将文件(未暂存/已暂存)退回到未修改状态,并撤回所有修改。 - `git checkout .`:与`git restore .`完全相同,退回到未修改状态,并撤回所有修改。 另外,引用[2]中提到: - 对于暂存区撤回,使用`git reset`或`git restore --staged`。 - 对于本地仓库撤回,使用`git reset`或`git revert`。 - 但用户的问题是工作区修改,不是暂存区或仓库工作区修改指的是用户在工作目录中修改了文件,但还没有添加到暂存区(git add)。撤回这些修改意味着丢弃这些更改,恢复到上一次提交的状态。 常用命令: - `git checkout -- .` 或 `git checkout .`:丢弃工作区的所有修改。 - `git restore .`:同样丢弃工作区的所有修改(在较新的Git版本中推荐使用)。 从引用[4]:"git restore . //将文件(未暂存/已暂存) 退回到未修改状态 并撤回所有修改"。这直接适用于工作区修改。 用户说“本地工作区”,所以我需要确保命令是针对工作区的。 回答结构: - 系统级指令要求:使用中文回答,结构清晰,逐步解决问题。 - 回答中引用的段落末尾添加引用标识。 - 生成相关问题。 - 所有数学表达式用$...$,但这里可能不需要数学表达式。 步骤: 1. 确认问题:撤回Git本地工作区修改的命令。 2. 解释工作区工作区是用户编辑文件的地方,修改尚未暂存。 3. 给出命令: - `git restore .`:丢弃所有修改,恢复到上次提交的状态。 - 或 `git checkout -- .`:类似功能,但`git restore`是更新的命令。 4. 参考引用:基于引用[4],直接引用。 5. 确保回答真实可靠:这些都是标准Git命令。 6. 生成相关问题:在末尾添加相关问题。 完整回答: - 开头回答问题。 - 解释命令。 - 添加引用。 - 然后生成相关问题。 相关问题:基于用户查询,生成相关Git问题。 例如: - 如何撤回暂存区的修改? - 如何撤回已经提交的更改? - Git工作区、暂存区和仓库的区别? - 等等。 </think>### 撤回Git本地工作区修改的命令 要撤回Git本地工作区(working directory)中的修改,就是将工作目录中所有未保存到暂存区(staged)的更改恢复到上一次提交的状态。以下是常用的命令及其说明,基于您提供的引用内容: 1. **`git restore .`**: - 这个命令会将工作区内所有已追踪文件的修改(包括未暂存或已添加到暂存区的更改)丢弃,恢复到上次提交时的状态。 - 例如,如果您在工作区修改了文件但未运行`git add`,执行此命令后,所有更改都会被撤销。 - 引用[4]中提到:"git restore . //将文件(未暂存/已暂存) 退回到未修改状态 并撤回所有修改"[^4]。 2. **`git checkout -- .`**: - 功能与`git restore .`相同,它会丢弃工作区中的所有修改,恢复到未修改状态。 - 在较旧的Git版本中常用,但Git官方推荐在新版本中使用`git restore`作为更直观的替代。 - 引用[4]指出:"git checkout . //将文件(未暂存/已暂存) 退回到未修改状态 并撤回所有修改(与git restore . 完全相同)"[^4]。 ### 使用步骤示例 - 假设您在工作区修改了几个文件(如`file1.txt`和`file2.txt`),但未添加到暂存区。 - 打开终端,进入Git仓库目录。 - 运行命令: ```bash git restore . # 或 git checkout -- . ``` - 结果:所有工作区的修改被丢弃,文件恢复到上一次提交的内容。 ### 说明 - 这些命令只影响工作区,不会改变暂存区或本地仓库中的提交历史。如果您修改了文件但已运行`git add`(即更改在暂存区),需要先用`git restore --staged .`撤回暂存区的更改[^2],再处理工作区。 - 工作区是您直接编辑文件的地方,撤回修改前请确认是否需要备份更改,避免数据丢失[^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值