强大的分布式管理工具-Git(一)

  前言:最近忙着写项目,在期间呢,用的是git管理,由于一个项目的管理是很重要得,所以整理了一篇关于git得博客跟大家分享一下.大家都知道,在git出来之前,多用的是SVN的管理工具,SVN它是一款集中式的项目管理工具,挂载的是同一个服务器,它的确是一个安全的项目管理工具,但是由于SVN自身的特性--在线管理工具,这就意味着一旦你离线了,你就拿不到项目的文件了,也不能推送上去,一旦中央服务器出了问题,那么项目就够折腾人的了,这就是比较让人懊恼的地方了,git的异军突起,彻底打破了这个局面,它是一个强大的分布式管理工具,它会首先在本地创建一个仓库,将本地的仓库当作临时的仓库使用,你所有的操作都可以记录在本地仓库中,然后一键推送到远程仓库,即使你不在线,你的项目修改记录也会被保存下来,等待你将来推送上去,git的好处自然还有很多,废话不多说,直接跟大家走一遍git使用的流程.

  一:Git的安装

  这里以windows系统的安装为例子.git下载链接:https://git-scm.com/downloads;安装完成后在桌面右击鼠标出现Git Bash的选项即说明安装成功.如果你是第一次安装使用git,要先配置用户的信息

git config --global user.name 'Your Name'
git config --global user.email 'email@example.com'

  注意这里git config 后面的命令 --global 参数代表着全局,表示你这台机器上所有的仓库都会使用这个配置,当然也可以9对某个仓库指定不同的用户名和Email地址.

  二:创建本地版本库到推送

  什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

  所以创建一个版本库是非常简单的,选择一个合适的地方创建一个空目录。你可以直接在这个文件夹里右击鼠标,打开Git Bash,直接进入当前的目录,其他地方打开的Git Bash 需要通过cd命令进入git要管理的目录,

  第一步,创建一个本地的仓库(将当前目录变成git可以管理的仓库)

git init

  当此命令执行完毕,该目录下会多了一个.git文件夹,不懂得尽量不要去删改该文件夹里面的东西,如果创建成功了却没有看见,可能是该文件被设置为了隐藏文件,将电脑的隐藏文件显示出来即可看到,也可以用 ls- ah 命令。

  第二步,把当前文件夹里面的文件添加暂存区

git add .

  添加过后,可以通过 git status 查看文件的状态,绿色表示已经添加完成。

  第三步,把暂存区的文件添加到本地仓库

git commit -m '所作的操作记录,便于版本管理'

  注意:-m 后面的参数值一定要填写,它代表着你每个版本的修改记录,便于后期版本的查看。

  第四步:推送到远程仓库

  注意:你一定要确保你在远程创建了仓库,并且将本仓库与远程仓库进行了关联!

  将本地仓库与远程仓库进行关联

git remote add origin git@gitee.com:sh1908/git-lesson.git

  git@gitee.com:sh1908/git-lesson.git  可以在你远程仓库看到,直接复制下来你的远程仓库的链接替换上面的链接即可

  这时候就可以推送了:

// 如果你是第一次上传到远程仓库
git push origin -u master // 如果不是第一次
git push origin master

  第一次推送的同学,这时候会提示你要去配置密钥,因为我们使用的是ssh,那么接下来就是密钥配置的操作:

  • 第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开(Windows下打开Git Bash),一直敲回车即可,创建SSH Key:

ssh-keygen -t rsa -C "email@example.com"

  注意观察你生成ssh时的那个地址

  • 第2步:打开.ssh/id_rsa.pub这个文件,复制里面的内容

  • 第3步:打开 码云 的网站,找到设置,选择 SSH公钥,标题自己写,内容即为第2步中复制的内容,需要输入你的码云的密码,这一次以后,本台电脑上传代码到该仓库再也不用输入密码了

// 如果你是第一次上传到远程仓库
git push origin -u master

// 如果不是第一次
git push origin master

  这时候去刷新码云(git管理的平台)项目的文件查看,你就开心的发现,你的本地仓库的文件出现在了远程仓库中了

  到这,我相信大家都学了了如何用git来创建到上传自己的项目了,那么接下来,走一个相反的过程,将远程仓库文件拿到本地。

  三:克隆远程仓库代码(仅此一次)

// 1、配置自己的ssh,参照 前面密钥的配置
// 2、复制远程项目的地址 git@gitee.com:sh1908/git-lesson.git // 3、找到自己的项目的目录,打开git base
// 4、克隆代码 git clone git@gitee.com:sh1908/git-lesson.git

  如果说,之前的配置都做过了,那么在这里只需要使用 git clone 命令,后面加上你要克隆的代码的地址即可。那么有的同学就要问了,远程仓库的文件更新,再次去克隆,反复下载不是很麻烦嘛?这就是我标题里面写了 仅此一次 的意思了,当我们从远程仓库下载过一次文件之后,想要跟随远程仓库代码进行同步更新,我们可以使用一个新的命令

git pull origin master

  每次当远程仓库代码更新,本地下载过的,只需要 git pull 一下,就可以同步远程仓库的代码到本地了,是不是很方便?

今天这篇博客就写到这,相信只要看完了本文的同学,都已经可以上手用git去管理自己得到项目了,接下来我会在  强大的分布式管理工具-Git(二)中给大家分享一些git拓展的命令操作,例如,如何进行版本回退,如何查看操作日志等。

强大得分布式项目管理工具Git的更多相关文章

  1. 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...

  2. 开源分布式版本控制工具 —— Git 之旅

    Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的 ...

  3. 谈谈分布式版本管理工具Git

    一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 L ...

  4. 向西项目管理工具Git一片

    前言 Git 这个词相信大家并不陌生,做开发的童鞋们每天都离不开它.当然,假设你的项目中没实用到分布式,那么,你可能从未用过 Git,当然也可能没听过.只是,这不是重点,重点是这一篇文章,我们将一起谈 ...

  5. 分布式版本控制工具Git

    一.Git技术简介 Git是一个分布式版本控制系统,与集中式的SVN不同. 1. 主要特点 集中式特点: 所有人的资源全部保存在中央服务器. 所有人开发前都需要从中央服务器上下载同步其他人的代码才能继 ...

  6. 分布式版本管理工具 git常用命令

    Git global setup git config --global user.name "joey" git config --global user.email " ...

  7. 项目管理之Git

    @[TOC]( Git命令:分支与合并)Git一款很好的项目版本管理工具,更是一款优秀的分布式项目管理工具.今天主要给大家介绍Git 强大的分支和合并功能,分支和合并可以说在实际的工作当中用到的是最多 ...

  8. 使用TFS+GIT实现分布式项目管理

    前言 GIT是近来很流行的一种版本控制系统,是Linux内核之父Linus Torvalds为了管理Linux内核的开发而开发的一种开源的版本控制工具. GIT相比传统的版本控制工具最大的优点是实现了 ...

  9. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...

随机推荐

  1. hdu 3038 How Many Answers Are Wrong(并查集的思想利用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 题意:就是给出n个数和依次m个问题,每个问题都是一个区间的和,然后问你这些问题中有几个有问题,有 ...

  2. [NOI2001]炮兵阵地 题解

    题意 我们先来了解一下基本的位运算 于( \(\bigwedge\) ),或 (\(\bigvee\) ) 异或(\(\bigoplus\)) 在下面我们用(&)代表于,(|)代表或 一道状压 ...

  3. Codeforces Round #582 (Div. 3)

    题目链接:https://codeforces.com/contest/1213 A: 题意:给定数的位置,位置为整数,每个数可以向左或右移动一格或者两格,移动一格花费一个硬币,两格不花费硬币,问所有 ...

  4. 一篇文章看懂JS执行上下文

     壹 ❀ 引 我们都知道,JS代码的执行顺序总是与代码先后顺序有所差异,当先抛开异步问题你会发现就算是同步代码,它的执行也与你的预期不一致,比如: function f1() { console.lo ...

  5. .NetCore技术研究-ConfigurationManager在单元测试下的坑

    最近在将原有代码迁移.NET Core, 代码的迁移基本很快,当然也遇到了不少坑,重构了不少,后续逐步总结分享给大家.今天总结分享一下ConfigurationManager遇到的一个问题. 先说一下 ...

  6. springboot使用 @EnableScheduling、@Scheduled开启定时任务

    1.在main启动项添加一个注解@EnableScheduling package com.example.springmybatis; import org.mybatis.spring.annot ...

  7. ios 各个手机型号尺寸及分辨率适配

    常用宏 // 判断是否是ipad #define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdio ...

  8. 构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(中)

    引言 相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 因此数据湖相关服务 ...

  9. tcp居然会数据延迟40ms被发送

    tcpdump是很好的tcp分析工具,在此配合nc命令来学习tcpdump nc -l 8000 tcpdump -S -n -i lo tcp and host 127.0.0.1 and port ...

  10. linux中必备常用支持库的安装(CentOS)

    在CentOS安装软件的时候,可能缺少一部分支持库,而报错.这里首先安装系统常用的支持库.那么在安装的时候就会减少很多的错误的出现 yum install -y gcc gdb strace gcc- ...