从0开始学Git指令
因为网上的git文章优劣难评,大部分没有实操展示,所以打算自己从头整理一份完整的git实战教程,希望对大家能够起到帮助!
初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
- 使用命令git add ,注意,可反复多次使用,添加多个文件;
- 使用命令git commit -m ,完成。
- 我们开始修改test1.txt文件,向里面添加一些内容(初始时是空)
现在,保存之后运行git status
命令看看结果:
根据提示现在我们有俩种选择:
git add
: 添加到暂存区git commit -a
: git commit -a 命令表示将所有已经跟踪的文件的修改一起提交到版本库中。这个命令会自动将所有已经跟踪的文件的修改添加到暂存区,然后提交这些修改。这样就可以省略git add命令,直接提交所有已经跟踪的文件的修改。
Git告诉我们tet1.txt被修改了,但不知道具体修改了什么内容,想要清楚的知道的话,需要用git diff这个命令看看:
可以很清楚的看到添加了一句自我介绍~
接下来使用上面提到的俩种选择将修改提交到2版本库中
git add
: 添加到暂存区
(git add .
):之前提到的是将所有文件都添加到暂存区,这次指定文件名称
让我们看看status的状态变化:
- 提交到版本库
2.git commit -a
: git commit -a 命令表示将所有已经跟踪的文件的修改一起提交到版本库中。这个命令会自动将所有已经跟踪的文件的修改添加到暂存区,然后提交这些修改。这样就可以省略git add命令,直接提交所有已经跟踪的文件的修改。(我们继续修改一下test1.txt文件)
要随时掌握工作区的状态,使用git status命令。
使用git commit -a
直接提交
如果我们现在想知道我们之前每一次都在test.txt提交修改的内容,我们可以使用git log
命令查看:
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:
如果现在2023年了,php是世界上最好的语言? 我不敢苟同,Java永远的神,所以我想回退到在test1.txt添加;自我介绍的那个版本,需要怎么做?
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
git reset --hard 命令中的 --hard 表示重置的模式。在这个模式下,git会重置暂存区和工作目录到指定的提交,同时丢弃所有未提交的修改。这意味着任何未提交的修改都将被永久丢弃,包括工作目录中的所有文件的修改和暂存区中的内容。
让我们使用git log命令再次查看:
可以发现最新的版本已经没有了,将来的某一天,php死灰复燃 浴火重生,想要回退到之前那个怎么办,(有人说,修改txt文件呀),我不愿意~,我就要回退
办法其实还是有的,只要上面的命令行窗口还没有被关掉,我们可以找到前面的commit id
我们再次使用 git reset --hard
果然,我PHP又回来了。
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,也只是改变了Git中HEAD的指向
现在,你回退到了某个版本,关掉了电脑,git窗口关闭,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
我们必须找到PHP的commit id
,Git提供了一个命令git reflog用来记录你的每一次命令:
我们就找到了添加全世界最好的语言的commit id
总结一下:
初始化一个Git仓库,使用git init
命令。
添加文件到Git仓库,分两步:
使用命令git add <file>
,注意,可反复多次使用,添加多个文件;
使用命令git commit -m <message>
,完成。
要随时掌握工作区的状态,使用git status
命令。
如果git status告诉你有文件被修改过,用git diff
可以查看修改内容。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。
穿梭前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本。