Git是一个版本管理操作的工具 非常N,可以很智能的分布式管理,

本网站学习笔记 来自于廖雪峰老师的内容借鉴

安装

yum -y install git

本地设置全局

告知是谁提交代码 信息

# git config --global user.name "xxx"
# git config --global user.email "xxx"
颜色设置
# git config --global color.ui true
查看设置信息
# git config --list

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

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

初始化仓库

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

[root@localhost ~]# mkdir learngit
[root@localhost ~]# cd learngit/
[root@localhost learngit]# pwd
/root/learngit
[root@localhost learngit]# git init
Initialized empty Git repository in /root/learngit/.git/
[root@localhost learngit]# ls -a
.  ..  .git

  瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了

提交代码流程

先创建文件
# cat readme.txt
Git is a version control system
Git is free software

一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。

第一步,用命令git add告诉Git,把文件添加到仓库:
 git add readme.txt 第二步,用命令git commit告诉Git,把文件提交到仓库:
# git commit -m "wrote a readme file"
[master (root-commit) d1b9afa] wrote a readme file
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 readme.txt 查看状态
#git status

回退版本

# git reset --hard HEAD^
注 ^表示上个版本 ^^表示上两个版本 回退指定版本
# git reflog
8b1cc8f HEAD@{}: HEAD^: updating HEAD
10c245e HEAD@{}: commit: add 2hehe
8b1cc8f HEAD@{}: commit: the 2th commit
9ec14f1 HEAD@{}: commit (initial): the first commit
# git reset --hard 9ec14f1
HEAD is now at 9ec14f1 the first commit

git checkout  --  readme.txt    #从新拉取数据

远程仓库

在github上面创建一个仓库 然后加入本地的公钥上传到github上面的setting里面的SSH-KEY

本地创建秘钥
# ssh-keygen -t rsa
公钥上传到setting 设置SSH Key
#cd /root/oldboy
#git remote add origin git@github.com:yefei520/demo.git
#git pull
#git pull origin master
#git push -u origin master

git Tag标签

创建标签

#git tag -a v1. -m "information"

#上面的命令我们创建了本地一个版本V1.,并且添加了附注信息 ‘information’

#查看标签
#git tag
v1. #获取标签显示附注信息
#git show v1.

但是目前这个标签仅仅是提交到了本地git仓库,如何同步到远程代码库

tag远程推送

#git push origin --tags

这样我们就把本地版本推送到了远程代码仓库

如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.

删除标签:

#git tag -d v1.

到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?

这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:

#git push origin :refs/tags/v1.

这时本地和远程的 V1.2 版本已经被我们移除掉.

如何获取远程版本:

#git fetch origin tag v1.

这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.

Github 是国外的 比较慢 而且是公开的  如果要加密 需要钱  但是有开源的Gitlab 开源的软件 可以替代Github 我们开下一章 如何安装Gitlab

Git 版本管理基本操作的更多相关文章

  1. Git GUI基本操作

    一.Git GUI基本操作 1.版本库初始化 gitpractise文件夹就变成了Git可以管理的仓库,目录下多了一个.git文件夹,此目录是Git用于管理版本库的,不要擅自改动里面的文件,这样会破坏 ...

  2. GIT版本管理工具教程

    目录 GIT版本管理工具教程 一 Git初始化 二 简单指令使用 基本操作 简单总结 三 Git进阶 Git三大区域 Git回滚 Git分支 Git工作流 四 Github代码管理仓库 第一步:注册G ...

  3. [工具] Git版本管理(知识总结)

    对以下文档进行了简要总结,方面复习: [工具] Git版本管理(一)(基本操作) [工具] Git版本管理(二)(分支) [工具] Git版本管理(三)(工作流) [工具] Git版本管理(四)(贡献 ...

  4. Git 版本管理的简单理解

    来源:百度知道 现在使用Git版本管理代码的项目非常多.但是Git本身是一条复杂的系统.我从几个简单的点来说明Git的基本功能.希望能帮助初学者快速入门. 工具/原料   Git code dot j ...

  5. GIT版本管理工具

    原文:http://blog.csdn.net/ithomer/article/details/7527877 Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介 ...

  6. git学习——<四>git版本管理

    一.git版本管理的优势 都说git比svn强大,强大在哪呢? 首先,从部署上说:svn.cvs都是集中式的,一台服务器上部署服务,所有客户端编写的代码都要提交到该服务器上.git是分布式的,所有人都 ...

  7. Git——版本管理工具(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  —— The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...

  8. Git 版本管理工具(一)

    转自:http://blog.csdn.net/ithomer/article/details/7527877 Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介 ...

  9. 【转】Git GUI基本操作

    一.Git GUI基本操作 1.版本库初始化 gitpractise文件夹就变成了Git可以管理的仓库,目录下多了一个.git文件夹,此目录是Git用于管理版本库的,不要擅自改动里面的文件,这样会破坏 ...

随机推荐

  1. 记第一届 CCCC-团体程序设计天梯赛决赛 参赛

    其他都没什么,上午报道,下午比赛两个半小时,最后139分 但四我超遗憾的是,最后在做L3-1二叉搜索树,因为看到有辣么多人做出来,可是我没做出来啊 比赛结束后看了看其他两道当场吐血,L3-3直捣黄龙不 ...

  2. 如何使用cygwin去编译cocos2dx项目中的C++文件

    将生成的cocos2dx的Android项目导入到eclipse 可以先测试一下如何编译C++项目: 1.打开cygwin,进入到Android项目对应的目录下面去: 2.编译脚本 在编译脚本之间,如 ...

  3. ggplot2 geom设置—散点图

    散点图也是目前R中的常用的图形之一 geom_point(mapping = NULL, data = NULL, stat = "identity", position = &q ...

  4. 用makecert.exe生成一个自签名的证书

    makecert.exe不用去找,安装VS2008后,在开始菜单相应的路径找到该命令提示符:Microsoft Visual Studio 2008/Visual Studio Tools/Visua ...

  5. Hoffmann树

    数据压缩编码 先把两棵二叉树简化成叶子结点带权的二叉树,图的每个结点之间带有权值 结点的路径长度: 从根结点到该结点的路径上的连接数. 树的路径长度: 树中每个叶子结点的路径长度之和. 结点带权路径长 ...

  6. Struts国际化

    第一步需要建立配置文件 格式为      文件名_zh_CN.properties    为中文配置文件   文件名_en_US.properties为美式英语配置文件 配置文件里面的值以键值对的形式 ...

  7. C语言 - 大小端问题

    目前使用的机器都是使用字节BYTE来存储的. 对于跨越多字节的对象,必须搞清楚两个规则: 这个对象的地址是什么 在存储器中如何按照这些字节的存放的书序 对于一个整型对象 a=0x12345678,一共 ...

  8. nefu 903 字符串去星

    字符串去星 Problem : 903 Time Limit : 1000ms Memory Limit : 65536K description 有一个字符串(长度小于100),要统计其中有多少个* ...

  9. IE6下a标签失效(背景穿透)

    background:fixed url(about:blank);有时候做感应区域的时候在ie6下不给背景就会感应不到,比如说当鼠标移到图片的左半边部分,鼠标手势变成向左的箭 头,比如说有些时候a标 ...

  10. nginx: 响应体太大

    如果做proxy,可以将proxy配置修改buffer长度,或者直接关闭buffer.http { proxy_buffer_size 128k; proxy_buffers 4 256k; prox ...