• 佛系笔记系列是不求深究,只求会用的粗暴总结。

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。