git命令及相关操作

查看文件状态

$ git status

1、没有任何文件的打印结果
在这里插入图片描述
工作目录相当干净,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列 出来;
所有已跟踪文件在上次提交后都未被更改过;
该命令还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离。 分 支 名是“master”,这是默认的分支名

2、添加一个未被跟踪文件的打印结果
在这里插入图片描述
在这里插入图片描述
Untracked files 表示文件未被跟踪
意味着 Git 在之前的快照中没有这些文件;
Git 不会自动将之纳入跟踪范围,除非你告诉它“我需要跟踪该文件”

将文件添加到git版本库

$ git add xxx

git add 命令使用文件或目录的路径作为参数,如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。
使用命令 git add 开始跟踪一个文件,即把文件加入到git版本库的暂存区,将此文件变为已跟踪;
被跟踪文件进入暂存状态,如果此时提交,那么该文件此刻的版本将被留存在版本库中。
在这里插入图片描述
Changes to be committed表示文件是已暂存状态,准备提交

暂存已修改文件

$ git add xxx

现在我们新建一个helloGit.txt文件,并通过add命令将其设置为被跟踪,然后再修改helloGit.txt文件内容。
在这里插入图片描述
Changes not staged for commit表示说明已跟踪文件的内容发生了变化,但还没有放到暂存区。
要暂存这次更新,需要运行 git add 命令
$git add这是个多功能命令:
1、可以用它开始跟踪新文件
2、把已跟踪的文件放到暂存区

现在helloGit.txt文件同时出现在暂存区和非暂存区,这怎么理解呢?
实际上 Git 只不过暂存了你运行 git add 命令时的版本,如果你现在提交,那么提交的版本是你最后一次运行 git add 命令时的那个版本,而不是在工作目录中的当前版本。所以,运行了 git add 之后又作了修订的文件,需要重新运行 git add 把最新版本重新暂存起来
在这里插入图片描述
在这里插入图片描述

将文件提交到git版本库

$ git commit –m “xxxxxxxxxxxxxxx”

使用命令 git commit把暂存区的文件提交到git版本库;
-m后面输入的是本次提交的说明,可以输入任意内容,最好是有意义的,这样你就能从历史记录里方便地找到改动记录
在这里插入图片描述
tips:在此之前,请一定要确认还有什么修改过的或新建的文件还没有git add过,否则提交的时候不会记录这些还没暂存起来的变化,这些修改过的文件只保留在本地磁盘。
所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了, 然后再运行提交命令 git commit
跳过使用暂存区域

$ git commit –a –m “xxxxxxxxxxxxxxx”

每次提交文件都需要git addgit commit,有没有更简单的方式呢?
给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
在这里插入图片描述
提交之前不再需要git add文件“helloDongnao.txt”了

忽略文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表(比如日志文件,或者编译过程中创建的临时文件等)

创建一个名为 .gitignore 的文件,列出要忽略的文件模式

$ cat .gitignore 
*.[oa] 
*~

第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。
第二行告诉 Git 忽略所有以波浪符(~)结尾的文件

tips:GitHub已经为我们准备了各种配置文件
https://github.com/github/gitignore

文件 .gitignore 的格式规范如下:

1 所有空行或者以 # 开头的行都会被 Git 忽略。
2 可以使用标准的 glob 模式匹配。
3 匹配模式可以以(/)开头防止递归。
4 匹配模式可以以(/)结尾指定目录。
5 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式
1、星号()匹配零个或多个任意字符
2、[abc]匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)
3、问号(?)只匹配一个任意字符;
4、如果在方括号中使用短划线分隔两个字符,表示所有在这两 个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)
5、使用两个星号(
) 表示匹配任意中间目录(比如a/**/z 可以匹配 a/z, a/b/z 或 a/b/c/z等)

查看已暂存和未暂存的修改

$ git diff  && $  git diff xxx

git diff 命令使用文件作为参数
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。
在这里插入图片描述

查看已暂存和版本库的修改

$ git diff –-cached(staged )  &&  git diff –-cached(staged ) xxx

要查看已暂存的的文件更新了哪些部分
此命令比较的是暂存区域快照和版本库之间的差异
在这里插入图片描述

移除文件

git rm命令使用文件或者目录的名字,也可以使用 glob 模式

$ git rm xxx

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。
可以用git rm命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。

简单地从工作目录中手工删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分(也就是 未暂存清单)看到
在这里插入图片描述
如果是简单地从工作目录中手工删除文件,那么删除文件之后要提交到仓库中的话就要先执行git add命令再执行git commit 命令才能提交到仓库中。
git rm xxx能直接删除本地文件并同步到暂存库中,下一次指令commit命令就可以同步到仓库中了。
在这里插入图片描述
把文件从 Git 仓库中删除,仍然保留在当前工作目录中,换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪,比如你忘记添加 .gitignore 文件,不小心把.class这样的编译生成文件添加到暂存区时,可以用如下命令

$ git rm –-cached xxx

重命名文件

$ git mv xxx1  xxx2

在这里插入图片描述
其实,运行 git mv 就相当于运行了下面三条命令:

$ mv README.md README 
$ git rm README.md 
$ git add README
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值