共计 1514 个字符,预计需要花费 4 分钟才能阅读完成。
- 佛系笔记系列是不求深究,只求会用的粗暴总结。
GIT
今天请大家来和我一起背命令~~
创建
在项目的目录下执行 git init
即可将项目变为 git 项目。目录下会创建.git 文件夹。用来管理项目。
添加文件至仓库
提交文件要执行两个动作:
git add
修改了的文件先用git add < 文件名 >
, 把文件添加到仓库。
git commit
添加到仓库之后,git commit < 文件名 >
把文件提交到仓库。注意在使用 commit 时,git commit < 文件名 > -m "xxx"
- m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。执行之后会返回显示多少文件改变了。
查看状态
git status
git status
命令可以让我们知道目录中文件与仓库中的差别。可以知道什么被修改过了,但还没有准备提交的修改。
git diff
git diff
可以看到被修改的文件,具体被修改了哪一行。
查看日志
git log
git log
可以看到三次提交记录,和对应的版本号。加上 –pretty=oneline 参数可以让结果更简约。
git reflog
git reflog
记录了你的每一次命令,包括 reset 的动作。
指针
如果把 git 的厉害记录看成是一个钟表,我们现在所在的位置就是指针指向的位置。git 中的指针是 HEAD。用 HEAD 表示当前版本,也就是最新的提交 1094adb…,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个 ^ 比较容易数不过来,所以写成 HEAD~100。
git reset
git 给了我们时光倒流的机会。我们可以改名 git 的 HEAD 的指向。用 git reset
可以倒退指针,如回到上一个版本。
git reset --hard HEAD^
远程仓库
我们电脑本地的目录只存在本地,通过远程仓库(github,gitlab 等)可以实现多人(多设备)之间协调修改项目。
git remote
可以用 git remote
把本地项目关联到远程仓库中。
git remote add origin < 地址 >
git push
用 git push
命令,可以把当前分支 master 推送到远程。对于新建的项目,远程仓库是空的,在第一次 push 的时候如果带上-u
。不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。
git clone
如果想要从远程仓库中克隆项目到自己本地中,可以用git clone < 地址 >
, 即可。
分支
如果把 git 的记录看成时间线,分支就是从一个点开始分出的平行宇宙。各个分支之间互不影响。在未来的某一点可以让分支合并。
在 git 中主分支默认叫做master
。
git branch
git branch < 分支名 >
,创建新分支。git branch
会显示所有分支git branch -d dev
会删除指定分支
git checkout
git checkout
用作创建或者切换分支。
git checkout -b dev
带上 -b
表示创建并切换.
* 另外 git checkout -- < 文件名 >
还可以撤消文件的修改,至当前仓库版本的内容。
git switch
git switch < 分支名 >
用 switch 更加严谨,也是新版本推荐的。加上-c
,创建和切换
git merge
git merge 命令用于合并指定分支到当前分支
总结
现在其实有很多 git 的可视化工具,很多也做得很好。我们为什么还要用命令来玩 git 呢?第一,可以装逼。第二,假如我们在开发一个线上正在用的项目。如果通过 git 来给线上更新,可以省去不少麻烦,出了问题还可以 reset 一下。毕竟服务器一般没有 ui。