git的安装
点击 Dowanload 2.16.2 for Windows这个按钮就可以下载git了。下载好之后是一个Git-2.16.2-64-bit.exe文件,双击运行安装即可。
一、点击next
二、选择安装目录
三、选择要安装的git功能选项,默认即可
四、让你再启动菜单里面给git起个名字
五、
六、默认即可
七、无脑点击下一步
八、安装git完成
九、验证一下是否安装成功,打开windows命令行,输入git --version来验证
D:\>git --version
git version 2.16.2.windows.1
说明安装git成功。
git配置用户名和邮箱
git在windows上安装好之后,默认把git的选项集成在了右键的菜单之中:
点击git bash here,打开git的窗口,这个git窗口很类似linux的命令行,并且在这个窗口里面是可以执行部分linux的命令的,至于能够执行多少个linux命令,这取决于你安装git的时候的选择,如果你仔细阅读安装git的各个tab页的内容,是可以看到这部分的说明的,不过一般来说按照默认的选项来安装git就可以了。
打开git窗口,输入如下两个命令,用来配置以后git提交的用户名和邮箱:
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1
$ git config --global user.name ghzdw
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1
$ git config --global user.email zhaodwaiguoxue@163.com
使用git操作github命令演示
git的工作流程可以用如下的流程图来表示:
我们先来看两个例子,就用github来举例子吧,比如现在我在我的github账号ghzdw下面有个仓库叫做project1,project1这个项目只有两个文件:
我怎么把github上的project1下载到本地呢?本地新增或者修改之后又该如何提交到github上呢?别人更新并提交之后,我又该如何把别人更新的东西同步下来?你可能对svn比较熟悉一点,那么你就应该想svn应该有的操作,我用git该如何实现?
一、下载github上的项目:
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws
$ git clone https://github.com/ghzdw/project1.git
Cloning into 'project1'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.
可以看到,本地目录已经下载下来了:
二、把本地新增的文件test.txt放到本地的“暂存区”
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1 (master)
$ git add test.txt
三、提交到本地的git仓库
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1 (master)
$ git commit
输入git commit之后按回车,弹出如下界面:
这个界面是让你输入注释用的,你可以按如下操作:
shift+g:让光标跑到最后一行
字母o:新增一行
输入要填写的注释内容
按esc键退出vim的编辑模式
按shift+zz(按两次字母z)保存注释
按上面的流程操作后,git窗口退出这个vim编辑界面并提示如下信息:
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1 (master)
$ git commit
[master 4352299] 新增一个文件
1 file changed, 1 insertion(+)
create mode 100644 test.txt
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1 (master)
$
四、执行完了git commit之后,在自己的github上并不能够看到刚才commit的test.txt,安装开头给出的git的执行流程图,commit只是提交到了本地的仓库,要想提交到远程的git仓库,需要执行git push命令。
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1 (master)
$ git push
Username for 'https://github.com': ghzdw
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 337 bytes | 337.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/ghzdw/project1.git
457fa0d..4352299 master -> master
这时候在github上就可以看到test.txt了。
五、从github上同步别人的修改,比如其他人在project1下面加入了test2.txt,我本地怎么更新呢?使用git pull命令即可
zhao@idea-PC MINGW64 /f/Program/workspaces/gitws/project1 (master)
$ git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/ghzdw/project1
4352299..83d879b master -> origin/master
Updating 4352299..83d879b
Fast-forward
test2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 test2.txt
svn,git,GitHub,gitlab区别与理解
git说白了,就相当于我们的svn,它们都是版本控制工具,安装svn的时候我们安装的是subversion,安装之后可以创建仓库什么的,比如我在自己的电脑上安装了subversion,安装之后通过命令“svnadmin create /usr/svnrepos”创建了一个仓库,之后把自己的项目aa提交到了该svn仓库下面,之后通过路径"svn://localhost/aa"就可以访问了;git也是一样的道理,安装了git之后,也可以通过git的命令创建一个git仓库,把你的项目bb放到git仓库里面。
但是,有一个问题,不管是svn创建的仓库,还是git创建的仓库,不在一个局域网内的其他电脑都是无法访问的,这个时候要想实现让外网的电脑也能够访问你的git或者svn仓库,你只能把你的svn或者git安装在外网能够访问的机器上,关键在于外网能够访问的机器你是不是要花钱购买?比如你花钱买了个阿里云的机器作为自己的服务器,在上面安装了git或者svn,那么当然随处可以访问你的仓库了。关键在于你又不想花钱。
这时候GitHub这个东西就来了,这个GitHub就是一个网站,什么样的网站呢?让你在这个网站上申请了账号之后,可以在上面建立自己的git仓库,你在河南登录github官网建立了一个git仓库test,你到河北一样的可以访问,GitHub就相当于给你提供了免费的服务器来存放你的git仓库,以便让你在任何时候任何地方都能访问。但是svn就没有一个这样的东西,至少我没有用过,按对应关系来说svn应该也有一个类似叫做“svnhub”的东西来让我们创建svn仓库,以便随时随地能够访问,可惜没有咯,对应关系就是这样,我想说清楚了吧。
gitlab是什么呢?在GitHub上面创建的git仓库有个缺点,就是你的项目代码都是公开的,任何人只要访问GitHub都有机会看到,这对于视源代码如命的商业公司来说是万万不能接受的,gitlab的出现弥补了这个缺憾,gitlab功能跟GitHub完全一样,只是比github多了一个功能:免费的私有仓库。看到这里你也应该知道,GitHub上也可以建立别人不能看到的git仓库,只是要收费罢了。