- 佛系笔记系列是不求深究,只求会用的粗暴总结。
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。