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之类的可能还要用户名密码登录:

git分布式版本控制系统常用的操作的更多相关文章

  1. 关于git(分布式版本控制系统)的一些操作和命令

    很久没上博客写东西了,今天闲着无聊就不想敲代码,所以看了看有没有一些好玩的东西,这不让我发现了git这个源代码版本控制工具,话不多说,就让我来简单的分享一下它的一些操作和命令以及命令所执行的含义吧! ...

  2. GIT分布式版本控制系统

    Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux ...

  3. 手把手教你玩转Git分布式版本控制系统! (转载)

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 Git诞生历史 ...

  4. 手把手教你玩转Git分布式版本控制系统!

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历 ...

  5. 《Linux就该这么学》自学笔记_ch21_使用Git分布式版本控制系统

    <Linux就该这么学>自学笔记_ch21_使用Git分布式版本控制系统 文章主要内容: 分布式版本控制系统 使用Git服务程序 提交数据 移除数据 移动数据 历史记录 还原数据 管理标签 ...

  6. Git ——分布式版本控制系统

    Git ——分布式版本控制系统 本人git主页地址:https://github.com/lendoon/test.git git使用心得:初次接触git在课堂上,老师给我们提供了一个代码托管的场所, ...

  7. g4e基础篇#2 Git分布式版本控制系统的优势

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  8. GIT 分布式版本控制系统的简单使用介绍

    GIT 分布式版本控制系统的简单使用介绍 1.GIT的概念Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 与 SVN 区别:1. GIT不仅仅是个版本控制系统,它 ...

  9. 开发效率优化之Git分布式版本控制系统(一)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从Git分布式版本控制系统来阐述开发效率优化 一,企业 ...

随机推荐

  1. 语文,数学,ps

    数学教2课以集合为主. 集合:是指具有某种特定性质的具体的或抽象的对象汇总成的集体,这些对象称为该集合的元素. 特点:确定性给定一个集合,哪些对象是这个集合元素,不允有模棱两可的情况.互用性任何两个元 ...

  2. SpingCloud微服务架构学习(二)之Actuator监控

    我们那我们之前编写的服务提供者为例,为项目添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId& ...

  3. Postman工具——下载与安装(转)

    https://blog.csdn.net/water_0815/article/details/53263643 今天给大家分享一款工具,好的工具能够让开发更高效,有时能成倍地提高.接下来会分几篇来 ...

  4. html+css杂记

    overflow可设置超出后隐藏 子元素撑开父级元素:①父级元素宽度不固定,②父级元素设置为inline-block或者添加float: html中的中文在浏览器打开为乱码(已经写了<meta ...

  5. jQ中css()和addClass的区别之优先级

    笔者在实现点击表格中某行添加高亮的效果时,发现一个css()和addClassd()的冲突,具体代码如下: <style> .se { background:#FF6500; color: ...

  6. 时域反射计(TDR)原理与应用

    [施工编辑中...] 1. 什么是TDR? TDR = Time Domain Reflectometry 时域反射计TDR用来测量信号在通过某类传输环境传导时引起的反射,如电路板轨迹.电缆.连接器等 ...

  7. jQuery-prepend、append、before、after的区别

    举例说明,原始html代码如下: <ol> <li>List item 1</li> <li>List item 2</li> <li ...

  8. html中如何使用python屏蔽一些基本功能

    进行数据解析的理由不计其数,相关的工具和技巧也同样如此.但是,当您需要用这些数据做一些新的事情时,即使有“合适的”工具可能也是不够的.这一担心对于异类数据源的集成同样存在.用来做这项工作的合适工具迟早 ...

  9. 古老的pike

    快速略读了一下源码,记了一些东西. 先看看mapping mapping其实就是C++中的multimap,但是支持更多. array values(mapping).这个方法可以返回所有mappin ...

  10. 笨办法学Python(一)

    习题 1: 第一个程序 你应该在练习 0 中花了不少的时间,学会了如何安装文本编辑器.运行文本编辑器.以及如何运行命令行终端,而且你已经花时间熟悉了这些工具.请不要跳过前一个练习的内容直接进行下面的内 ...