您的位置:首页 > 编程语言 > Go语言

Git服务器搭建(gogs服务)

2019-07-07 13:28 1231 查看
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

一、GIT

1.1Gogs

Go语言开发的Git服务器。https://gogs.io/

1.2 软件依赖

1.2.1 Git

yum install git -y

1.2.2 Mysql

$ yum install mariadb
设置mysql数据库环境,mysql_secure_installation

1.2.3 安装

下载gogs安装程序gogs0.11.4_amd64.tar.gz,上传到Centos解压,生产gogs目录,里面就是gogs所有文件。初始化数据库
$ mysql -uroot -p < scripts/mysql.sql # 其实就是创建了一个gogs的库
为gogs库创建mysql用户gogs,并授权
mysql> grant all on gogs.* to ‘gogs’@’%’ identified by ‘gogs’;
mysql> flush privileges;

1.3 配置


二、Git

安装: https://git-scm.com/downloads
下载对应操作系统的Git客户端版本

概念


Repository仓库、版本库:git初始化后,会在当前目录生成一个.git目录,这就是版本库
Workspace工作空间、工作区
.git所在的目录就是工作区,一般是项目的根目录
index索引:介于工作区和版本库之间,暂存修改的
remote 远程版本库:网络上的另一个版本库,可以和本地库交互

使用

初始化一个版本库

$ git init
在当前目录中增加了一个.git目录,不要自行修改这个目录里面的文件。当前目录一般是项目的根目录。

添加文件

$ echo ‘testMy Website’ > index.htm
$ git add index.htm
单个文件添加:
  这一步是把文件的当前变化增加到索引中,也就是以后这个文件需要版本库来跟踪管理,注意这不是提交。此时,文件还可以继续修改,还可以添加新的被跟踪文件,一定要add才能把这些改变加入到索引中。
多个文件添加:
$ git add .
  .点号,代表当前目录,这条命令将递归添加当前目录及其子目录所有文件
只要是目录,就会递归添加该目录下的文件和子目录。

查看状态

$ git status
$ git status -s

git的文件分类

  • 追踪的Tracked,已经加入版本库的文
  • 未追踪的Untracked,未加入到版本库的未被管理的文件
  • 忽略的Ignored,git不再关注的文件,例如一些临时文件 .gitignore文件中,目录以/结尾,行起始的!是取反
    .gitignore内容如下:
    .ipynb
    pycache/
    .
    忽略文件不需要自己写,Python的已经有了https://github.com/github/gitignore/blob/master/Python.gitignore
    其它语言的在这里找 https://github.com/github/gitignore

提交代码

$ git commit --help
$ git commit -m “First Commit”
[master (root-commit) 8a73953] First Commit
Committer: python <python@nodex.(none)>
commit 提交更改到版本库
-m 填写本次日志消息,必须写。工作中,程序员应该对每一次提交写明做了什么改动

文件的生命周期

  文件add后,就成为可跟踪文件的未修改状态unmodified,修改后,文件就变成modified状态。再次add后,将变化提交到索引,状态变为staged,这才能提交。提交成功,文件状态从staged变回unmodified。

git的提交

git的提交分为两个步骤:
暂存变更:add作用是把新文件或者文件新的改动添加到一个暂存区stage,也就是加入到index中。
提交变更:commit提交的是暂存区中的改动,而不是物理文件目前的改动,提交到当前分支,默认是master分支。
也可以使用下面命令,将两步合成一步
$ git commit index.htm
如果改动了一批文件,一个个写名字很麻烦,使用下面的命令:
$ git commit -a
-a,–all 会把所有跟踪的文件的改动自动暂存,然后commit。上面命令未提交message,会出现一个类似vi命令的
操作界面,需要编写message之后,才行。
也可以使用下面的命令,把message信息一并填写了。
$ git commit -a -m “message”

增补

二次提交后,忘记加入一个文件about.htm
–amend 修改,通过创建一个新的commit来replace当前分支的顶部。
也可以在命令中继续使用-m选项直接提交message。
git log 查看一下版本库里面提交的历史记录。

diff比较

查看各种差异:
git diff 查看被跟踪文件未暂存的修改,比较暂存区和工作区
git diff --cached 查看被跟踪文件暂存的修改,比较暂存区和上一次commit的差异
git diff HEAD ,查看被跟踪文件,比较工作区和上一次commit的差异。HEAD指代最后一次commit

HEAD

HEAD可以看做是一个游标,指向当前分支最后一次提交。
HEAD的值存储在.git/HEAD中。
HEAD,指代最后一次commit
HEAD^,指代上一次提交
HEAD^^,指代上上一次提交
上n次提交,表示为HEAD~n

检出和重置

  checkout 用于切换分支,或恢复工作区文件。注意,checkout会重写工作区,这个命令还是较为危险的。

内容源码均在github仓库

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: