Go语言开发的Git服务器。
MySQL安装。
1、传文件。
2、解包tar xf Percona-Server-5.5.45-37.4-r042e02b-el6-x86_64-bundle.tar
3、安装 yum install Percona-Server-shared-55-5.5.45-rel37.4.el6.x86_64.rpm Percona-Server-server-55-5.5.45-rel37.4.el6.x86_64.rpm Percona-Server-client-55-5.5.45-rel37.4.el6.x86_64.rpm
4、检查:chkconfig chkconfig mysql on
5、启动service mysql start
6、配置 mysql_secure_installation (其中禁止root远程登录原则No其余全部是y)
7、ps anx |grep mysql 查看启动
8、登录数据库mysql -uroot -p
9、查看数据库 show database;
用户:
1、useradd git用户
2、登录用户git
3、传文件到git的家目录
4、tar xf gogs0.11.4_amd64.tar.gz 解包
5、Cd gogs文件夹
6、mkdir custom/conf -p 创建文件
7、 cp ../app.ini ./custom/conf/ 拷贝文件
8、打开app.ini文件。
mysql登录:
1、rant all on gogs.* to \'gogs\'@\'%\' identified by \'gogs\';给文件授权
2、mysql -u gogs -p 利用gogs登录。
利用git用户登录
mysql -u root -p 和gogs是两套系统
mysql -u root -p
mysql -u root -p < gogs/scripts/mysql.sql 输入重定向。
mysql -u root -p
mysql> show databases; 重新查看。
use gogs 导入库。
show tables; 创建了数据库
退出到git gogs文件夹里面。
./gogs web 启动
启动服务:第二个窗口。
cd scripts/
cd init
cd centos
利用root账号拷贝文件:
cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d
cd /etc/init.d
chmod +x gogs
[root@localhost init.d]# chkconfig gogs on
[root@localhost init.d]# chkconfig -list gogs
service gogs start 启动
创建log文件
[git@localhost centos]$ cd
[git@localhost ~]$ cd gogs
[git@localhost gogs]$
q启动
[root@localhost ~]# cd /etc/init.d
[root@localhost init.d]# service gogs start
Starting Gogs:
192.168.142.128:300连接
首次登陆:
进行安装程序,需要设置域名和应用URL。
点击立即安装,注册第一个用户,默认第一个用户为管理员账户。
创建一个仓库。
GIT 1、git的由来雷纳斯。作者。
2008年,web的方式把git放在了网站服务器上。Gitup。
2、安装1)下载对应操作系统的Git客户端版本
2)Linux上安装,yum install git
3)Windows 上面安装 git --version 查看版本号
3、概念远程仓库 本地仓库 工作区
Repository仓库、版本号
git 初始化后,会在当前目录生成一个.git目录,这就版本库。
Workspace 工作空间,工作区。
.git 所在的目录就是工作区,一般是项目的根目录。
Index 索引
介于工作区和版本库之间,暂存修改的
Remote远程版本库
网络上的另一个版本库,可以和本地库交互。
4、使用 1)初始化一个版本库#### git init 初始化。
在目录中增加一个.git目录,不能自行修改这个目录里面的文件,
这个目录一般是根目录。
2)添加文件利用vim创建文件并增加文件内容。
单个添加文件:git add index.htm
这一步是把文件的当前变化增加到索引中,也就是以后这个文件需要版本库来跟踪管理,不是提交。此时文件还可以继续修改,还可以添加新的被跟踪文件,一定要add才把这个改变加入索引中。
批量增加文件:git add .
.号,代表当前目录,这条命令就地柜添加到当前目录及其子目录的所有文件。
只要是目录,就会递归添加到该目录下的文件和子目录。
3)查看状态: git status 4)git文件的分类追踪的Tracked,已经加入到版本库的文件。
为追踪的UNtracked,未加入到版本库的文件。
忽略的ignored,git不在关注的文件,例如一些临时文件。
.gitignore文件中,目录以/结尾,行起始的!是取反。
.gitignore 内容如下:*.ipynb __pycache__/ .*
忽略的文件不需要自己写,Python的已经有了。
5)提交代码 git commit -m “first commit”Commit 提交更改到版本库。 -m填写本次日志消息,必须写,工作中,需要注明每一次提交都做了什么修改。
更改文件后再次提交:显示的是modified: index.htm
git commit -m "2 No2 commit"
6)git 的提交Git的提交,分为两个步骤。
暂存变更:add的作用是把新文件或者新的文件的改动添加到一个暂存区stage,也就是加入到index中。
提交变更:commit提交的是暂存区中的改动,而不是物理文件目前的改动,提交到当前分支,默认是master分支。
两步合为一步:git commint -a -m
改动一批文件,一个个名词很麻烦,使用git commit -a
-a ,--all 会把所有跟踪的文件改为自动暂存,然后commit。
7)增补增加一个文件,
touch about.htm
git commit --amend
-amend 修改
git log 查看版本库里面提交的历史记录。
8)diff比较git diff 工作区和暂存区
git diff HEAD 工作区和本地仓库,比较工作区和上一次commit的差异。HEAD指代最后一的commit。
git diff --cached 跟踪文件的暂存修改,比较暂存区和上一次commit的差异。
9)HEADHEAD,指代最后一次commit
HEAD可以看做是一个游标,指向当前分支最后一次提交。
HEAD^上一次。
上n次,表示为HEAD~n
10)检出和重置命令
说明
Git checkout
列出暂存区
Git checkout file
从暂存区检出文件到工作区,就是覆盖工作区文件,可指定检出的文件,但是不清楚stage
Git checkout commit file
检出某个commit的指定文件到暂存区和工作区
Git checkout
检出暂存区的所有文件到工作区
Checkout用于切换分支,或恢复工作区文件。
checkout会重写工作区,这个命令还是比较危险的。
[root@localhost ~]# echo >about.htm 清空文件
[root@localhost ~]# git checkout about.htm 从暂存区检出到工作区
[root@localhost ~]# git checkout HEAD about.htm 从最后一次commit检出覆盖暂存区和工作区
[root@localhost ~]# git diff
[root@localhost ~]# git diff --cached
[root@localhost ~]# git diff HEAD
[root@localhost ~]# 三条命令显示结果一致了
命令
说明
Git reset
列出被reset的文件
Git reset file
重置文件的暂存区,和上一次commit一致,工作区不影响
Git reset-hard
重置暂存区与工作区,与上一次commit保持一致
[root@localhost ~]# echo "welcome about<html>" > about.htm 文件更改内容
[root@localhost ~]# git add about.htm 添加到暂存区
[root@localhost ~]# git reset about.htm 使用最后一次提交覆盖暂存区
Unstaged changes after reset:
M about.htm
[root@localhost ~]# cat about.htm 内容不变
welcome about<html>
[root@localhost ~]# git add about.htm
[root@localhost ~]# git reset --hard 重置暂存区与工作区为上一次commit
HEAD is now at 1ed76cf No3 commit
[root@localhost ~]# cat about.htm 工作区内容恢复未改变之前。
welcome about
命令
说明
Git reflog
显示commit信息,只要是HEAD发生变化,就可以看到
Git reset commit
重置当前分支的HEAD为指定commit,同时重置暂存区,但是工作区不变
Git reset -hard [commit]
重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit
Git reset --keep [commit]
重置当前HEAD为指定commit,但保持暂存区和工作区不变
重置的时候,使用hash值只要能唯一确定一个commit就可以了。
reset操作 要慎重。
11)移动和删除Git mv src dest 改名,直接把改名的改动放入暂存区。
Git rm file 会同时在版本库和工作目录中删除文件。