初识
小结
初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
使用命令git add <file>,注意,可反复多次使用,添加多个文件; 使用命令git commit -m <message>,完成。 3. 要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用
git diff可以查看修改内容。HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit_id。穿梭前,用
git log可以查看提交历史,以便确定要回退到哪个版本。要重返未来,用
git reflog查看命令历史,以便确定要回到未来的哪个版本。
正文
参照廖雪峰的git教程学习,感谢廖雪峰老师的教程。 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
git是分布式版本控制系统之一,直接在官网上下载安装
进入目录 比如d/WeiLai/Onedrive/study/git,然后git bash here,输入pwd显示当前目录。
输入 git init命令把这个目录变成Git可以管理的仓库 提示Initialized empty Git repository in D:/WeiLai/OneDrive/study/git/.git/ 当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的 这个目录默认是隐藏的,用ls -ah命令就可以看见
目录中新建一个文件 readme.md ,内容如下:
Git is a version control system. Git is free software.
git add readme.md 用git add把文件添加到仓库 git commit -m "wrote a readme file"用命令git commit把文件提交到仓库("wrote a readme file"本次提交的说明)
为什么Git添加文件需要add,commit一共两步呢? 因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
git add file1.txt git add file2.txt file3.txt git commit -m "add 3 files."
对readme.md进行修改如下:
Git is a distributed version control system. Git is free software.
修改readme.md后,输入git status命令可以让我们时刻掌握仓库当前的状态。(可以查看到readme.md被修改但未提交。)
使用 git diff命令查看具体修改内容,git diff readme.md
查看完后(同前面),可通过git add(添加) ,git status(查看当前状态),git committ(提交)。
再次对readme.md进行如下修改:
Git is a distributed version control system. Git is free software distributed under the GPL.
然后尝试提交:
readme.md文件一共有3个版本被提交到Git仓库里了:
版本1:wrote a readme file
Git is a version control system. Git is free software.
版本2:add distributed
Git is a distributed version control system. Git is free software.
版本3:append GPL
Git is a distributed version control system. Git is free software distributed under the GPL.
也用git log命令查看历史记录(git log命令显示从最近到最远的提交日志)
使用git log --pretty=oneline只显示commit id 和提交说明
在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD\^,上上一个版本就是HEAD\^\^,往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
当前版本append GPL回退到上一个版本add distributed,可以使用git reset命令:
readme.md已被还原成第2个版本
git log再看看现在版本库的状态
第3个版本已经没有了,找到那个append GPL的commit id是d730a...,于是就可以指定回到未来的某个版本:
版本号不用写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
再查看readme.md的内容:
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL:
改为指向add distributed:
然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。
当你用git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:
Last updated
Was this helpful?