抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Git 仓库文件的主要操作为提交与修改。

添加文件

git add 命令可以将文件添加到暂存区,其常见用法有以下三种:

  • 添加特定文件

    1
    git add <file1> <file2> <...>
  • 添加特定目录

    1
    git add <dir>
  • 添加当前目录下所有文件

    1
    git add .

文件修改后一般都需要使用该命令将其保存于暂存区中。

查看状态

git status 命令可以查看自上次提交后对文件的修改状况。

一般会使用带参数的命令 git status -s 获得简化后的输出。使用该方法查看状态时会列出全部文件的文件名,并在名称前方放置最长两个字符的标记来标识文件状态,左侧指明其在暂存区中的状态,右侧指明其在工作区的状态。具体地,有:

  • A:文件已添加到缓存区;
  • M:文件在缓存区/工作区发生改动;
  • ?:文件未追踪。

比较文件不同

git diff 命令可以比较文件的不同。根据实际应用场景,有以下几种用法:

  • git diff :查看尚未缓存的改动;
  • git diff --cached :查看已缓存的改动;
  • git diff HEAD :查看已缓存的和未缓存的所有改动;
  • git diff --stat :显示摘要。

显示暂存区和工作区的差异:

1
git diff <file>

显示暂存区暂存区和上一次提交之间的差异:

1
git diff --cached <file>

1
git diff --staged <file>

显示两次提交之间的差异:

1
git diff <branch-a>...<branch-b>

提交版本

git commit 命令可以将暂存区内容写入版本库中。

提交暂存区到本地仓库中,并添加备注信息:

1
git commit -m <message>

提交暂存区的指定文件到本地仓库中:

1
git commit <file1> <file2> <...> -m <message>

跳过暂存区直接提交:

1
git commit -a

回退版本

git reset 命令可以指定退回某一次提交的版本。

回退版本命令的基本结构如下:

1
git reset <--arg> HEAD

<--arg> 有以下几个可选参数,默认为 --mixed

  • --soft :用于回退到某个版本;
  • --mixed :用于重置暂存区的文件与上一次的提交保持一致,但不会改变工作区文件内容,即取消已缓存的内容;
  • --hard :用于撤销工作区中所有未提交的修改内容,将暂存区和工作区都回到上一个版本,并删除之前的所有信息提交。

–hard 参数会删除回退点之前的所有信息

该命令中的 HEAD 也可以附加符号来指定其它版本:

  • HEADHEAD~0 :当前版本;
  • HEAD^HEAD~1 :上个版本;
  • HEAD^^HEAD~2 :上上个版本;
  • HEAD^^^HEAD~3 :上上上个版本;
  • 以此类推。

删除工作区文件

可以使用 rm 等命令或鼠标操作删除工作区文件,但使用该方法并不会对暂存区和版本库中的对应文件产生影响,反而会在之后因缺失工作区文件而弹出“改动未提交”的提示。

git 也有对应于 rm 等删除命令的对应命令,为 git rm 。根据具体场景,有以下几种用法:

  • 将文件从暂存区和工作区中删除:

    1
    git rm <file>
  • 如果文件在删除之前修改过并且已经放到暂存区域的话,必须使用强制删除选项 -f

    1
    git rm -f <file>
  • 如果仅想删除暂存区中的文件,而不影响工作区的内容,需要使用选项 --cached

    1
    git rm --cached <file>

移动或重命名工作区文件

git mv 命令用于移动或重命名一个文件、目录或软连接。

该命令的基本结构如下:

1
git mv <file> <newfile>

该命令会将 <file> 文件重命名为 <newfile> 。如果文件 <newfile> 已经存在,但还是想重命名它,那么就需要附加选项 -f

1
git mv -f <file> <newfile>

评论



This is a picture without description

This is a picture without description This is a picture without description This is a picture without description