Git操作

本文详细介绍了Git的工作目录管理和常用命令,包括gitinit、gitclone、gitstatus、gitadd、gitrm、gitdiff、gitcheckout、gitcommit、gitrevert、gitlog、gitreset等。讲解了如何创建本地仓库、查看文件状态、提交更改、撤销提交、查看历史及撤销更新等操作,是Git初学者的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建工作目录和常用指令

工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。

日常使用只要记住下图6个命令:

创建本地仓库

1.git init 新建一个git库

2.git clone 从远程复制git库

git文件操作

查看文件状态

git status

添加文件

添加指定文件到暂存区:git add [file1] [file2] ...

添加指定目录到暂存区:git add [dir]

添加当前目录的所有文件到暂存区:git add .

移除文件与目录

从暂存区删除文件:git rm --cached <file>

通过重写目录树移除add文件:git reset HEAD <file>...

移除所有未跟踪文件:git clean -df (-d表示包含目录,-f表示强制清除)

查看文件修改后差异

比较差异:git diff [files]

比较暂存区的文件与之前已经提交过的文件:git diff --cached

比较repository与工作空间中的文件差异:git diff HEAD~n

签出

#用法一

git checkout [-q] [<commit>] [--] <paths>...

#用法二

git checkout [<branch>]

#用法三

git checkout [-m] [[-b]--orphan] <new_branch>] [<start_point>]

<commit>是可选项,如果省略则相当于从暂存区(index)进行检出

$ git checkout

#汇总显示工作区、暂存区与HEAD的差异。

$ git checkout HEAD

#同上

$ git checkout -- filename

#用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。

$ git checkout branch -- filename

#维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相   应的文件。注意会将暂存区和工作区中的filename文件直接覆盖。

$ git checkout -- . 或写作 git checkout .

#注意git checkout 命令后的参数为一个点(“.”)。这条命令最危险!会取消所有本地的  #修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件,不给用户任何确认的机会!

$ git checkout commit_id -- file_name

#如果不加commit_id,那么git checkout -- file_name 表示恢复文件到本地版本库中最新的状态。

提交

提交暂存区到仓库区

$ git commit -m [message]

# 提交暂存区的指定文件到仓库区

$ git commit [file1] [file2] ... -m [message]

# 提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效

$ git commit -a

# 提交时显示所有diff信息

$ git commit -v

# 使用一次新的commit,替代上一次提交

# 如果代码没有任何新变化,则用来改写上一次commit的提交信息

$ git commit --amend -m [message]

# 重做上一次commit,并包括指定文件的新变化

$ git commit --amend [file1] [file2] ...

修订提交

如果我们提交过后发现有个文件改错了,或者只是想修改提交说明,这时可以对相应文件做出修改,将修改过的文件通过"git add"添加到暂存区,然后执行以下命令:

#修订提交

git commit --amend

撤销提交

原理就是放弃工作区和index的改动,同时HEAD指针指向前一个commit对象

#撤销上一次的提交

git reset --hard HEAD~1

要通过git log查看提交日志,也可直接指定提交编号或序号

git revert <commit-id>

这条命令会把指定的提交的所有修改回滚,并同时生成一个新的提交。

日志与历史

查看提交日志可以使用git log指令,语法格式如下:

#查看提交日志

git log [<options>] [<revision range>] [[\--] <path>…​]

查看所有分支日志

git reflog

撤销更新

撤销暂存区更新:git reset HEAD <file>

撤销本地仓库更新:

01:git reset --hard HEAD^

02:git reset --hard HEAD~1

03:git reset --hard HEAD --id

现在又想恢复被撤销的提交可用"git reflog"查看仓库中所有的分支的所有更新记录,包括已经撤销的更新,撤销方法与前面一样。

git reset --hard HEAD@{7}

git reset --hard e0e79d7

--hard:撤销并删除相应的更新

--soft:撤销相应的更新,把这些更新的内容放到Stage中

删除文件

# 删除未跟踪文件

$ 如果文件还是未跟踪状态,直接删除文件就可了,bash中使用rm可以删除文件

# 删除已提交文件

$ git rm <options> <file>

-f 强制删除

撤销删除:git checkout -- <file>...

# 删除暂存区的文件,不删除工作区的文件

$ git rm --cached <file>

$ git reset HEAD <file>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值