强大得分布式项目管理工具Git
强大的分布式管理工具-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的更多相关文章
- 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...
- 开源分布式版本控制工具 —— Git 之旅
Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的 ...
- 谈谈分布式版本管理工具Git
一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 L ...
- 向西项目管理工具Git一片
前言 Git 这个词相信大家并不陌生,做开发的童鞋们每天都离不开它.当然,假设你的项目中没实用到分布式,那么,你可能从未用过 Git,当然也可能没听过.只是,这不是重点,重点是这一篇文章,我们将一起谈 ...
- 分布式版本控制工具Git
一.Git技术简介 Git是一个分布式版本控制系统,与集中式的SVN不同. 1. 主要特点 集中式特点: 所有人的资源全部保存在中央服务器. 所有人开发前都需要从中央服务器上下载同步其他人的代码才能继 ...
- 分布式版本管理工具 git常用命令
Git global setup git config --global user.name "joey" git config --global user.email " ...
- 项目管理之Git
@[TOC]( Git命令:分支与合并)Git一款很好的项目版本管理工具,更是一款优秀的分布式项目管理工具.今天主要给大家介绍Git 强大的分支和合并功能,分支和合并可以说在实际的工作当中用到的是最多 ...
- 使用TFS+GIT实现分布式项目管理
前言 GIT是近来很流行的一种版本控制系统,是Linux内核之父Linus Torvalds为了管理Linux内核的开发而开发的一种开源的版本控制工具. GIT相比传统的版本控制工具最大的优点是实现了 ...
- [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...
随机推荐
- 关于Ubunto在VMwark中无法全屏。
1.右键点击Ubunto桌面,进入终端 输入: 1.sudo apt-get install open-vm* 安装依赖项 2.sudo apt-get install open-vm-tools ...
- 解开Batch Normalization的神秘面纱
停更博客好长一段时间了,其实并不是没写了,而是转而做笔记了,但是发现做笔记其实印象无法更深刻,因此决定继续以写博客来记录或者复习巩固所学的知识,与此同时跟大家分享下自己对深度学习或者机器学习相关的知识 ...
- Dijkstra算法的Java实现
package main.java; import main.java.utils.GraphUtil; import java.util.ArrayDeque; import java.util.L ...
- Go第三方日志库logrus
日志是程序中必不可少的一个环节,由于Go语言内置的日志库功能比较简洁,我们在实际开发中通常会选择使用第三方的日志库来进行开发.本文介绍了logrus这个日志库的基本使用. logrus介绍 Logru ...
- Elasticsearch之联想词示例
public class LianXiangWord { private static RestClient client; static { client=RestClient.builder(ne ...
- FreeSql (十四)批量更新数据
FreeSql支持丰富的更新数据方法,支持单条或批量更新,在特定的数据库执行还可以返回更新后的记录值. var connstr = "Data Source=127.0.0.1;Port=3 ...
- java.lang.UnsupportedClassVersionError:JDK版本不一致报错
交代一下背景:公司运行的一个上线项目,打了个补丁发给客户后,反馈说运行不了.把源码拿回来场景重现.贴上报错信息: 08-15 14:13:29 ERROR doPost(jcm.framework.r ...
- 服务器替换san存储
1.通知DBA停库: 串行登陆服务器 2.备份系统信息 mkdir -p /bakinfo df -h > /bakinfo/df.txt_`date +%Y%m%d%H%M%S` ps -ef ...
- 【学习笔记】第三章 python3核心技术与实践--Jupyter Notebook
可能你已经知道,Python 在 14 年后的“崛起”,得益于机器学习和数学统计应用的兴起.那为什么 Python 如此适合数学统计和机器学习呢?作为“老司机”的我可以肯定地告诉你,Jupyter N ...
- 第1次作业-Numpy练习
1.创建一个边界值为1而内部都是0的数组,图例如下:[提示:]解此题可以先把所有值都设置为1,这是大正方形:其次,把边界除外小正方形全部设置为0.本题用到numpy的切片原理.多维数组同样遵循x[st ...