Git简介
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样,并且在push和pull的时候和服务器端还是有交互的。)使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。
Git是一种免费的开源分布式版本控制系统,既可以处理单个的小项目,也可以处理庞大的企业项目。它极其轻便,专注于速度和处理分布式项目。它脱胎于Linux内核开发,该公司的GitHub网站对开源项目来说是一个非常流行的软件库。
相关链接:https://git-scm.com/
1、GitHub如果要使用私有仓库,是需要付费的 GitLab可以在上面创建私人的克费仓库
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色 :
允许克费设置仓库权限;
允许用户选择分享一个project的部分代码
允许用户设置project的获取权限,进一步的提升安全性
可以设置获取到团队整体的改进进度;通过 innersourcing让不在权限范围内的人访问不到该资源
总结 :从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择但对于开源项目而言,GitHub依然是代码托管的首选
git相关概念 :
git 是一种版本控制系统,是一个命令,是一种工具
gitlib 是用于实现git功能的开发库
github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内部网络搭建git私服
gitlab-ce 社区版(免费)
gitlab-ee是企业版(收费)
gitlab搭建成功
gitlab主配置文件:/etc/gitlab/gitlab.rb # 可以自定义一些邮件服务等
日志目录:/var/log/gitlab/ # 对应各服务
服务目录:/var/opt/gitlab/ # 对应各服务的主目录
仓库目录:/var/opt/gitlab/git-data # 记录项目仓库等提交信息
重启服务:gitlab-ctl stop/start/restart # 启动命令
Git工作流程
git架构
-
工作区:就是你在电脑里能看到的目录。
-
版本库:工作区有一个隐藏目录.git,,而是Git的版本库。
-
暂存区:英文叫stage, 或index。一般存.git/index中,所以我们把暂存区有时也叫作索引(index)。
-
HEAD:指向 master 分支的一个"游标"
-
objects:位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。
-
git add:暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
-
git commit:当执行提交操作时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。
-
git reset HEAD:取消已缓存的内容,但是工作区不受影响。
-
git rm --cached <file>:会直接从暂存区删除文件,工作区则不做出改变。
-
git checkout ." 或者 "git checkout -- <file>":会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
-
git checkout HEAD ." 或者 "git checkout HEAD <file>" :会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
1. git init
在GitHub项目初始化之前 ,数据已经存在于本地仓库中 ,可通过切换到该仓库位置后通过 git init 进行初始化 ,只有进行了此操作 ,后边的操作才有意义 。初始化后会生成一个 .git 文件夹 ,不要轻易动 。
2. git status
顾名思义 ,此语法可以查看当前状态 ,像我自己学习的时候就喜欢动不动 git status 下 ,查看当前状态 ,也能避免不必要的错误 。
3. git add
用于将指定文件提交到“缓冲区” ,git add . 即将修改过的所有文件提交到“缓冲区” 。
4.git commit
git add 或一些命令后 ,如果执行 git status 会提示你有文件可以 commit ,提交即可 ,例如 git commit -m"" 。
5.git push
commit 之后 ,最终提交到远程仓库需要通过 push 指令实现 。git push -u origin master 。
纸上得来终觉浅 ,绝知此事要躬行 。下边就以 leetcode 代码为例实战下吧 。
git 简单实战 。
1.首先如果没有 GitHub 账号 ,当然是要去注册一个啦 ,用户名和邮箱名都记住 。
2.本地配置用户名与邮箱(设置好的跳过此环节)。
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
如图所示 :
3.生成 ssh key
运行 ssh-keygen -t rsa -C "你的邮箱"
会提示你输入 ,可以直接回车 ,理论上会有 3 次回车输入 。(这里写此文时以配置好 ,提示是否覆盖)
4.到上述路径下打开该文件并复制其中内容(ssh key)。
5.打开 GitHub 并进入 settings ,点击 SSH and GPG keys ,将上面复制的内容粘贴到 key 中即可 。之后点击 Add SSH key即可 。
6.可以在 git 窗口执行 ssh -T git@github.com ,查看是否配置成功 。
建li远程仓库并关联本地 。
这里就以 leetcode 的代码仓库为例 。
1.首先建立远程仓库 (因为小詹已经事先用了LeetCode名字 ,这里大家可以忽略下图的报错)
2.接下来就以当前状态 ,上传第 18 题和删除第 18 题为例 ,介绍如何上传 、删除远程仓库内容 。
首先 ,我们通过 cd 切换到本地仓库的文件位置 。并通过git init将该位置格式为仓库 。这里小詹之前已经git init过了 ,所以切换到该路径后面会有个master 。
之后 ,在本地仓库更新仓库内容 ,小詹的远程仓库现在没有 leetcode 18题 ,本地仓库存在 ,所以接下来将该新增的第18题文件夹上传到远程仓库 。
我们平时要学会是不是 git status 下 ,看看当前状态 ,之后利用 git add 指令将要上传的文件 add 到“缓冲区” (可以 git status查看下状态 ,熟悉这个过程),之后利用 git commit 提交 ,最后 push 即可完成目标文件夹的上传 。整个过程如下 :
执行后重新进入远程仓库会发现多了一个文件夹 ,就是刚上传的那个 。
接下来 ,如果我们不小心上传错了文件夹 ,如何删除呢 ?
以刚上传的 018.4sum 文件夹为例 ,可以通过 3 行简单的代码删除 ,具体如下 :
接下来 ,如果我们不小心上传错了文件夹 ,如何删除呢 ?
以刚上传的 018.4sum 文件夹为例 ,可以通过 3 行简单的代码删除 ,具体如下 :
执行完之后 ,远程仓库的对应文件即被删除了 。
git config
· /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
· ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
· 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。
$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com
$ git config --list
$ git config user.name
git clone
git clone http://github.com/CosmosHua/locate new
git clone http://github.com/CosmosHua/locate.git new
git clone git://github.com/CosmosHua/locate new
git clone git://github.com/CosmosHua/locate.git new
git status -s
#-s 参数,以获得简短的结果输出
"AM" 状态的意思是,这个文件在我们将它添加到缓存(git add)之后又有改动
“??”未add
“A”已经add
git diff
查看比 git status 的结果的详细信息。
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。
-
尚未缓存的改动 : git diff
-
查看已缓存的改动 : git diff --cached
-
查看已缓存的与未缓存的所有改动 : git diff HEAD
-
显示摘要而非整个 diff : git diff --stat
git reset HEAD
取消已缓存的内容。
-
$ git reset HEAD -- hello.php 取消其中一个缓存的文件
git rm
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
git rm -f <file>
如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中。
git rm --cached <file>
git如何撤销上一次commit操作
git reset --soft|--mixed|--hard <commit_id>
git push develop develop --force (本地分支和远程分支都是 develop)
<span style="color:#ff0000;">这里的<commit_id>就是每次commit的</span><strong><span style="color:#ff0000;">SHA-1</span></strong>,可以在log里查看到
--mixed 会保留源码,只是将git commit和index 信息回退到了某个版本.
--soft 保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
--hard 源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)
git branch
创建分支命令:
git branch (branchname)
切换分支命令:
git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容。
git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下
git merge secondBranch #merge secondBrach to master,可以不用切回master branch
你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。
删除分支命令:
git branch -d (branchname)
Git log
查看历史提交记录
Git log
查看简洁版
Git log –-oneline
git tag
如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。
-a 选项意为"创建一个带注解的标签"。不用 -a 选项不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。
$ git tag -a v1.0 –m “first tag”
如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签
$ git tag -a v0.9 85fc7e7
$ git log --oneline 可以看到
git remote
添加远程库
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下:
git remote add [shortname] [url]
git remote add remoteServer https://github.com/Courage-Freadom/hello-world/
git push -u remoteServer master
查看远程仓库
$ git remote -v
从远程仓库下载新分支,该命令执行完后需要执行git merge
git fetch
从远端仓库提取数据并尝试合并到当前分支:
git merge
1. 删除分支
1.1 本地分支
git branch -d iss53
1.2 远程分支
git push origin :iss53
2. 已经暂存起来的文件和上次提交时的快照之间的差异
git diff —staged
3. 比较2个不同版本之间的差异
git diff [branch]:[filename] [other-branch]:filename
4. 打tag
1、git tag -a v1.1.0 -m "fix bug” [branch]
2、git tag v1.1.0 master # 也可以简单点写
3、git push --tags
4.1 获取仓库中的所有tags
git fetch --tags
4.2 删除本地tag
git tag -d v1.0.0
4.3 删除仓库中的tag
git push origin :refs/tags/v1.0.0
5. 显示当前版本
git show master
git show develop
git show origin iss53
git show v1.0.35
6. 撤销提交
git revert c2785abf22c1041f6bd7f538538d571372a9127a
git push origin master
7. 显示远程仓库的详细信息
git remote show origin
8. clone 出分支
git clone git@github.com:vearne/carspider.git
clone 出非master的其它分支
git checkout -b develop origin/develop
在本地创建一个 develop 分支,并把它和 origin上的develop 分支关联起来
9. 放弃所有本地变更
git checkout -f
10. 设置upstream
git branch --set-upstream my_branch origin/my_branch
11.查看仓库当前的状态
git status
12.查看历史提交记录
git log
或者加上参数查看就比较清晰了
$ git log --pretty=oneline
13.回退版本
$ git reset --hard HEAD^
14、查看操作的历史命令记录
$ git reflog
15.丢弃工作区的修改
$ git checkout -- <file>
说明:适用于工作区修改没有add的文件
16.丢弃暂存区的文件
$ git reset HEAD <file>
说明:适用于暂存区已经add的文件,注意执行完此命令,他会将暂存区的修改放回到工作区中,如果要想工作区的修改也丢弃,就执行第15条命令即可
Git入门
实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法,废话不多说,直接开写。
目的:通过Git管理github托管项目代码
一、下载安装Git
1、下载Git 官方地址为:
https://git-scm.com/download/win
2、下载完之后,双击安装
3、选择安装目录
4、选择组件
5、开始菜单目录名设置
6、选择使用命令行环境
7、以下三步默认,直接点击下一步
8、安装完成
9、检验是否安装成功
回到电脑桌面,鼠标右击如果看到有两个git单词则安装成功
二、Git基本工作流程
1、Git工作区域
2、向仓库中添加文件流程
三、Git初始化及仓库创建和操作
1、Git安装之后需要进行一些基本信息设置
a、设置用户名:git config -- global user.name '你再github上注册的用户名';
b、设置用户邮箱:git config -- global user.email '注册时候的邮箱';
注意:该配置会在github主页上显示谁提交了该文件
c、配置ok之后,我们用如下命令来看看是否配置成功
git config --list
注意:git config --global 参数,有了这个参数表示你这台机器上所有的git仓库都会使用这个配置,当然你也可以对某个仓库指定不同的用户名和邮箱
2、初始化一个新的git仓库
a、创建文件夹
方法一:可以鼠标右击-》点击新建文件夹test1
方法二:使用git新建:$ mkdir test1
b、在文件内初始化git(创建git仓库)
方法一:直接输入 $ cd test1
方法一:点击test1文件下进去之后-》鼠标右击选择Git Bash Here->输入$ git int
3、向仓库中添加文件
方法一:用打开编辑器新建index.html文件
方法二:使用git命令。$ touch '文件名',然后把文件通过$ git add '文件名'添加到暂存区,最后提交操作
4、修改仓库文件
方法一:用编辑器打开index.html进行修改
方法二:使用git命令。$ vi '文件名',然后在中间写内容,最后提交操作
5、删除仓库文件
方法一:在编辑器中直接把要删除的文件删除掉
方法二:使用git删除:$ git rm '文件名',然后提交操作
四、Git管理远程仓库
1、使用远程仓库的目的:备份、实现代码共享集中化管理
Git远程仓库实际上就是保持在服务器上的git仓库文件
五、Git克隆操作
目的:将远程仓库(github上对应的项目)复制到本地
1、代码:git clone 仓库地址
仓库地址由来如下:
2、克隆项目
3、将本地仓库同步到git远程仓库中:git push
期间出现错误的情况有:
a、出现提交错误
解决:这是通过Git GUI进行提交时发生的错误,由 .git 文件夹中的文件被设为“只读”所致,将 .git 文件夹下的所有文件、文件夹及其子文件的只读属性去掉即可。
b、如果出现无法同步或没有权限,解决方法如下:
用户名和密码一定要和github上的一致。
Git 提交规范
一、具体规则
先来看看公式:
<type>(<scope>): <subject>
type
-
用于说明 commit 的类别,只允许使用下面7个标识。
-
feat : 新功能(feature)
-
fix : 修补
-
bugdocs : 文档(documentation)
-
style : 格式(不影响代码运行的变动)
-
refactor : 重构(即不是新增功能,也不是修改bug的代码变动)
-
test : 增加测试
-
chore : 构建过程或辅助工具的变动
scope
用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
subject
是 commit 目的的简短描述,不超过50个字符。
-
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
-
第一个字母小写
-
结尾不加句号(.)
异常处理
我们先来看看这个异常提醒:
INVALID COMMIT MSG: does not match "<type>(<scope>): <subject>" !
jartto:fix bug
这里之所以报出这个警告,是因为我的提交出现了两个问题:
-
其一,使用了规范外的关键字;
-
其二,很细节的问题,jartto:后少了空格;
这时候我才回忆起来,当时提交一直失败,情急之下直接强制提交,所以以后的提交都会抱出这个异常。大致意思就是:
你的之前的 Commit 不合格~你的之前的 Commit 不合格~你的之前的 Commit 不合格
这时候就很烦了,我们只能去将之前的错误修正,那么如何操作呢?
三、如何修改之前的 commit 信息?
其实并不复杂,我们只需要这样做:
1、将当前分支无关的工作状态进行暂存
git stash
2、将 HEAD 移动到需要修改的 commit 上
git rebase 9633cf0919^ --interactive
3、找到需要修改的 commit ,将首行的 pick 改成 edit
4、开始着手解决你的 bug
5、 git add 将改动文件添加到暂存
6、 git commit –amend 追加改动到提交
7、git rebase –continue 移动 HEAD 回最新的 commit
8、恢复之前的工作状态
git stash pop
四、项目中使用
这时候问题又来了,为什么我提交的时候会有警告,这个又是如何做到的呢?
这时候,我们需要一款 Node 插件 validate-commit-msg 来检查项目中 Commit message 是否规范。
1.首先,安装插件:
npm install --save-dev validate-commit-msg
2.使用方式一,建立 .vcmrc 文件:
{
"types": ["feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert"],
"scope": {
"required": false,
"allowed": ["*"],
"validate": false,
"multiple": false
},
"warnOnFail": false,
"maxSubjectLength": 100,
"subjectPattern": ".+",
"subjectPatternErrorMsg": "subject does not match subject pattern!",
"helpMessage": "",
"autoFix": false
}
3.使用方式二:写入 package.json
{
"config": {
"validate-commit-msg": {
/* your config here */
}
}
}
4.可是我们如果想自动使用 ghooks 钩子函数呢?
{
…
"config": {
"ghooks": {
"pre-commit": "gulp lint",
"commit-msg": "validate-commit-msg",
"pre-push": "make test",
"post-merge": "npm install",
"post-rewrite": "npm install",
…
}
}
…
}
在 ghooks 中我们可以做很多事情,当然不只是 validate-commit-msg 哦。
更多细节请参考:validate-commit-msg
五、Commit 规范的作用
-
提供更多的信息,方便排查与回退;
-
过滤关键字,迅速定位;
-
方便生成文档;
六、生成 Change log
正如上文提到的生成文档,如果我们的提交都按照规范的话,那就很简单了。生成的文档包括以下三个部分:
-
New features
-
Bug fixes
-
Breaking changes.
每个部分都会罗列相关的 commit ,并且有指向这些 commit 的链接。当然,生成的文档允许手动修改,所以发布前,你还可以添加其他内容。
这里需要使用工具 Conventional Changelog 生成 Change log :
npm install -g conventional-changelog
cd jartto-domo
conventional-changelog -p angular -i CHANGELOG.md -w
为了方便使用,可以将其写入 package.json 的 scripts 字段。
{
"scripts": {
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -w -r 0"
}
}
这样,使用起来就很简单了:
npm run changelog
到这里,我们所有的问题都搞明白了, Cheers~
七、总结
看完文章,你还会如此放荡不羁吗?你还会随心所欲的编写 Commit 吗?你还会如此 git commit -m "hello world"提交吗?
Git版本控制入门
第一节 版本控制系统介绍
版本控制系统(VCS,version controlSystem)
可以实现的功能
A. 记录文件的所有历史变化
B. 随时恢复到任何一个历史状态
C. 多人协作开发或修改
D. 错误恢复
E.多功能并行开发
版本控制分类
A. 本地版本控制系统
B. 集中化版本控制系统
C. 分布式版本控制系统
版本控制系统的基本概念
1. repository 存放所有文件及其历史信息(也叫仓库)
2. checkout 取出或切换到指定版本的文件
3. version 记录标识一个版本(编号或其他代码)
4. tag 记录标识一个主要版本(1.0 2.0 3.0)
本地版本控制系统(LVCS)
仅运行在本地,可以不使用网络
代表版本类型èRCS(Revision ControlSystem)
优点:简单、很多系统中都内置、适合管理文本文件(如配置文件、文章、信件、简单文档等)
缺点:只合适管理少量文件、不支持基于项目管理、支持文件类型单一、不支持网络、无法实现多人协作。
集中式版本控制系统(CVCS)
代表版本èCVS(concurrent versionSystem) subversion
优点 :适合多人团队协作开发、代码集中管理
缺点 : 单点故障、必须联网工作、无法实现单机本地工作
分布式版本控制系统(DVCS)
代表版本ègit mercurial(水银)
优点:适合多人团队协作开发、代码集中管理、可以离线工作、每个计算机都是一个完整的仓库
第二节 Git版本控制系统
开源的分布式版本控制系统,最初是取代bitkeeper,linus Torvalds开发,用于Linux内核代码管理系统
优点:速度快、设计简单(配置简单)、对非线性开发模式支持好(多分支开发)、完全分布式有能力高效管理类似Linux内核一样的超大规模项目
Git原理—快照
使用快照(没有变化的版本库链接到原始版本,变化的保存下来),而不是保存。
每一种版本控制系统都用一种办法追踪不同阶段文件的变化。
其他版本控制系统的工作原理,使用补丁(保存)
Git版本控制工作原理
Git原理—文件鉴别和操作
1. 几乎所有操作都是在本地(分布式是指每个电脑都有一个完整的版本库)
2. 通过校验和算法识别文件变化
a) 通过sha-1算法对文件内容或目录结构进行哈希,得出的假烟值作为变化的指纹
3. 多数操作均为添加数据(删除的文件可以通过回溯的原始版本找回)
Git原理—文件状态及工作区域
Git repository 最终确定的文件保存到仓库,成为新的版本,对他人可见
Staging area(index) 暂存区域,暂存已经修改的文件
Working Directory 编辑、修改文件
第三节 Git安装
官方网站git-scm.com , 网站提供了多种系统多种方式的下载
yum系列
centos 环境下使用命令#yum install –y git
apt-get系列
Ubuntu环境下使用命令#apt-get install git
Windows系列
Windows环境下载exe安装包,使用默认安装设置。生成git bash,通过git bash可以直接使用类似Linux的命令,默认的使用路径是家目录。
创建一个文件夹,打开文件夹,右击,creat gitrepository here,该文件夹即是本地的仓库。从git bash 中切换到该目录可以看到其识别为仓库的主分支。
Mac OS X 系列
在mac os x 中,安装xcode的时候会默认安装git,所以先在terminal中确认是否安装。进入AppStore,搜索Xcode,点击details,点击install,大小通常为1.7GB左右,需要等待一段时间。
打开Xcode, 点击菜单项,进入download,有command linetools一项,传统使用的gcc、git等包含在该项中,默认是没有安装,需手动安装。
第四节 Git初始化及仓库创建
Git基础设置
Git安装完成之后,需要进行一些基本信息设置
1. 设置用户名
# git config –global user.name “YourName”
2. 设置用户邮箱
# git config –global user.email “yourmail@Mail.com”
3. 查看设置
# git config --list
用户名和邮箱是提交代码是的标识,可以设置全局账户,也可以针对某个仓库进行设置
Git帮助命令
1、获取全局帮助
# git help
2、获取特定命令的帮助
# git help 特定命令名
初始化一个新的Git仓库
1、 创建一个文件夹,可以直接使用已有的文件夹
# mkdir book
2、 在文件夹内初始化git,创建git仓库
# cd book
# git init 在book文件夹中创建.git文件夹,所有的仓库数据文件都是保存在.git文件夹中,所说的git仓库即为.git文件夹。
3、
向Git仓库中添加文件
1、 创建相应的文件,如readme、book.cpp
# touch readme book.cpp
2、 查看当前工作目录下的所有文件的状态
# git status
3、 将相应的文件添加到暂存区域中,可以同时添加多个文件
# git add readme
4、 添加到仓库中
# git commit -m “initrepo” -m参数后字符串用于注释当前这次提交做了哪些工作
5、 查看git提交历史
# git log
Commit后的字符串是SHA码,其后为作者,提交日期,注释信息
git修改全局默认的仓库地址
用git写项目的时候,通过命令git config --list看到git bash中有默认的远程仓库地址。
默认第一个项目给出了https://gitee.com/XXX/Music.git,
如果想再第二个项目中引用git地址,那么运行命令
HTML运行复制全屏
1、git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
2、git remote rm origin 删除全局默认仓库地址
3、git remote add origin XXX 添加一个项目地址
这样就可以初始化全局的git个人信息
还有修改个人信息的时候
如果你没有初始化过。那么直接:
$ git config --global user.name "输入你的用户名"
$ git config --global user.email "输入你的邮箱"
这样就可以初始化了。
如果已经初始化过之后,可以用一下命令再次对初始化进行更改
$ git config --global --replace-all user.email "输入你的邮箱"
$ git config --global --replace-all user.name "输入你的用户名"
然后再查看下
$ git config --list
发现修改成功了。
提交文件到远程仓库的命令
git add . 提交新文件和被修改文件,不包括被删除文件
git add -u 提交被修改和被删除文件,不包括新文件
git add -A 提交更更改过的代码
git commit -m "提交行为描述"
git push -u origin branchname 提交代码到远程仓库
复制GitStats项目到本地
cd ~/dev
git clone git://github.com/trybeee/GitStats.git
python ~/dev/gitstats/git-stats /youproject public
拉取分支到本地
git pull origin branchname
git branch -vv 查看分支关联
分支管理
git branch #查看本地分支
git branch --all #查看本地和远程仓库的分支
git checkout branchname #切换分支
git branch -d branchname #删除本地分支
查看分支提交日志
git log -3
代码回滚到指定版本
git reset --hard e377f60e28c8b84158
查看本地被修改的文件
git status
添加tag
git tag -a v1.1f9ba49
git tag -d v1.1f9ba49
git push origin v1.1f9ba49
git push origin --tags
Git配置ssh,解决每次提交代码都要输入用户名和密码的问题
原因:你使用的是https 方式提交代码,若改为ssh方式提交,问题就会得到有效解决。
首先你可以输入命令:git remote -v,查看自己获取和提交代码的方式,若是https,则执行后显示如下:
注释:https方式和ssh 方式的git地址区别:
https: https://github.com/gongjenny/vue-come-on.git
ssh : git@github.com:gongjenny/vue-come-on.git
解决问题思路:
删除之前配置的https,改为ssh方式
步骤一:
删除之前配置的https 提交方式,在终端执行如下命令:
**git remote rm origin**
**git remote add origin git@github.com:gongjenny/vue-come-on.git**
此时,若执行 **git push --set-upstream origin master** ,会显示如下:
说明当前权限不够。
步骤二:
这时就需要你创建ssh的key值了,执行命令如下:
**ssh-keygen -t rsa -C "用户名"**,直接enter走完,显示如下:
步骤三:
这时回到自己的github,找到右边的**settings**,点击进入,找到左边**Deploy keys** 进入添加key页面 ,
最后,执行 **git push --set-upstream origin master** 提交代码。
###补充:
若想用 **git push** 简短的命令,需要配置:**git config --global push.default simple** 或 **git config --global push.default matching**
区别在于:前者只提交当前分支的内容,后者可以提交在所有分支的内容。
Git如何强制覆盖本地修改
打开项目git命令行,输入
git fetch --all
git reset --hard origin/develop
第一个命令的意思是取回远程端所有修改,第二句的意思是将版本号置到develop这个版本上。当然如果你需要置的是你自己的私有版本,也可以置到私有版本号上。
到这里再使用git pull去取项目的时候,就不会报修改未提交的问题了。
直接提交到仓库
设置默认提交,
1、 提交文件
# git commit –a –m“modify book.cpp”
跳过暂存区域,直接提交到仓库中,这里主要用于提交修改的文件,文件必须使用git add 添加到暂存区域中
常用git远程仓库实现
1、 使用现有的git网络仓库服务
a) Github。https://github.com 开源仓库是免费的,私有仓库收费
b) BitBucket。https://bitbucket.org
2、 搭建自己的git仓库服务器
git共享代码步骤
/git步骤/
git pull //拉代码
git status //查看状态
git add . //添加所有 [或者.或者是路径]
git commit -m "加备注" //提交代码
git push //推送到远程分支
/步骤 end/
Windows系统中安装使用git
1.安装git
2.打开“Git”->“Git Bash”,若能打开,证明安装成功。
3.配置用户名和email
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
4.(初始化仓库)先创建一个空文件夹,通过cd到达该目录下,通过git init命令把这个目录变成Git可以管理的仓库。
5.新建index.html--->git status--->git add index.html--->git commit -m "imdex.html"
如何新建index.html文件?
可以直接在目录下新建,或者输入touch <name>/touch index.html
6.添加文件到Git仓库,分两步:
使用命令git add <file>(注意,可反复多次使用,添加多个文件)
使用命令git commit -m <message>,完成。
7.每次修改了文件都需要重新添加文件到Git仓库。
常用git服务器目录
1、git用户的目录/home/git
2、仓库主目录/home/git/repositories
3、权限管理仓库 /home/git/repositories/gieolite-admin.git
4、/home/git/.gitolite目录
5、ssh服务器的key目录/home/git/.ssh
6、授权文件/home/git/.ssh/authorized_keys
删除文件
1、 删除文件
# rm README
2、 从git中删除文件
# git rm README
这里虽然删除了README文件,但是在git的历史版本库中依然存在,可以通过回溯到历史版本库找回
3、 提交操作
# git commit –m “deleteREADME”
4、 通过日志文件查看历史操作
# git log
重命名文件
# git mv book.cppbookSource.cpp
# git commit –m “renamebook.cpp filename to bookSource.cpp”
这里的git mv命令相当于在本地重命名文件,删除仓库的文件,将重命名的文件添加到暂存区域,即:
# mv book.cppbookSource.cpp
# git rm book.cpp
# git addbookSource.cpp
github新建项目 复制项目地址 git clone 粘贴项目地址 文件夹名称 代码放进生成的文件夹 进入目标文件夹 git add * git commit -m '提交的描述' git push git pull [仓库链接] 拉取仓库信息 git checkout [分支名] 选择分支 git branch 查看所有分支 git branch [分支名] 选择某一个分支 git branch -d [分支名] 删除某一个分支 git branch -D [分支名] 强制删除某一个分支 git merge [分支名] 合并某一个分支进来
附:gui使用
Git gui,打开仓库所在目录会自动识别当前的仓库,
查看master分支历史,可以看到所有的历史版本及修改日志。
第五节 Git远程仓库
之前提到的操作都是本地的操作,并没有同步到git服务器上,使得其他开发者无法及时查看到仓库的动态。
远程仓库中只保存的.git文件夹
Git支持的访问协议
1、 Local 本地型
2、 SSH
3、 Git
4、 HTTP/HTTPS,只能下载数据,不能提交数据
git常用的命令 :
# 分支的创建和合并
git branch yourbranch
git checkout yourbranch
# 切换到yourbranch
# 开发yourbranch分支,然后开发之后与master分支合并
git checkout master
git merge yourbranch
git branch -d yourbranch
# 合并完后删除本地分支
如何将牛人的远程分支更新到自己的本地分支?
# 查看当前项目下远程
git remote
# 增加新的分支链接,例如
git remote add niuren giturl…
# 获取牛人的远程更新
git fetch niuren
# 将牛人的远程更新合并到本地分支
git merge niuren/master
生产力小技巧
codeshelver:给git库做标签
观察的项目如果多了,怎么管理?用codeshelver,安装扩展之后,可以对GitHub项目做标
签。
gollum:利用git与github做wiki
gollum是一个基于git的轻型wiki系统。
GitHubwatcher: 监测重点项目
GitHubwatcher适用于通知不频繁的情景
git学习路径
参考链接:https://mp.weixin.qq.com/s/pN7MfMLdsOxckENzOwV4CQ
http://gitbook.liuhui998.com/4_9.html
https://blog.csdn.net/capricorn90/article/details/51168444
链接:
Git教程 : http://tanqingbo.com/2017/03/17/Git%E6%95%99%E7%A8%8B/
Git官方文档 : https://git-scm.com/book/zh/v2
菜鸟 Git 教程:http://www.runoob.com/git/git-tutorial.html
Git教程 :https://www.w3cschool.cn/git/
阿里云 Git 系列 : https://yq.aliyun.com/search/articles?spm=a2c4e.11163080.searchteam.1.1c262ec1JNbbf2&q=git
Git 魔法 : http://www.voidcn.com/course/project/nboypv
Git Community Book 中文版 : http://www.voidcn.com/course/project/wpavhb
Pro Git : http://www.voidcn.com/course/project/pxalzh
闯过这 54 关,点亮你的 Git 技能树 : http://www.voidcn.com/course/project/mqcfft
Git 命令参考 : http://www.voidcn.com/course/project/zifhxm
Git 工作流指南 : http://www.voidcn.com/course/project/cvdsdt
沉浸式学 Git : http://www.voidcn.com/course/project/rwhooj
Pro Git v2 中文版 : http://www.voidcn.com/course/project/fgcrkp
(掘金小册)Git 系列 : https://juejin.im/tag/Git
(易百教程) Git教程 : https://www.yiibai.com/git/
廖雪峰 Git教程 : https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
git 操作规范 : https://mp.weixin.qq.com/s/Rtt75DZFNugMrTvrlOLmAw
https://segmentfault.com/a/1190000014461898
Git入门指南,小白工程师必备 : https://mp.weixin.qq.com/s/S8nE-yev4dAiIJ4RLRcHcg
https://opensource.com/article/18/1/step-step-guide-git
码云git本地仓库链接远程仓库 : https://www.jianshu.com/p/094bbc061c21
本地项目上传到GitHub,记录 :https://www.qdfuns.com/article/42211/68b452c4ca8da4489bdef378ec833946.html
GIT 简单的本地分支上传远程仓库分支命令行 : https://www.qdfuns.com/article/23217/ce41ba88f8336c69fcaf041242defd6d.html
分支管理----解决冲突 :https://www.qdfuns.com/article/39070/ede22b7346be936c3653402498564212.html
分支管理----创建和合并分支 :https://www.qdfuns.com/article/39070/a6eceeca2e20786d748f7fc98f0b9571.html
关于git----分布式版本控制系统----版本回退(简洁版):https://www.qdfuns.com/article/39070/06a07d55026f3648d3ff1a3a785c0b85.html
关于git----分布式版本控制系统----版本回退 : https://www.qdfuns.com/article/39070/594562b99d5c30d6267f9837e98d2679.html
用Git上传文件到Github仓库 : https://www.qdfuns.com/article/45274/021428b88a33cdff7396604fb638c9b2.html
搭建自己的小型Git Server :https://blog.ansheng.me/article/build-your-own-mini-git-server
git基础 : https://www.qdfuns.com/article/15102/fba34130a46751269081a24365b8decb.html
Git操作远程库 : https://www.qdfuns.com/article/14681/0a015e9084e78120ce87907cddf55a6e.html
Git常用命令总结 : https://www.qdfuns.com/article/15019/2d2ef6ba076ae59db56988d4e9b98c51.html
Git的简单使用 : https://www.qdfuns.com/article/14681/a47ee36c9856da591599f56354fef5e3.html
git(8)系列 :https://www.cnblogs.com/wonux/tag/git/
Git 常用命令速查表(图文+表格) : https://www.jb51.net/article/55442.htm
在 Git 中怎样克隆、修改、添加和删除文件? : https://mp.weixin.qq.com/s/g_1iDs0W1ToGlmYoUbjEpw
手把手指导您使用 Git : https://mp.weixin.qq.com/s/B7rjSShEFBkuxM7wsNtlkg
Git使用教程:最详细、最傻瓜、最浅显、真正手把手教 : https://mp.weixin.qq.com/s/IDChhMK_BR1dUJemOnwv9Q
Git入门篇 (资料):https://www.jianshu.com/p/9bb7d10390b5
CentOS下git命令行操作(图文教程) : https://www.jb51.net/os/RedHat/511705.html
脚本之家 Git 基础 : http://shouce.jb51.net/gitbook/index.html
原 Git(一):git基本的工作流程 : https://blog.csdn.net/ZuoAnYinXiang/article/details/78471574
在 Linux 下搭建 Git 服务器:https://mp.weixin.qq.com/s/05KzYi7w2QDGu9t4KSZNHQ
Git 简明指南:https://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247485576&idx=1&sn=0abc45398e306bf46307aa1f56447a4a&chksm=eac529a1ddb2a0b7fb531084c62377738b4639fb87add3fba2b6fe184c8256697358d89c00bd&scene=21#wechat_redirect
Git常用命令速查手册 : https://mp.weixin.qq.com/s/SGRcE9EPOu4Tph65tzPzQw
git常见命令 : http://www.voidcn.com/code/p-uglsvadz-k.html
Git 常用命令速查 : https://www.jb51.net/article/55442.htm
git 命令速查表 : https://www.cnblogs.com/yllam/p/5005090.html
git参考手册--文字说明+git速查命令表(图片) : https://www.imooc.com/article/14193
Git 工作流程 : https://www.cnblogs.com/itech/p/5227089.html
Git 进阶指南 : https://www.cnblogs.com/itech/p/5188942.html
git代码回滚:Reset、Checkout、Revert的选择 : https://www.cnblogs.com/itech/p/5188933.html
git代码合并:Merge、Rebase的选择 : https://www.cnblogs.com/itech/p/5188932.html
四种常见 Git 工作流比较 : https://www.cnblogs.com/itech/p/5188929.html
Git 教程之服务器搭建详解 : https://www.jb51.net/article/92248.htm
Git 删除远程服务器文件同时保留本地文件实例详解 : https://www.jb51.net/article/115029.htm
git恢复删除的分支及内容的方法 : https://www.jb51.net/article/127190.htm
Git如何删除历史记录中的大文件详解 : https://www.jb51.net/article/142924.htm
一键备份gitolite服务器的Shell脚本 : https://www.jb51.net/article/54594.htm
git 删除分支和回滚的实例详解 : https://www.jb51.net/article/122636.htm
Git 详细介绍查看、删除、重命名远程分支和tag : https://www.jb51.net/article/103895.htm
git分支的创建、切换、合并及删除操作小结 : https://www.jb51.net/article/97739.htm
git修改和删除功能_动力节点Java学院整理 : https://www.jb51.net/article/121403.htm
CentOS中Git客户端的安装和基础配置教程 : https://www.jb51.net/os/RedHat/454670.html
CentOS系统上搭建Git版本控制服务器的教程 : https://www.jb51.net/os/RedHat/454703.html
centos6.5用yum安装git的方法 : https://www.jb51.net/os/RedHat/149671.html
centos在线安装git的方法 : https://www.jb51.net/os/RedHat/149653.html
说说git(一) :https://www.jianshu.com/p/094309c25a85
说说git(二) : https://www.jianshu.com/p/acaa6452d178
说说git(三):https://www.jianshu.com/p/f723ef16e604
关于 Git SSH 使用的项目实践 : : https://www.jianshu.com/p/814d299541f3
Streamsets项目git环境搭建 : https://www.jianshu.com/p/9be8f4a7aaa5
使用Nginx反代理访问Git解决413问题 : https://www.jianshu.com/p/f06c09933b00
解决git本地多ssh key的问题 : http://blog.51cto.com/nolinux/1753470
关于 Git SSH 使用的项目实践 : https://www.jianshu.com/p/814d299541f3
GIt的备份和恢复 :http://blog.51cto.com/sgk2011/1925939
PHP实现git部署的方法 : https://mp.weixin.qq.com/s/QFpKu8oKoxOEA1BmT7pNhg
CentOS系统安装使用版本控制系统Subversion的方法 : https://www.jb51.net/os/RedHat/306574.html
CentOS安装TortoiseSVN 客户端 : https://www.jb51.net/os/RedHat/220595.html
CentOS 6.3下使用Gitosis安装搭建Git Server教程 : https://www.jb51.net/os/RedHat/216133.html
Centos Nginx + Svbversion配置安装方法分享 : https://www.jb51.net/os/RedHat/35924.html
Git客户端TortoiseGit(Windows系统)的使用方法 : https://www.jb51.net/article/55440.htm
Linux下Git图形化界面客户端盘点:https://mp.weixin.qq.com/s/UmkBmllqNmcjPYOaGAkSsQ
走进Git时代 https://mp.weixin.qq.com/s/K5zq7pfk0yRt_tT-ICFKYA
从SVN迁移到GIT教程: https://m.aliyun.com/yunqi/articles/6046
git和SVN的区别 https://mp.weixin.qq.com/s/JkZpFSaEwVykjiNVaEdulQ
Git 指南 : https://wdxtub.com/2016/08/23/git-guide/
分布式版本控制系统 Git 教程 : https://www.cnblogs.com/jingmoxukong/p/8011012.html
廖雪峰的 git 教程 : https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
脚本之家 Git系列 : http://so.jb51.net/cse/search?s=10520733385329581432&entry=0&ie=gbk&nsid=0&ie=gbk&q=git
简书 git命令 :https://www.jianshu.com/p/c720c914ce03
Git原理 :https://mp.weixin.qq.com/s/W7qCtOPzfWaG2HybobZYnw
git常用操作 : https://blog.csdn.net/paul_wei2008/article/details/41243031
git/svn : https://blog.csdn.net/chdhust/article/category/5696673
git : https://blog.csdn.net/m0_37450089/article/category/7308830
10分钟搭建git服务器 : https://www.kelen.cc/posts/5b4a0ed1e7d2923d6fcb8d14
Linux构建Git代码仓库与自动部署 ; https://juejin.im/post/5b1a394e5188257d5a30c7a7
Git原理与高级使用(2) : https://juejin.im/post/5ac9becb518825556f55b360
如何在 git commit message 中玩溜 emoji : https://juejin.im/post/5b0262edf265da0b9b079fa7
git-新手入职必备操作流程 : https://mp.weixin.qq.com/s/eGPc9fIpsLr3tpxk7L89AA
Git workflow 详谈 : https://juejin.im/post/5844507761ff4b006c3359a9
Git 本地仓库和裸仓库 : https://juejin.im/post/5842f9b861ff4b005889ade6
创建git私有仓库 : https://www.liaoxuefeng.com/article/001373894410719a19c79d040c84fd4a7492efc60081be1000
git 常见操作 : https://www.jianshu.com/p/c38d00a3736c
Git使用中的一些奇技淫巧 : https://mp.weixin.qq.com/s/-95z7MCleajm0S_zd8lD4g
git查看本地和创建分支、上传分支、提交代码到分支、删除分支等 : https://blog.csdn.net/Sky786905664/article/details/79257409
转 代码回滚:git reset、git checkout和git revert区别和联系 : https://blog.csdn.net/Sky786905664/article/details/79150828
转 Git 常用命令大全 : https://blog.csdn.net/Sky786905664/article/details/78557397
转 GitHub入门:如何上传与下载工程? : https://blog.csdn.net/Sky786905664/article/details/54928717
从0学Git : https://blog.csdn.net/Sky786905664/article/details/51916276
CentOS6.8 部署Tomcat+jenkins+git+maven+ant 持续集成 : http://blog.51cto.com/zlyang/1939843
Git 恢复误删除的本地仓库文件 : http://blog.51cto.com/zlyang/1939983
在Linux下搭建Git服务器 (CENTOS 6.6) : https://www.jianshu.com/p/40972dd4809e
git常见用法介绍 : https://www.cnblogs.com/crazyacking/p/6622986.html
git切换到远程分支 : https://www.cnblogs.com/crazyacking/p/5620655.html
在 Git 中 Checkout 历史版本 : https://www.cnblogs.com/crazyacking/p/5620635.html
Git 提交的正确姿势:Commit message 编写指南 : https://www.cnblogs.com/crazyacking/p/5121591.html
(刘逾老师 )使用Git分布式版本控制系统 : https://www.linuxprobe.com/chapter-21.html
才开始学git,慢慢丰富,下面是一些参考资料。
概述:
http://guibin.iteye.com/blog/1014369
工作区、暂存区、版本库的概念
http://www.worldhello.net/2010/11/30/2166.html
progit
http://github.danmarner.com/section/toc/
经验
http://www.open-open.com/lib/list/282?pn=1
http://www.open-open.com/lib/view/open1328069733264.html
Git 手册 :https://blog.csdn.net/oDeviloo/article/details/71786401
初见github :https://www.qdfuns.com/article/14681/cecf58f5ef1b48a125f0383dd69192ef.html
本地项目上传到GitHub,记录 :https://www.qdfuns.com/article/42211/68b452c4ca8da4489bdef378ec833946.html
Git和GitHub资料汇总 :https://blog.csdn.net/u013162035/article/details/78773539
Git与Github使用笔记 :https://blog.csdn.net/column/details/18245.html
第7章 Git和Github的使用 :https://blog.csdn.net/u013162035/article/details/78476880
第8章 github常见操作和常见错误 : https://blog.csdn.net/u013162035/article/details/78476651
第4章 TortoiseGit :https://blog.csdn.net/u013162035/article/details/78475662
搭建自己的小型Git Server : https://blog.ansheng.me/article/build-your-own-mini-git-server
第3章 Git相关 : https://blog.csdn.net/u013162035/article/details/78466265
第2章 Git命令的基本操作 :https://blog.csdn.net/u013162035/article/details/78465997
第1章 Git入门 :https://blog.csdn.net/u013162035/article/details/78464161
GitLab GitHub
GitHub 使用手册 - 基础篇 : http://www.voidcn.com/course/project/fhprwi
(掘金小册) GitHub 系列 : https://juejin.im/tag/GitHub
原 Github项目解析系列 (15):https://blog.csdn.net/qq_23547831/article/category/6273517
GitHub 秘籍 : http://www.voidcn.com/course/project/kqnkrj
(易百教程) GitLab教程 : https://www.yiibai.com/gitlab/
GitHub Pages 指南 : http://www.voidcn.com/course/project/mswxwu
GitHub 开发指南 : http://www.voidcn.com/course/project/fsntud
github使用bash上传之总结版 : https://www.qdfuns.com/article/33603/398ec378be6b1bbd83cbeb9c4d850c7c.html
Linux下GitLab如何安装部署 : https://www.jb51.net/LINUXjishu/512167.html
意淫系列-GitHub教程 : https://blog.csdn.net/googler_offer/article/details/79971779
3个搜索技巧!在 GitHub上快速找到实用资源! :https://mp.weixin.qq.com/s/WEDQp8IoIn3YHvvoKeXVIQ
用GitLab搭建自己的私有GitHub库的步骤 : https://www.jb51.net/article/128349.htm
gitlab工作流程简介 : https://www.cnblogs.com/crazyacking/p/5618091.html
使用GitHub建立个人网站 : https://www.cnblogs.com/crazyacking/p/4678976.html
TortoiseSVN 1.5 :http://shouce.jb51.net/tsvn/1.5/
私立gitlab服务器 : http://blog.51cto.com/leoheng/2136882
加速国内Github访问 : https://www.jianshu.com/p/8d6554919c89
Linux github 连接 : https://www.jianshu.com/p/babcfd056196
静态博客 Github 并存指南 : https://wdxtub.com/2016/01/05/hexo-github-site/
gitlab的钩子相关配置 http://fighter.blog.51cto.com/1318618/1670667
CentOS7.2安装GitLab-CE : http://blog.51cto.com/ygqygq2/1861672
windows下使用TortoiseGit在Git@OSC代码托管 : http://blog.51cto.com/ygqygq2/1718988
TortoiseGit之配置密钥 : http://blog.51cto.com/ygqygq2/1718283
gitlab数据迁移故障总结 : http://blog.51cto.com/11291941/1868573
基于 GitLab 的 CI 实践 : https://mp.weixin.qq.com/s/ZzJnZtZn3sX-JmPfs1uASg
(转)SVN-服务器发送了意外的返回值(405 Method Not Allowed) : http://blog.chinaunix.net/uid-25266990-id-2948841.html
svn用户管理脚本 : http://blog.chinaunix.net/uid-25266990-id-2774758.html
私立SVN服务器 : http://blog.51cto.com/leoheng/2121609
[SCM]软件配置管理 : https://www.cnblogs.com/itech/archive/2011/08/26/2154623.html
git 撤销修改以及删除文件 : https://www.cnblogs.com/x123811/p/6047266.html
GitLab
企业级GitLab仓库环境构建 : http://blog.51cto.com/zhaochj/1737738
Gitlab 工具Source tree使用 : http://blog.51cto.com/sgk2011/1926198
gitlab更改默认Nginx 置顶 : http://blog.51cto.com/sgk2011/1926119
Gitlab迁移 : http://blog.51cto.com/sgk2011/1925946
Gitlab用户权限管理 : http://blog.51cto.com/sgk2011/1925922
Gitlab的管理使用手册 荐 : http://blog.51cto.com/dl528888/1305656
配置gitlab环境实现代码管理及Web Hook测试和ldap认证 荐 : http://blog.51cto.com/rfyiamcool/1365521
Gitlab的管理使用手册 荐 : http://blog.51cto.com/dl528888/1305656
在centos里安装gitlab 荐 :http://blog.51cto.com/dl528888/1213286
gitlab 灾备 :https://www.jianshu.com/p/78d8805cddbf
企业里实现代码自动部署、回滚的解决方案——Caphub 荐 : http://blog.51cto.com/dl528888/1276174
自动化代码部署、代码回滚、命令执行软件之capistrano 荐 : http://blog.51cto.com/dl528888/1270670
git(4篇) : https://www.cnblogs.com/sparkdev/category/905066.html
git 操作规范 :
https://segmentfault.com/a/1190000014461898