git服务器的搭建及使用

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)HEAD

HEAD,指代最后一次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 会同时在版本库和工作目录中删除文件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggpyx.html