Git基本命令使用总结

目录

git中查看文件状态和差异

跳过暂存区域

移除文件

文件改名

查看提交历史

撤销操作


git中查看文件状态和差异

通常我们会使用git status来查看当前文件状态,它的输出如下面所示:

其中,第一个aa.ppp是已经加入到暂存区,等待提交的。 第二个aa.ppp是已经修改,但是尚未进行暂存。  test.pdf是一个新文件,还未进行跟踪。

 

但是有时我们除了知道文件状态外,还想知道文件发生哪些变化。

  • 对于工作区中已经修改,但尚未加入暂存区的文件,git diff 将会对比工作区的文件和暂存区的文件(可以这样理解,初始的暂存区或者刚刚commit过的暂存区,与版本库是一致的)
  • 对于已经加入暂存区的文件,git diff --staged 将会比较暂存区和版本库

 

跳过暂存区域

有时我们可能会觉得加入暂存区是个比较繁琐的事情,能不能跳过呢。 跳不过,但是git可以帮我们将文件加入到暂存区,那就是使用 git commit -a ,这样所有被追踪并且已经修改的文件,都会自动添加到暂存区然后被提交到版本库。

对于未追踪的文件,你还是得手动 git add 来将其加入到暂存区

 

移除文件

1. 已经添加到暂存区的新文件,但是还未提交(版本库中没有该文件)

     无法用  git rm 文件名,我们这里有2个选择,

          第一:git rm 文件名 --cached   仅删除暂存区的内容,保留工作区的文件                   

          第二:git rm 文件名 -f  删除暂存区和工作区文件,就是这个文件被彻底删除。

2. 刚刚从版本库中checkout的文件,还未进行修改

    使用  git rm 文件名  , 删除操作将被加入到暂存区,然后提交就可以将文件从版本库中删除了。

3. 从版本库中checkout的文件,修改并添加到暂存区

          第一:git rm 文件名 --cached   仅删除暂存区的内容,保留工作区的文件                   

          第二:git rm 文件名 -f  删除暂存区和工作区文件,并将删除操作加入暂存区,然后提交就可以将文件从版本库中删除了。

 

文件改名

可以使用 git mv  name_from name_to, 这个修改会进入暂存区,commit后就可以了

这个命令其实是3个命令的合集:

git mv name_from name_to

git rm name_from

git add name_to

 

查看提交历史

使用git log能够查看提交历史,提交历史包含所有的提及历史记录,默认安照时间排序,最近提交的靠前。  同时,这个命令有很多的参数可用。

 

影响log输出的参数:

选项说明
-p按不定格式显示每个更新间的差异
--stat显示每次更新的文件修改统计信息
--name-only仅在提交信息后显示已修改的文件清单
--name-status显示新增、删除、修改的文件清单
--abbrev-commit仅显示SHA-1的前几个字符,而非所有的40个字符
--relative-date使用较短的相对时间显示,例如 2 weeks ago
--graph显示ASCII图形表示的分支合并历史
--pretty使用其他格式显示历史提交信息,可用的选项包括 oneline、short、full、fuller和format(format后跟指定格式)

--pretty=format 的常用选项

选项说明
%H提交对象(commit)的完整哈希字符串
%h提交对象的简短哈希字符串
%T树对象(tree)的完整哈希字符串
%t树对象的简短哈希字符串
%P父对象(parent)的完整哈希字符串
%p父对象的简短哈希字符串
%an作者(author)的名字
%ae作者的邮件地址
%ad作者修订日期(可以使用 --date=选项定制格式)
%ar作者修订日期(按多久以前的方式显示)
%cn提交者(committer)的名字
%ce提交者的邮箱地址
%cd提交日期
%cr提交日期,按多久以前的方式显示
%s提交说明

例子:git log --pretty=format:"%h %s" --graph
 

限制输出的长度(就是个过滤器)

选项说明
-nn为一个数,代表显示最近提交的n条提交
--since, --after仅显示指定时间之后的提交
--until, --before仅显示指定时间之前的提交
--author仅显示指定作者的相关提交
--committer仅显示指定提交者的相关提交
--grep仅显示(提交说明中)包含指定关键字的提交
-S仅显示(代码中)添加或移除了某个关键字的提交
--放在最后,用--分隔,后面跟一个path,仅显示这个path下文件的历史修改记录

例子:

git log --pretty="%h - %s" --author=gitster --since="2008-10-01" --before="2008-11-01"

git log -Sfunction_name

git log -- /opt/fes/
 

 

撤销操作

一、撤销commit

git commit --amend, 这个命令从根本上来说并没有进行撤销,它只是让某次提交操作不可见了,让history看起更好看些,有2个用法:

1. 上次commit后,没有进行任何操作,这时git commit --amend可以用来修改上次的提交说明,例如 git commit --amend -m "刚才提交说明写的有问题,现在重新写下提交说明"

2. 上次提交后,我们进行add操作,将某些文件加入了暂存区, 这时git commit --amend可以用来更新快照,同时上次提交信息会被隐藏起来,也可以写新的提交说明。 例子:git commit --amend -m "新的提交说明" 【需要注意的是,最后这次提交中包含了2次提交的变化】

 

二、从暂存区撤销

如果不小心将某个文件添加到了暂存区,没有关系我们可以用下面的命令,将其从暂存区撤销,所作的修改不会丢失。

git reset HEAD  filename

 

三、撤销对工作区文件的修改

我们对某个文件修改后,未添加到暂存区之前,后悔了,希望将文件恢复到上次提交时的状态,注意所作修改会丢失哦

git checkout -- filename

 

 

<think>我们根据用户的需求,需要总结Git基本命令。用户之前已经提供了一些引用内容,我们需要整合这些信息,并按照用户的要求进行格式化。要求:1.行内数学表达式用$...$,但Git命令总结中可能数学表达式不多,但我们需注意如果有变量、路径名等需要按格式。2.独立公式用$$...$$,但Git命令中可能较少,主要关注命令的展示。3.使用中文回答。4.生成相关问题。5.在引用的段落末尾添加引用标识。6.结构清晰,保证真实可靠。我们按照Git命令的常用分类来组织,参考之前的回答结构和引用内容。根据引用[1]、[2]、[3]、[4]的内容,我们总结如下:注意:引用[1]提到创建版本库、工作区和暂存区;引用[2]提到reset、pull--rebase;引用[3]提到diff的各种用法;引用[4]提到revert和reset。我们分为以下几个部分:一、仓库初始化与配置二、文件操作(工作区与暂存区)三、提交操作四、分支操作五、远程操作六、撤销与回退七、查看信息我们将使用代码块来展示命令,对于每个命令给出简单说明,并在适当地方标注引用。注意:用户要求生成相关问题,我们在最后生成。开始组织:</think> ### Git 基本命令总结 #### 一、仓库初始化与配置 1. **初始化本地仓库** ```bash git init # 创建.git目录(版本库)[^1] ``` 2. **全局用户配置** ```bash git config --global user.name "用户名" git config --global user.email "邮箱地址" # 需先配置才能提交[^1] ``` 3. **克隆远程仓库** ```bash git clone <repository_url> # 复制远程仓库到本地[^1] ``` #### 二、文件操作与状态管理 1. **添加文件到暂存区** ```bash git add <file> # 添加单个文件 git add . # 添加所有改动[^1] ``` 2. **查看状态与差异** ```bash git status # 查看工作区和暂存区状态[^1] git diff # 比较工作区与暂存区差异[^3] git diff --cached # 比较暂存区与最新提交[^3] git diff HEAD~2 # 比较工作区与上两次提交(HEAD~n表示前n次)[^3] ``` #### 三、提交与版本控制 1. **提交更改** ```bash git commit -m "提交说明" # 永久保存暂存区的修改[^1] ``` 2. **版本回退** ```bash git reset --hard HEAD^ # 回退到上一个提交(HEAD~n回退n步)[^2][^3] git reset --hard <commit_id> # 回退到指定提交[^3] ``` 3. **查看历史记录** ```bash git log # 显示提交历史[^1] ``` #### 四、分支管理 1. **创建与切换分支** ```bash git branch <branch_name> # 创建分支[^1] git checkout <branch_name> # 切换分支 git switch <branch_name> # 新版切换命令 ``` 2. **合并分支** ```bash git merge <branch_name> # 合并指定分支到当前分支[^1] ``` 3. **拉取远程更新** ```bash git pull # = git fetch + git merge FETCH_HEAD[^2] git pull --rebase # = git fetch + git rebase FETCH_HEAD[^2] ``` #### 五、撤销与恢复 1. **撤销未提交的修改** ```bash git restore <file> # 撤销工作区修改 git restore --staged <file> # 撤销暂存区的add操作 ``` 2. **反提交(新增撤销提交)** ```bash git revert <commit_id> # 生成新提交来撤销指定提交[^4] ``` --- ```mermaid flowchart LR A[修改文件] --> B[git add] B --> C[git commit -m] C --> D[git pull --rebase] D --> E[冲突处理] E --> F[git push] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值