Git是一个版本控制系统,用来追踪计算机文件的变化的工具,也是一个供多人使用的协同工具。它是一个分布式的版本控制系统,本文将简单介绍如何使用。简单来说,就是你要和你的伙伴一起完成一项任务,但是你们要互相交换修改,查看自己的历史版本等。版本控制系统就是帮助我们做这个的。
网上一堆教程,难得讲得清楚的。这里也不废话介绍原理之类的,直接说明如何使用。由于Git是一个分布式文件控制系统,所以一般采用一个服务器方便大家交换修改用的。每个人本地都有一个版本库,保存自己的历史版本,然后每个人可以把自己的修改提交到服务器上,被人就可以获取你的修改了。因此,Git的版本库(Repository)对于每个人来说有两个,一个是远程的,一个是本地的。这篇博客就是描述怎么从远程服务器克隆版本到本地,以及如何分享本地修改到远程的。
一、从远程仓库中下载到本地
这个就是说我在远程服务器(或者是GitHub上公开的项目)的有一个项目,并且该项目是放在了类似GitHub的版本控制系统上,例如我们自己在一个远程的Linux上搭建了GitLab服务然后供大家使用(GitHub是免费的公开的项目分享,可以搭建私有的库,但是私有库是收费的,所以一般大家自己有服务器就在自己服务器上安装一个GitLab服务就好了)。现在GitHub或者是我们自己的GitLab上有个项目,并且我们也是有权限访问的,那么这小节介绍的就是如何把远程项目导入到本地。
1.1、首先打开git的界面(一般git都是用命令操作比较多,安装好git之后,打开git.bash就可以了)之后设置一下全局变量(也就是你访问git时候的用户名和邮箱了),如果是公开的项目可以省略这一步。
1. git config --global user.name "dufei"
2. git config --global user.email "dufeizj@163.com"
1.2、进入你想把项目存到本地的位置,比如我想存到本地D盘的GitTest文件夹中,那就使用Git.bash进入到这个文件夹(没有就创建一个),然后执行"git init"初始化这个文件夹(也就是在这个文件夹下创建一个.git文件夹,将一些配置信息放进来)
1. cd d:/gittest
2. git init
如下图所示
1.3、找到你想克隆到本地项目的远程仓库地址,例如我想从GitHub上拷贝我的WebTemplate项目到本地,那么就执行git clone命令:git clone 如下图所示
接下来等一会这个项目就会克隆到本地了。查看一下本地就能看到这个项目了。接下来就可以基于这个项目进行开发了。
二、将本地已有项目分享到远程仓库中
这小节就是说你远程已经建立了一个空的仓库,现在需要把本地的某个项目分享到远程的仓库中。
2.1、打开终端,然后进入你项目所在的目录,执行如下命令,对目录初始化,这样就会在这个项目的文件夹下多了.git文件夹了,和上面类似。
1. cd d:/gittest/WebTemplate
2. git init
2.2、将当前项目下所有的文件添加到本地的git仓库的暂存区(如果只想共享一部分,那就不用.,就把对应的文件或者文件夹列出来就行,这里用add表示将当前文件放到暂存区,其实并没有提交)
1. git add .
2.3、接下来提交暂存区文件到本地仓库,使用git commit命令,后面-m表示message,意思是提交本次修改的信息。
1. git commit -m "inital commit"
2.4、将本地库与远程库进行关联,这时候假设你在远程库上已经有了一个仓库,比如我的WebTemplate项目的远程地址就是: ,那么关联操作命令如下:
1. git remote add origin https://github.com/df19900725/WebTemplate.git
这里git remote表示对远程仓库的操作,origin是远程仓库本体(默认分支名称),add表示将远程的库加入,也就是关联的操作,接下来我们使用git remote -v命令查看关联结果发现已经关联上了:
1. git remote -v
如下图所示
2.5、最后把本地文件进行提交即可
1. git push origin master
git push表示提交代码的意思,origin表示远程的分支名称,master表示本地分支名称,上面代码就是说把本地的master分支推送到远程端,操作之后可以在远程看到了。
三、从远程仓库更新本地文件
多人协作开发的时候,每次开发前第一步是从远程将别人提交的修改更新到本地,因为如果你不更新直接编程会导致自己的版本号比远程新,特别容易造成冲突。所以一般先更新再提交修改。从远程更新时候第一步先查看一下远程的分支情况,然后将指定的分支更新到本地。
3.1、查看远程分支
1. git remote -v
如下图所示
我们看到远程只有一个origin分支,那么我们直接根据这个更新就可以了。
3.2、将远程修改更新到本地
git fetch origin master
前面说过origin是远程仓库分支,master是本地分支,所以这个命令就是将远程分支更新到本地。
3.3、合并远程与本地
1. git merge origin/master
远程修改更新到本地之后要做merge操作才能看到最终修改。
当然git fetch -> git merge 操作可以使用git pull代替。这样只要执行一步就好了。
git pull
四、将本地修改提交到远程
提交本地修改到远程三步,第一步是add文件,表示要提交修改的文件,第二步commit代码到暂存区,第三步push代码到远程仓库,其实在第一小节我们已经说过了。
1. git add README.md
2. git commit README.md ‘test‘
3. git push origin master
如果是提交GitHub之类的可能还要用户名密码登录: