• Git/Gitlab


    git/gitlab
    git是一个开源的分布式版本控制系统,可以非常有效、高速地处理从很小到非常大的项目版本管理。
    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
    Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库。
    所以,工作的时候就不需要联网了,因为版本库都是在自己的电脑 上。现在每个人的电脑都有一个完整的版本库,那多个人如何协作呢?
    比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

    git的主要特点如下:
    1、版本控制
    2、分布式
    3、工作过程是将服务器上的代码下载到本地,本地开发完成以后,再提交到服务器。
    git 相对于svn功能更加强大,命令也更多。

    git于svn对比:
    1、git是分布式的,svn是集中式的。
    2、git是每一个版本都存储完整的文件,便于恢复,svn是存储差异文件。(核心)
    3、git可以离线完成大部分操作。svn则不能。
    4、git有更优雅的分支和合并实现。
    5、git有更强的撤销修改和修改历史版本的能力。
    6、git效率更高速度更快。
    7、git还具有本地仓库gitlab
     
    三种状态:
    Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。
    已提交表示数据已经安全的保存在本地数据库中。
    已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

    git的几个概念:
    一. 工作目录
    工作目录是对项目的某个版本独立提取出来的内容。这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
    二. 暂存区域
    是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。
    三. Git 仓库目录
    是Git 用来保存项目的元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
    基本的 Git 工作流程如下:
    在工作目录中修改文件 > 暂存文件,将文件的快照放入暂存区域 > 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
    如果 Git 目录中保存着的特定版本文件,就属于已提交状态。
    如果作了修改并已放入暂存区域,就属于已暂存状态。如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
    有两种取得 Git 项目仓库的方法: 第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器克隆一个现有的 Git 仓库。
     
    git的安装:
    yum install git -y   #也可以通过编译来安装,不过要手动解决依赖关系。
    git它是一个命令行工具,无需通过systemctl来启动。
    git --version   #查看git的版本信息

    创建git 的工作目录:
    mkdir /ken
    cd /ken  #这个目录要是空目录
    初始化目录:
    git init   #ls -a 可以看到初始化之后生成的隐藏目录。
    创建一个测试文件:
    echo "this is git" > test.txt
    git add test.txt     #添加修改的文件到暂存区域(索引)
    git commit -m “version1” #提交
    git log       #查看提交后的版本信息
    然后再次修改文件:
    echo "append" >> test.txt
    git add test.txt
    git commit -m "version2"
    再次查看:
    git log     #发现有两个版本的信息
    恢复到版本1:
    git reset --hard HEAD1   #HEAD1就是commit之后的记录码的一部分,供以识别。
    当前恢复到1版本但是使用git log看不到version2的信息了。如果重置到version2呢?
    使用git reflog #获取version2的commit的值,即可重置到版本2
    git reset --hard HEAD2   #完成重置,使用git log可以查看以及回到了version2
    git add .   #提交整个工作目录中的内容。
    git status  #查看当前git的状态,如果你没有做任何操作那么会告诉你,工作目录是干净的,没有要提交的内容。
    echo 111 > a.txt 
    git status   #这个时候查看就会显示a.txt已经被修改了(modified)
    如果要撤销工作区的内容:
    git checkout -- a.txt   #数据回滚,撤销工作区的内容。
    git status      #发现git提示没有要提交的内容,数据已经回滚。(也能够看到当前所处的分支)
    一旦使用git add a.txt 那么数据就已经被提交到了暂存区域

    如何撤销暂存区域的内容?
    git reset HEAD a.txt
    git status #查看状态信息,发现已经到了工作区
    git checkout -- a.txt #再撤销工作区的内容即可
    git status  #提示没有要commit的内容
    git分支的查看、创建、切换
     
    git分支介绍:
    几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
    Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。
    与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。
    git branch   #查看分支,*在哪个分支上,就是当前所处的分支。
    #如果是一个刚刚初始化的空目录,使用git branch是没有分支的。只有有文件的时候才有分支的概念。
    一旦创建一个文件,通过git add .  和 git commit -m “v1” 使用git branch,就会返回分支信息。
    git branch ken   #创建分支
    git branch   #查看创建的分支
    git checkout ken  #切换分支
    分支的使用:其他分支不影响主分支,最后开发提交到主分支上就可以。
    如果在ken分支上做出修改后commit成功了,那么在master分支上是看不到的。
    只有合并分支之后才能看到
    git merge ken
    git log   #能够看到之前提交的版本信息了

    gitlab仓库的搭建
    Gitlab是搭建在局域网内,github是公有的。
    Gitlab简介
    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
    可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。
    可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
    团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。
    管理的命令
    gitlab-ctl stop
    gitlab-ctl start
    gitlab-ctl restart
    首先上传或下载gitlab的安装包:gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
    yum localinstall gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm -y
    [root@centos ~]# vim /etc/gitlab/gitlab.rb    #更改11行为你的web访问ip
    ...
     ## Url on which GitLab will be reachable.
      9 ## For more details on configuring external_url see:
     10 ## https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/configuration.md#configuring-the-external-url-for-gitlab
     11 external_url 'http://192.168.27.30'
     12
     13
     14 ## Note: configuration settings below are optional.
     15 ## Uncomment and change the value.
     16 ############################
     17 # gitlab.yml configuration #
     18 ############################
    ...
    使得配置生效:gitlab-ctl reconfigure
    这个过程可能需要一点时间。需要注意的是,gitlab占用的是80端口,如果你有其他的web服务需要停用。
    lsof -i :80
    然后使用浏览器访问即可。
    然后再web端创建项目然后拉取:
    git clone http://192.168.27.30/root/test.git  #从root仓库中克隆
    拉去的是一个目录,进到目录中找到有.git隐藏目录的目录中操作。也就是进入到工作目录之中。
    然后创建分支:
    git branch dev
    git checkout dev
    echo “testing” > 1.txt
    git add .
    git commit -m "testingfile"
    git push origin dev  #当前子分支的名字
    然后在网络上查看dev分支的内容即可。
    在push推送到gitlab时是需要输入用户和密码的。那么如何实现免密呢?
    在web端选择ssh,然后ssh-keygen生成你linux的密钥,然后将你的公钥复制粘贴到web端的SSH Keys
    然后克隆的时候使用ssh的地址。
     
  • 相关阅读:
    递归的一些应用(一)遍历文件夹
    获取指定路径下文件夹所有文件的大小
    JavaScript Color Picker
    在ASP.NET中,用javascript给CuteEditor控件赋值
    通过URL判断文件是否有存在
    语音验证码
    [链接].net 学习网站
    [音乐]梦中的婚礼
    [转载]天堂猎人影院的爱情狩猎
    为应用程序添加消息过滤器
  • 原文地址:https://www.cnblogs.com/getbird/p/11670496.html
Copyright © 2020-2023  润新知