zoukankan      html  css  js  c++  java
  • Git原理与实践

    git常见命令

    全局配置git

    首先配置全局的用户名和邮箱

    git config --global user.name "username"
    git config --global user.email "eamil"
    git config --global core.autocrlf false
    

    git config --global的意思就是设置当前用户范围内的配置

    git config --system对当前机器上的所有用户都生效

    git config就是对当前所在的git项目本身生效

    git config --list查看所有的配置项

    git config user.name查看某个配置项

    git add --help查看git的帮助文档

    git log查看提交日志

    git log --oneline --abbrev-commit --graph查看所有的提交备注

    git reset --hard HEAD^回退到上一个版本

    git status查看代码文件的状态

    git对项目进行版本控制

    首先对项目执行git init初始化项目,会生成一个.git目录,在.git目录中实际上就是存储了每个代码文件的每个版本。然后执行以下命令开始对项目进行版本控制

    git add --all .
    git commit -m 'inital commit'
    

    配置.gitignore文件

    在版本控制的时候,有些文件是不需要进行版本控制的,比如java项目生成的target目录

    vi .gitignore
    在.gitignore中 添加 target
    

    git本地仓库结构

    git项目主要由三个部分组成:工作区、暂存区、版本库

    工作区保存的是项目当前版本对应的所有文件

    暂存区:保存了下一次要提交的文件信息

    git版本库就是git用于存储自己的元数据,以及文档数据库,默认在项目的.git的隐藏目录中

    在本地使用git commit --all就会将代码先提交到暂存区,然后执行git commit -m命令的时候就会将代码提交到版本库中

    git代码状态

    git中的代码文件分为两种,一种是tracked,一种是untrackedtracked的文件就是已经提交到git版本库中的文件,后面可以处于modified或者staged状态,untracked就是从来没有提交到git版本库的代码

    当我们执行git add --all .命令的时候,文件如果是第一次进入,则文件的状态为new file状态

    然后将test.txt提交到仓库中

    然后修改test.txt的内容,此时状态为modified

    此时执行git add --all .

    然后执行git commit -m 'commit',此时状态已经提交成功

    最后对于git来说,一次git add算做一个版本,每一次执行git add操作,都是将工作区中的所有修改的文件,作为一个新版本,放入暂存区,这个版本等待提交,通常一次git add --all .然后就会执行一次git commit提交到本地仓库

    git log查看历史提交信息

    使用git log可以查看每次commit的信息,包括SHA-1、作者、日期、提交说明。

    git log --patch -2,--patch 可以显示每次提交之间的diff,-n可以指定显示最近的几个commit

    git log --stat,可以显示每次commit的统计信息,包括修改了几个文件,有多少行插入,多少行删除

    git log --oneline --abbrev-commit --graph,可以看到整个commit树结构,包括如何合并的,就显示每个commit的SHA-1和提交说明,同时SHA-1显示短值。通常使用这个就够了

    git add,其实就是可以多次修改代码,多次git add,然后将每次修改的代码,都放入暂存区中;而git commit,就是一次性将暂存区中的代码,全部提交到master分支上,master分支会出现一个最新的commit,也就是一个最新的代码版本;而HEAD作为一个指针,永远指向master分支的最新一次commit的代码版本。

    git版本控制

    git reset --hard HEAD^,可以回到上一个版本

    git reset --hard HEAD~5,退回到HEAD之前的倒数第5个commit的状态

    git reset --hard da23145,指定一个commit的hash值,回到过去的版本

    GitLab安装和使用

    GitLab需要的硬件配置是2核4G,GitLab可以使用可视化界面进行项目的版本控制,权限控制

    GitLab安装

    GitLab下载的官网是:https://about.gitlab.com/install

    选择对应的版本下载,然后复制官方文档的命令就可以,安装成功后访问对应ip就可以,默认部署在80端口。进入GitLab后,重新设置root账号的密码来访问GitLab

    GitLab的使用

    1. 使用管理员身份登录后,可以创建项目,然后创建组和用户的时候需要将项目归属到组或用户,一般一个组就是一个大的部门,一般可以设置为private私有
    2. 进入项目,在settings的members中设置组内其他人的访问权限
    3. 将自己本地生成的ssh key公式,添加到git lab中,使用开发人员的账号登录git lab,添加ssh key
    4. 提交到master分支需要对应的成员需要具有master权限,在后期更新的GitLab是添加MainContainer权限
    5. 如果其他人是第一次从gitlab中拉取代码,就需要手动将本地master分支和远程的origin/master分支进行关联git branch --set-upstream-tp=origin/master master

    gitlab的命令

    • 启动gitlab:gitlab-ctl start
    • 停止gitlab:gitlab-ctl stop
    • 重启gitlab:gitlab-ctl restart
    • gitlab日志:/var/log/gitlab
    • 查看gitlab日志:gitlab-ctl tail
    • 查看gitlab对应的Nginx访问日志:gitlab-ctl tail nginx/gitlab_access.log
    • 查看gitlab对应的数据库postgre-sql的日志:gitlab-ctl tail postgresql
    • gitlab数据存放目录:/var/opt/gitlab/git-data
  • 相关阅读:
    通信架构
    通信架构
    17.2?Replication Implementation 复制实施:
    17.2?Replication Implementation 复制实施:
    17.1.1.8?Setting Up Replication with Existing Data设置复制使用存在的数据
    17.1.1.8?Setting Up Replication with Existing Data设置复制使用存在的数据
    17.1.1.7 Setting Up Replication with New Master and Slaves 设置复制对于新的Master和Slaves:
    Hi3531用SPI FLASH启动 使用Nand做文件系统 分类: HI3531 2013-08-28 10:26 884人阅读 评论(0) 收藏
    Hi3531支持2GByte内存 分类: HI3531 2013-08-28 10:25 738人阅读 评论(0) 收藏
    Hi3531添加16GByte(128Gbit) NAND Flash支持 分类: HI3531 2013-08-28 10:23 861人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/zykBlog/p/13888368.html
Copyright © 2011-2022 走看看