
Git
易生一世
spring-petclinic-graphql开源项目的贡献者
展开
-
Git中的库(repository)概述
Git中的repository,实际上就是一个Object Database。其中存储的一组对象就构成了一个项目的一个历史状态。当然,其中存储了多组这样的对象。1.对象的标识对于repository中的任何一个对象,都有一个20字节的SHA-A哈希值唯一标识。2.对象的类型Blob对象,存储文件内容Tree对象,存储目录结构,其中可以包含其他Tree对象或Blob对象C原创 2016-10-08 22:44:20 · 2120 阅读 · 0 评论 -
Gerrit的commit-msg hook使用指南
Git hooks是Git提供的一种机制,这些hooks能够直接被git commit命令调用,无需开发人员手工设置。Gerrit提供的commit-msg hook,被调用时,可以自动根据模板编辑commit message,开发人员不必再手工输入commit message。1.commit-msg hook实现机制在Gerrit中,该hook实际上就是一个简短的Shell脚本实现。commi...原创 2018-04-23 22:50:03 · 38761 阅读 · 0 评论 -
Gerrit 2.14入门指南
Gerrit是一款免费、开源的代码审查和代码库管理的软件,以Git代码库作为版本控制系统,可以通过命令行、REST和网页界面进行访问。1.版本截至2017年5月,最新版本2.14。2.下载链接https://gerrit-releases.storage.googleapis.com/gerrit-2.14.war3.安装java -jar ~/gerrit-2.14.war init -d ~/...原创 2018-04-23 22:37:46 · 4532 阅读 · 0 评论 -
开发过程中持续使用Git代码更新Docker容器的方法
在开发调试过程中,需要不断更新代码到Git库,然后使用Git库中的最新代码更新运行着的Docker容器,目前看来有如下两种方法,建议使用第二种。1. 直接在容器中执行git命令,更新容器中的目录和文件(不推荐)1) 首先,在构建容器镜像文件的时候,定义在Dockfile文件中并设置代码的Git库RUN apt-get install -y gitRUN git config --global ...原创 2018-04-23 22:31:16 · 13483 阅读 · 0 评论 -
Git的gitattributes文件详解
Git的gitattributes文件是一个文本文件,文件中的一行定义一个路径的若干个属性。1. gitattributes文件以行为单位设置一个路径下所有文件的属性,格式如下:原创 2017-11-24 17:43:23 · 47873 阅读 · 2 评论 -
docker exec执行多个命令详解
docker exec命令能够在运行着的容器中执行命令。docker exec命令的使用格式:docker exec [OPTIONS] container_name COMMAND [ARG...]OPTIONS说明:-d,以后台方式执行命令;-e,设置环境变量-i,交互模式-t,设置TTY-u,用户名或UID,例如myuser:myusergroup通常COMMAND只能是一条语句,为了支持多...原创 2018-04-23 22:46:24 · 51500 阅读 · 0 评论 -
Git对库文件权限的管理与filemode配置详解
Git不仅能够管理文件的版本,而且能够管理对文件的访问权限。通常,一个文件的访问权限可以分为xrw,这些属性也被纳入到Git库的管理只。在本地工作目录只改变文件的访问权限,也是对git库中管理的文件的modify,执行git status将会看到文件的变化。1. filemode选项Git对文件的访问权限的管理与配置选项core.filemode有关。core.filemode选项默认原创 2017-10-30 22:48:58 · 21316 阅读 · 0 评论 -
Git本地库中的索引(Index)及文件状态概述
Git本地库中的索引Index就是一个二进制文件,默认存储在.git/index路径下。1.索引索引中包含一个列表,列表根据文件名、文件模式和文件元数据进行了排序,以便快速检测文件的变化。索引中还包含所有Blob类型的SHA-1标识符。2.Git文件状态对于新创建的一个文件,其状态为untracked。通过git add ...命令,可以将该新建文件的状态转换为staged原创 2016-10-08 23:32:45 · 13734 阅读 · 0 评论 -
Git中的Reference及其refspec概述
1.Git Reference简写为refs1)本地分支的Reference格式:refs/heads/如refs/heads/master,在保证唯一的情况下可以简写为master2)远程追踪分支的Reference格式:refs/remotes//如refs/remotes/origin/master,在保证唯一的情况下可以简写为origin/master3)tag的Ref原创 2016-10-09 14:25:06 · 11300 阅读 · 0 评论 -
Git中的分支(branch)概述
Git中的一个分支branch,就是一个带名字的引用,该引用指向一次提交后的状态。1.本地分支local branch每次对本地库的提交,只是中本地库中创建了一个commit对象。但是本地库的状态的改变,可能因自本地提交、或者远程库的同步、或者切换到其他提交等等。这一个个的commit对象之间是离散的,如何能够追踪本地库的状态呢,本地分支的作用就在于给出本地库的当前commit对象。原创 2016-10-08 23:10:46 · 3923 阅读 · 0 评论 -
EGit中撤销对文件的修改
撤销Git中的文件changes,要根据文件的状态采取不同的措施。1.对于未执行git add的文件修改,只要Team->Replace With->File in Git Index即可2.对于未执行git commit的文件修改,可以有如下选择:只要Team->Replace With->HEAD即可。当然,也可以git reset --hard,撤销当前分支的全部修改只要Te原创 2016-10-10 23:44:08 · 2517 阅读 · 0 评论 -
Google git-repo (Repo)工具简介
git-repo简称Repo,是基于Git的一款工具,可以管理多个Git库,从而使开发流程的自动化。repo命令其实是一个Python2脚本(目前不兼容Python3)。1.安装mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo原创 2017-03-27 23:03:01 · 4377 阅读 · 0 评论 -
Jenkins插件Gerrit Trigger概述
1. Gerrit是Gerrit Code Review的简称,是一种免费、开源的代码审查和代码库管理的工具,能够以Git作为代码库,通常使用网页界面。代码一旦push到Git,就在Gerrit创建一个对应的patch set。2. Jenkins是一个代码持续集成的免费配置工具,其前身是SUN的Hudson。3. Jenkins的插件Gerrit Trigger,能够集成Jenk原创 2016-10-13 23:53:49 · 5719 阅读 · 0 评论 -
EGit与Gerrit的联合使用
1.建立EGit与Gerrit的连接1)在Eclipse中,通过EGit插件从Gerrit服务器clone一个远程库到本地库时,EGit将自动设置本地库如下:执行fetch操作时,同时从Gerrit服务器获取review notes执行push操作时,默认push所有的commits以请求review执行commit操作时,自动带上Gerrit服务器上对应的Change-Id(除非已经原创 2016-10-10 23:37:49 · 1738 阅读 · 0 评论 -
Git中的upstream和downstream概述
Git中的upstream和downstream的概念是相对的。如果A库中的分支x被push到B库中的分支y,则y就是x的upstream,而x就是y的downstream。1.对于从远程库中clone或fetch得到的本地分支,都在远程库中有一个upstream分支。2.对于在本地新建的本地分支,如果执行git push origin my_remote_branch_name是不会原创 2016-10-09 14:28:07 · 30453 阅读 · 0 评论 -
git fetch, git pull与git rebase比较
1.git fetchgit-fetch,从其他Git库的branch或tag或refs下载对象和引用到本地。特性:可以同时操作多个Git库 默认操作Git库origin 操作后更新.git/FETCH_HEAD 使用格式:git fetch [<options>] [<repository> [<refspec>…?]] git f...原创 2017-05-03 15:46:48 · 10898 阅读 · 0 评论 -
git cherry-pick与git cherry命令详解
1.git cherry-pick,对当前分支apply已有的commits特性:对于给定的一个或多个已有的commits,在当前工作分支上,再次apply并生成新的commits当前工作分支必须是干净的,即HEAD不包含本地commits使用:git cherry-pick [--edit] [-n | --no-commit] [-m parent-number]原创 2017-05-05 09:56:17 · 15492 阅读 · 0 评论 -
git tag的类型及其命令详解
git tag命令用于操作Git的tag对象,如进行创建、删除、列表和验证等。1. Git中的tags分类Git中的tags总体可以分为两类:1) "annotated" tags即使用git tag -a|-s|-u 命令创建的tags。一个"annotated" tags意味着一次正式的发布。"annotated" tags对象中包含创建日期,创建者名字和邮箱、tag原创 2017-05-17 23:46:29 · 4378 阅读 · 0 评论 -
git clone命令详解
git clone [--template=] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o ] [-b ] [-u ] [--reference ] [--dissociate] [--separate-git-dir ] [--depth ] [--[no-]single-branch]原创 2017-04-27 16:48:38 · 21310 阅读 · 3 评论 -
Git中的“LF will be replaced by CRLF”警告详解
我们都知道,在Windows中使用CRLF标识一行的结束,而在Linux/UNIX系统中只使用LF标识一行的结束。CRLF即Carriage-Return Line-Feed的缩写。通常情况下,Git库不会自动修改文件内容,但是默认会将入库的文件的行尾符设置为LF,会将检出的文件的行尾符设置为CRLF。但是在执行如下操作时出现如下警告:C:\Sam\works\bba-master>git原创 2017-11-24 23:24:44 · 68959 阅读 · 2 评论