与远程仓库交互
-
同步远程代码
一个远程仓库有可能有多人有权限推送,所以存在远程代码比你本地仓库更新,因此在提交代码之前需要先拉取服务器代码,让本地仓库保持最新的版本记录;这样做的目的是为了防止当你提交代码之后,推送到远端出现代码冲突问题,拉取远程代码参考命令如下所示:
git pull
在终端执行完命令之后,如果有代码更新,返回的信息如下图所示:
可以看到新增了一个文件。
-
检查改动文件
当远端最新的代码拉下来之后,最好通过
git status
命令检查一下有哪些文件被改动了,参考命令如下所示:git status
显示的信息一般会有以下几类:
- Untracked: 未跟踪,一般为新增文件,此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
- Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.
- deleted: 文件已删除,本地删除,服务器上还没有删除.
- renamed:文件名称被改变
如果发现无意中编辑了某一个文件,但实际上并不想改变它,这里可以使用
git checkout 文件名
来撤销更改,参考命令如下:git checkout README.md
-
添加文件到缓存
可以使用下面的命令将文件添加到缓存当中:
git add [文件名] #会将单独的文件添加到缓存当中 git add . #会将所有文件添加到缓存当中
-
提交代码
当你将所需要提交的代码都添加到缓存区域后,接下来就可以将代码提交到本地仓库中,参考命令如下所示 :
git commit . -m “这是备注信息”
上方命令中的
.
是代表选择所有的文件或目录,你也可以提交指定某一个文件,将.
换成相应的目录或文件名即可。 -
推送代码
当代码提交之后,在本地的工作就已经完成了,此时为了让其他人拉取你的代码,通常还需要将代码推送到远程仓库,这里我告诉大家最简单的方式,参考命令如下:
git push
查看修改信息
-
工作区和暂存区
工作区,指的是当前正在编辑的文件,还没有修改的内容通过
git add
命令暂存起来。暂存区,指的是文件修改之后并且通过
git add
命令临时存储到版本记录里了,但还没有正式通过git commit
提交的阶段。 -
比较工作区的变动
对工作区的文件进行了编辑修改以后,可以通过如下命令检查修改的信息:
git diff
执行命令之后,绿色部分代表增加的内容,红色部分代表删除的内容。
-
比较暂存区变动
有些时候,可能已经通过
git add
命令,将某些文件从工作区添加到暂存区,但又想回过头,来看此文件刚才改动过哪些内容的场景,这个时候,如果想要看文件里面修改了什么内容,就不是再把工作区和暂存区进行对比了【此时使用git status
命令只能看到文件做了改动,但并不知道改动了哪里,使用git diff
命令后并不能看到任何信息】,而是需要把暂存区与版本库最近一次 commit 的内容进行比较,参考命令如下:git diff --cached [文件名]
-
与指定记录比较
有些时候,可能需要代码和历史的某一个版本进行比较,这个时候可以先通过
git log
命令,找到历史提交记录的一个 hash 值。 -
工作区比较
将要比较的 hash 值复制下来,然后执行如下所示命令:
git diff [hash值]
-
暂存区比较
有些时候,想把暂存区的改动和指定记录进行对比,那么在命令中加入
--cached
即可,参考命令如下:git diff --cached [hash值]
-
与最新版本库比较
很多时候,只需要将未正式提交的代码(包含工作区与暂存区)与最新的 commit 记录进行比较,虽然也可以通过指定 commit 的 hash 值进行,但是却很不方便,需要先获取到 hash 值,可以使用一个简单的方法,可以通过
git diff HEAD
命令方式快速对比,参考命令如下:git diff HEAD
-
比较两个历史记录
有时候,可能会需要查看某一次提交记录修改了什么内容,这个时候就需要将两个历史记录进行比较;首先通过
git log
命令获取到需要查看的记录 hash 值,然后再找到这个记录的上一个版本的 hash 值,拼接的参考命令如下所示:git diff [hash值1] [hash值2]