在上一篇文章 什么是Git 中,简单介绍了下什么是 Git,这篇文章再简单的整理几个 Git 的入门命令。
喜闻乐见的一张图:
- workspace:本地工作目录。
- Repository:本地仓库。
- Remote:远程仓库。
- index:可以把它理解为一个缓冲区,我们先批量的把文件放到这个
index
中,然后commit
的时候再一次性的把index
中所有的文件提交到本地仓库,像不像 Java 中的 BufferedWriter?
Git 的几个常用的命令
-
git init
:在当前的目录初始化一个本地仓库,其实就是创建了一个隐藏文件.git
,你在该目录下对文件做出的修改都放在这个文件夹里面,如果是 Linux 操作系统的话,直接ls -al
就可以看到这个隐藏文件,然后 ````cd .git`` 就可以进去研究研究 Git 是如何实现版本控制的。 -
git status
:查看当前工作目录里面的文件的状态,是否添加到 index 中,是否被修改过等等。
解释:目前处于主分支(分支的知识后续会整理),3.txt 这个文件还没有被追踪,意思就是说这个文件还没有被add
到 index 中,针对放到 index 中的文件所作出的修改才可以被 Git 侦测到。 -
git add
:将处于 workspace 中的文件添加到 index(缓冲区,暂存区)中。
添加到 index 中之后再执行git status
命令时状态就变成了:3.txt 这个文件可以被提交到 Repository(本地仓库)。 -
git diff
:查看已经提交到 index 中的文件发生了哪些变化,例:git diff 3.txt
解释:+abc
表示添加了一行,内容为 abc。
注意:如果这个 3.txt 文件没有add
到 index 中,那么 git 的这个命令是侦测不到这个文件发生了哪些改动的。 -
git checkout -- <file>
:当你发现你新修改的论文还没有原来的版本好,想取回原来的版本,就用这个命令。取回本地仓库中的<file>
文件,当前在 workspace 中对<file>
文件作出的修改将被覆盖。 -
git commit
:将 index(暂存区)中的文件提交到本地仓库,直接输入这个命令将会进入 vim 编辑器:
vim 编辑器不是 Linux 里面的?是的,我们在官网下载的 Git 是可以在安装的时候指定使用 vim 编辑器来做为编写 commit 的 summary 时的文本编辑工具的,还有,你也可以直接在 Git Bash 的窗口中输入一些常用的 Linux 命令,例:ls -al
,touch 1.txt
,mkdir empty
这一点给习惯了 Linux 操作系统的用户以极好的体验。 -
git commit -m"message"
:这个命令和上一个命令的作用是相同的,不过我们不需要进入 vim 编辑器了,直接将 message 替换我们此次提交的总结就可以了。 -
git commit -am"message"
:对于已经提交到 index 中的文件,如果我们在 workspace 中又对该文件做出了修改,想 commit 的时候将修改同步到 Repository 必须先把在 workspace 中做出的改动 add 到 index 中,这样 commit 才能将 workspace 中的改动提交到 Repository,否则,不 add 的话,提交的只是 index 中的内容,在 workspace 中做出的修改并没有同步。
想要一步到位,怎么办?
就用上面的命令:-a
其实就是 add 的意思。
-
git reset HEAD <file>
:将 file 从 index 中撤回 workspace。 -
git log
:可以猜得出来,是查看你向本地仓库提交了哪些内容。
注:提交的时间自上而下是越来越早的。 -
git config user.name "xxx"
:配置当前这个项目的用户名为 xxx,主要用于提交到 GitHub 远程仓库的时候指定是哪个账号。 -
git config --global user.name "xxx"
:配置当前登录操作系统的这个用户的用户名为 xxx。(建议使用) -
git config --system user.name "xxx"
:配置整个系统的用户名为 xxx。(不建议使用,如果是 Linux 系统,因为 Linux 系统是多用户多任务的,所以一旦配置了这个选项,那么所有登录进系统的用户提交代码的时候都是以这个 username 的身份提交了)上面的三种配置方式就是 git 配置的三种级别了:
local 默认 以项目区分 global 全局 以用户区分(建议使用) system 系统 以系统区分(不建议使用)
-
git config --list
:查看我们在 git 中配置的所有内容。