目录
git是一个强大的分布式版本管理软件,可以在实现离线版本控制,现在一步一步来学习git,首先是离线的状态下本地的使用
1. 添加用户名
想要使用git,必须先要注册远程仓库,假设我们在github上注册了一个用户
记住用户名、邮箱
这里需要注意的是,现在注册github可能会需要科学上网,登录倒不用
定位到当前工作目录下(或者直接在文件夹下点右键,选Git Bash Here),假设该路径包含已经包含了一个c文件(hello.c)
然后做以下操作(添加全局用户)
git config --global user.name "aimxu" # 添加github用户名
git config --global user.email "aimxu@qq.com" # 添加github邮箱
【注】
如果不用 --global 参数就只是在本项目中添加用户;
但是如果已经建立了全局用户,必须现在该目录下去掉全局用户
git config --global --unset user.name # 取消在该目录下全局用户名 git config --global --unset user.email # 取消在该目录下全局邮箱 git config user.name "josh-aimxu" # 在当前目录下创建用户 git config user.email "liaoganzhou@gmail.com" # 在当前目录下创建邮箱
使用 git config -l 命令可以查询当前的用户等信息
2 初始化本地git
当前文件夹是空的,需要进行初始化
git init # 初始化git
注:执行该语句后,会出现.git文件夹
这是一个隐藏文件,包含了git的所有信息,非常重要,一定不能删除。
3 第一次版本管理
首先看一下下面的图片,这是git的一般流程
工作区(work space)就是我们电脑里关于用git管理的文件夹
暂存区(staging)是在本地电脑中,上传拿到本地仓库前,暂时存放将要改变的代码的区域
本地仓库(local repository)是在本地电脑中,存放已经确定修改好的代码的区域
远程仓库(remote repository)是在网络上,存放代码的地方
在后面的课程里能看到以上所有的名词。
3.1 上传代码到暂存区
此时我们写了一个c代码文件,hello.c
使用git add语句,可以把代码上传到暂存区
git add hello.c # 上传代码到暂存区 staging
3.2 查看状态
可以利用 git status 命令来查看工作区和暂存区里的区别
git status
如果没有特别的输出,则现在的暂存区和工作区是一样的
如果有消息,则暂存区和工作区不一样(出现红色的字样)
这时候我们要怎么做?
可以先查看文件的不同
git diff
绿色那一行就是工作区和暂存区的区别,可以看到,好像说错话了!
此时两个方式:
- 直接添加文件到暂存区,更新代码(等着被会法伺候)
- 从暂存区恢复文件(我还想多混两年)
git restore hello.c # 如果工作区和暂存区不一样,可以从暂存区恢复文件到工作区
【注】
或者使用checkout也可以,但是不是推荐用这个命令,后面我们会讲到v
git checkout hello.c # 如果工作区和暂存区不一样,可以从暂存区恢复文件到工作区
一切如常
3.3 上传到本地仓库
代码写的差不多了,应该可以上传到本地仓库了,这时可以使用命令
git commit -m "my first git"
-m 参数表示message的意思,给上传的时候添加相应的说明
这是使用git log命令,可以看到历史上传的版本
不错,算是完成了第一次版本管理。
4 版本回退
一切如常,突然有一天手痒
还手贱
此时该怎么办?
没关系,用版本回退就可以了,所谓版本回退,就是可以把本地仓库中最新的版本下载到暂存区里。
git reset HEAD hello.c # 把“最新的”远程仓库版本拉到暂存区
git restore hello.c # 把暂存区中的文件拉回到工作区
好了, 又回来了
但是!如果不幸手抖,来了, commit了 !
查看log,发现。。。
不用慌,我们还是可以回退版本的,把本地仓库回退到之前的版本,在这里是“my first git”那个版本
git reset --hard "bbd9fd8887eb17eb6e4e113183517de895cbde0a"
查看一下log,这是原来的胡话没有了,但是,后面那一长串是什么鬼?
后面的数字是在commit的时候,系统根据本机和时间,自动生成的唯一的版本码,表示该版本,指导这些码,就可以随时在远程仓库中回退任何版本。
如果最后还是要最新版本(和会长杠上了),也是可以的,前提只需要知道最新的版本码就可以了,但是后果。。。。
算了,不折腾了。
除了注册github用户,以上全部操作都可以直接在本地电脑中完成!