前言
Git 是我们日常工作中使用频率极高的工具,各种指令让人眼花缭乱,今天,我们就在这里总结一下它的一些基本指令,算是做一份操作笔记吧。
基本指令
git add
把要提交的文件的信息添加到暂存区中。当使用 git commit 时,将依据暂存区中的内容来进行文件的提交。
它通常将现有路径的当前内容作为一个整体添加,但是通过一些选项,它也可以用于添加内容,只对所应用的工作树文件进行一些更改,或删除工作树中不存在的路径了。
“索引”保存工作树内容的快照,并且将该快照作为下一个提交的内容。 因此,在对工作树进行任何更改之后,并且在运行 git commit
命令之前,必须使用 git add
命令将任何新的或修改的文件添加到索引。
该命令可以在提交之前多次执行。它只在运行 git add
命令时添加指定文件的内容; 如果希望随后的更改包含在下一个提交中,那么必须再次运行 git add
将新的内容添加到索引。
1 | # 把指定的文件添加到暂存区中 |
git branch
操作 Git 的分支命令。
1 | # 列出本地的所有分支,当前所在分支以 "*" 标出 |
git checkout
更新工作树中的文件以匹配索引或指定树中的版本。如果没有给出路径 - git checkout
还会更新 HEAD
,将指定的分支设置为当前分支。
1 | # 切换到已存在的指定分支 |
git checkout
是 git 最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区。
git clone
将存储库克隆到新创建的目录中,为克隆的存储库中的每个分支创建远程跟踪分支(使用 git branch -r
可见),并从克隆检出的存储库作为当前活动分支的初始分支。
1 | # 默认在当前目录下创建和版本库名相同的文件夹并下载版本到该文件夹下 |
git commit
将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中。
1 | # 把暂存区中的文件提交到本地仓库,调用文本编辑器输入该次提交的描述信息 |
git config
主要是用来配置 Git 的相关参数,其主要操作有:
1 | # 查看配置信息 |
Git 一共有3个配置文件:
- 仓库级的配置文件:在仓库的
.git/.gitconfig
,该配置文件只对所在的仓库有效。- 全局配置文件:Mac 系统在
~/.gitconfig
,Windows 系统在C:\Users\<用户名>\.gitconfig
。- 系统级的配置文件:在 Git 的安装目录下(Mac 系统下安装目录在
/usr/local/git
)的etc
文件夹中的gitconfig
。
git diff
用于显示提交和工作树等之间的更改。
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。
1 | # 比较当前文件和暂存区中文件的差异,显示没有暂存起来的更改 |
git fetch
从远程仓库获取最新的版本到本地的 tmp 分支上。
1 | # 将远程仓库所有分支的最新版本全部取回到本地 |
git init
初始化项目所在目录,初始化后会在当前目录下出现一个名为 .git 的目录。
1 | # 初始化本地仓库,在当前目录下生成 .git 文件夹 |
git log
显示提交的记录。
1 | # 打印所有的提交记录 |
git merge
用于将两个或两个以上的开发历史加入(合并)一起。
1 | # 把指定的分支合并到当前所在的分支下,并自动进行新的提交 |
git mv
重命名文件或者文件夹。
1 | # 重命名指定的文件或者文件夹 |
git pull
从远程仓库获取最新版本并合并到本地。
首先会执行 git fetch
,然后执行 git merge
,把获取的分支的 HEAD 合并到当前分支。
1 | # 从远程仓库获取最新版本。 |
git push
把本地仓库的提交推送到远程仓库。
1 | # 把本地仓库的分支推送到远程仓库的指定分支 |
git remote
操作远程库。
1 | # 列出已经存在的远程仓库 |
git reset
还原提交记录。
1 | # 重置暂存区,但文件不受影响 |
git revert
生成一个新的提交来撤销某次提交,此次提交之前的所有提交都会被保留。
1 | # 生成一个新的提交来撤销某次提交 |
git rm
删除文件或者文件夹。
1 | # 移除跟踪指定的文件,并从本地仓库的文件夹中删除 |
git status
用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被 Git tracked 到。
1 | # 查看本地仓库的状态 |
git status
不显示已经commit
到项目历史中去的信息。看项目历史的信息要使用
git log
。
git tag
操作标签的命令。
1 | # 打印所有的标签 |
~
~ 本文完,感谢阅读!
~
学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!
我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!
你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!
知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!