git基础操作

48 阅读6分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

现在可能很少使用到git的命令行,都是借助工具进行通过可视化操作,但是有时候界面操作是很危险的,因为你可能不知道它内部执行了什么git命令,所以基本的命令行操作需要明白。在通过可视化界面操作git仓库的时候也要明白工具会干什么,相当于我们执行什么git命令。

help

对于所有的命令来说,死记硬背肯定是记不住的,所以学会使用git的帮助命令就很重要。介绍两种方式获取官方的命令帮助说明。

  1. 读取官方提供的文档或者书籍:点击前往
  2. 在命令行中执行具体的git help <command>或者git <command> --help,两种执行命令的方式都会打开command参数的详细介绍网页。

另外,推荐一个学习理解、练习git操作的网址:点击前往

clone(克隆)

通常的开发剧情的第一步都是:领导给了某个仓库的地址,让拉取代码下来先看懂,然后才有后续的接手开发。

clone命令用于克隆现有的git仓库,但是默认会克隆远程仓库中HEAD所处的分支。当想要克隆指定的分支是需要添加参数-b以及后面跟上具体的分支名字。这个分支名也可以是一个标签,当是一个标签的时候,会将标签对应的那一次提交记录下的所有文件克隆到本地。

命令描述
git clone <repository URL>克隆给定地址仓库到本地
git clone -b <branch name> <repository URL>克隆给定地址仓库的指定分支到本地
git clone -b <tag name> <repository URL>克隆给定地址仓库的指定标签对应的提交记录到本地

init

初始化一个本地git仓库。会将当前执行git init命令的目录初始化为一个本地的git仓库。

status(查看仓库状态)

这是一个非常重要的命令,当你没有git可视化工具协助的时候,这个命令可以帮助你查看哪些文件被修改还未加入暂存区,哪些已经加入暂存区,甚至它能告诉你需要怎样将文件加入暂存区,怎样移除暂存区,怎样忽略文件的修改。

image.png 图中四个括号从上到下的意思:

  1. 提示怎样来取消暂存(已经执行add加入暂存的)
  2. 怎样将修改的文件的修改加入下一次的commit
  3. 怎样在工作目录中忽略这个改变
  4. 怎样将未追踪的文件包括到下一次的commit中
命令描述
git status查看仓库文件详细状态信息

add(添加文件到暂存区)

不论是已追踪的还是未追踪(新增的文件,从未add过)的文件,都是通过这个命令加入暂存区。

命令描述
git add <file>将文件加入暂存区

commit(提交)

将暂存区的文件提交到本地仓库。

命令描述
git commit -m "提交描述(合理填写,方便他人理解)"将暂存区的文件提交到本地仓库

pull(拉取)

pull拉取命令会将本地仓库绑定的远程仓库中最新的提交记录拉取到本地仓库,但是还有存在多个远程仓库地址以及拉取指定的远程仓库数据的情况,这里就不作讨论了。

pull命令在拉取之后就会自动执行合并操作,也就是相当于fetch + merge,fetch是拉取远程仓库数据的命令,但是它不会将自动拉取的数据进行自动合并到本地仓库,通常用得很少。git pull默认的合并操作方式是merge,这种方式在基于某一个记录存在多个提交时(你的本地仓库有一个commit,远程仓库同事commit了一下,并push了),这其实就是相当于匿名分支的情况,merge合并会产生一个新的提交记录,不论两次提交的修改文件是否有冲突。这会使得提交记录看起来不够线性,你只是因为没有及时的pull而已,但是却导致提交记录多了一些莫名其妙的分叉。这种情况可以修改pull的合并方式为rebase来解决。配置方式,执行:git config --global pull.rebase true。也可以在执行pull命令的时候指定合并方式。

命令描述
git fetch从远程仓库拉取数据,拉取的数据会存放到本地仓库中的远程分支,当你准备好合并之后,可以执行git merge origin/<branch name> 将其合并到本地分支
git pull从远程数据库拉取最新的提交记录,但是执行这个命令会将拉取的记录与本地分支自动进行合并,也就是相当于:pull = fetch + merge
git pull --rebase从远程数据库拉取最新的提交记录,但是和直接pull的区别在于这个命令是使用的rebase进行合并,会使得提交记录更加线性,且不会产生新的提交记录

push(推送)

将本地仓库中的提交记录推送/同步到远程仓库。

命令描述
git push将本地仓库的提交推送到关联的远程仓库

log(查看提交历史信息)

查看本地的历史提交记录信息。log命令的参数非常的丰富,能提供各种格式的日志信息,下面列举了一些,通过命令查看日志信息的时候,命令行通常会根据屏幕能显示的内容多少列举出一部分日志信息,这个时候按下回车按键就可以继续查看其他的日志信息,按Q就退出查看日志信息。

命令描述
git log查看所有提交历史记录的提交说明、用户、时间简略信息
git show <SHA-1>查看某个版本的详细信息,SHA-1可以缩写,一般写前4个就能自动识别出来
git log --abbrev-commit参数--abbrev-commit可以在显示SHA-1值时显示最短缩写
git log --decorate可以显示包含标签资料的历史记录。
git log --reverse --oneline逆向单行显示历史提交记录。
git log --pretty=oneline单行显示历史提交记录。
git log --graph以图线形式显示提交历史记录,会显示版本冲突解决,合并信息。