创建一个本地共享仓库
首先我们要知道一下git要求共享仓库是一个以.git结尾的目录。
所以我们第一步先新建一个这样的目录
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库 |
这样就建好了一个共享的仓库,但这时这个仓库是一个空的仓库;其实在远端的也是这个原理,比如我们在github上初始化了一个仓库,也相当于这里的repo.git
,这样接下来就可以把它当成一个远端来进行了
创建一个本地的测试仓库
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/repo.git (BARE:master) |
创建一个test1测试目录
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库 |
创建一个test1测试目录
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库 |
创建一个demo01.js文件,touch
是bash
操作命令,可以创建一个文件
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 |
通过vi编辑器简单编辑了一下,当然你也可以拿一个现成的文件
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 |
通过cat查看文件里的内容
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 |
将test1这个测试目录初始化一下,以便进行git相关操作
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 |
将test1中的文件提交到缓存区
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 (master) |
提交一下描述信息
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 (master) |
推送到本地模拟的共享仓库 repo. git
的master
分支当中
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 (master) |
回退到上一级
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 (master) |
将repo. git 克隆到test2当中,因为目录当中没有test2这个目录,会直接新建一个test2目录
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库 |
进入到test2目录当中
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库 |
通过ls
命令列出test2目录,可以看出里面已经有d emo01.js这个文件了,也就是已经复制过来了
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test2 (master) |
通过vi编辑器打开 demo01.js文件,进行了一下修改,添加了“在test2中进行了内容修改”这样一段话
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test2 (master) |
可以通过git status
来查看一下当前的文件状态
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test2 (master) |
将更改的demo01. js文件添加到缓存区
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test2 (master) |
提交一下描述信息
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test2 (master) |
将其推送到 repo. git
的master
分支当中
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test2 (master) |
进入到test1目录
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库 |
从共享仓库中将内容拉回来
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 (master) |
再次查看现在的demo01. js,你会发现在test2中修改的内容已经在test1中了
1 | 92816@MrLiu MINGW64 ~/Desktop/在本地模拟远程仓库/test1 (master) |
结语
这样就实现了test2中的修改能够在test1中体现出来了,也就是达到了同步的效用,其实在项目当中,这里模拟的共享仓库就是服务器上部署的仓库,步骤也都差不多,就是不管你哪一个人在自己的本地仓库中进行的修改,你通过git add .或者文件名
现将其到缓存区,然后在git commit -m 描述信息
,然后再git push ../repo.git/ master
就能推送到远端了,这样另一个同事只需要git pull ../repo.git/ master
就可以将这个共享仓库中改变的部分拉下来,实现同步功能,总归来说,一般我们用的远端仓库只不过是放在服务器上,可以从外网访问而已。
注意点:我们如果想要利用git进行版本控制,就一定注意需要将现有项目初始化为一个仓库,也就是通过
git init
或者将一个已有的使用git进行版本控制的仓库克隆到本地git clone 仓库地址
,其实这个也不难理解,只有这样git才能知道它要操作的文件,以后就直接可以使用git的相关命令了