强大的分布式管理工具-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. 51nod 1060 最复杂的数(数论,反素数)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1060 题解:可以去学习一下反素数. #include < ...

  2. Codeforces Round #381 (Div. 2) C. Alyona and mex(无语)

    题目链接 http://codeforces.com/contest/740/problem/C 题意:有一串数字,给你m个区间求每一个区间内不含有的最小的数,输出全部中最小的那个尽量使得这个最小值最 ...

  3. 【Leetcode】【简单】【350. 两个数组的交集 II】【JavaScript】

    题目描述 350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2] 示例 2 ...

  4. bzoj5072 小A的树 题解

    题意 给出一棵 n 个点的树,每个点有黑白两种颜色.q 次询问,每次 询问给出 x 和 y,问能否选出一个 x 个点的联通子图,使得其中 黑点数目为 y. 范围 n ≤ 5000,q ≤ 10^5 其 ...

  5. shell 的while语句

    转 http://blog.chinaunix.net/uid-25880122-id-2901409.html while循环的格式   while expression do command co ...

  6. Erlang模块gen_tcp翻译

    概述 TCP/IP套接字接口 描述 gen_tcp模块提供了使用TCP / IP协议与套接字进行通信的功能. 以下代码片段提供了一个客户端连接到端口5678的服务器的简单示例,传输一个二进制文件并关闭 ...

  7. SpringCloud学习笔记(1):Eureka注册中心

    简介 Eureka是Netflix开源的基于rest的服务治理方案,分为Server端和Client端,Server端为注册中心,其他微服务通过Client端连接Server端进行服务的注册和发现. ...

  8. spring boot使用常规发送邮件

    spring boot使用常规发送邮件 1.pom.xml文件依赖: <!-- javax.mail begin--> <dependency> <groupId> ...

  9. 脚本代码混淆-Python篇-pyminifier(1)

    前言 最近研究了一下脚本语言的混淆方法,比如 python,javascript等.脚本语言属于动态语言,代码大多无法直接编译成二进制机器码,发行脚本基本上相当于暴露源码,这对于一些商业应用是无法接受 ...

  10. MySQL5.7初始化后5种密码重置方法

    前言:由于好几次安装MySQL5.7后一直被重置密码所困扰,因此特意整理重置的方法 安装MySQL5.7 [root@node1 db]# ll 以下的rpm安装包可以随处下载 total 40235 ...