git status    查看状态

git status -s 状态概览

git diff      尚未暂存的文件

git diff --staged    暂存区文件

git commit    提交更新,试用”-m”参数可以直接在后面输入“message”,后跟-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区。

git reset     回滚

git rm        从版本库中移除

git rm --cached README 从暂存区中移除

git mv        相当于”mv”、”git rm”、”git add”三个命令

git log  查看提交日志

创建一个文件

]# echo 1213456 > git.test

将文件追加到索引区

]# git add git.test

将文件提交到本地仓库

]# git commit -m git.test

查看当前文件操作记录,id为文件提交id

]# git log
commit 43e7aa5963db3b04691a6e4ec271b7199ab14d8b (HEAD -> master)
Author: dayi123 dayi_123@126.com Date:   Fri Aug 10 09:06:25 2018 -0400
git.test

5、分支管理

Git的默认所有的操作都在主分支上面,为了防止开发混乱,可以创建分支,在分支上操作,在分支上操纵执行的命令都是基于当前分支的。

git branch  创建分支

git branch –v  查看分支信息

git branch –merged  查看哪些分支已经被merged到主分支

git branch --no-merged 查看哪些分支没有被merged到主分支

git branch -d testing  删除分支

git checkout  分支名称  切换指针

git checkout --filename   撤销对文件的修改

git merge 分支名称  融合分支,将分支融合到主干

git stash

git tag   查看标签

git rebase 变基,

创建一个分支datatest1

]# git branch datatest1

查看当前的分支状态

]# git status
On branch master
nothing to commit, working tree clean

切换到datatest1分支

]# git checkout datatest1
Switched to branch ‘datatest1’

查看当前分支时已经在datatest1分支

]# git status
 On branch datatest1
 nothing to commit, working tree clean
 #在当前分支创建一个文件并提交到暂存区
 ]# echo datatest1 > branch2.html
 ]# git add branch2.html

将当前分支merged到主分支

]# git merge datatest1
Already up to date.

切换到主分支查看

]# git checkout master
 ]# git status
 On branch master
 Changes to be committed:
 (use “git reset HEAD …” to unstage)new file:   branch2.html

查看单前那些分区被merged到主分区

]# git branch –merged
datatest1

  • master
    #给当前库打标签
    [root@localhost data]# git tag -a v1.0 -m ‘abc’
    [root@localhost data]# git tag
    v1.0

6、git回滚

回滚命令:git reset [option] [commitid]

选项

–soft 缓存区和工作目录都不会被改变

–mixed 默认选项。缓存区和制定的提交同步,但工作目录不受影响

–hard 缓存区和工作目录都同步到指定的提交

修改提交的文件并在此提交

]# echo date >> git.test
]# git commit -m “2”

获取commitid

]# git log
 commit 24867009ea7f916dc62b3fde3d4d15582fa6258b (HEAD -> master)
 Author: dayi123 dayi_123@126.com Date:   Fri Aug 10 09:39:55 2018 -0400
 2
 commit 43e7aa5963db3b04691a6e4ec271b7199ab14d8b (–merged, datatest1)
 Author: dayi123 dayi_123@126.com
 Date:   Fri Aug 10 09:06:25 2018 -0400
 git.test

恢复到提交前

]# git reset --hard 43e7aa596
 HEAD is now at 43e7aa5 git.test
 #查看提交后的状态
 ]# git log
 commit 43e7aa5963db3b04691a6e4ec271b7199ab14d8b (HEAD -> master, –merged, datatest1)
 Author: dayi123 dayi_123@126.com Date:   Fri Aug 10 09:06:25 2018 -0400
 git.test

7、使用git对远程仓库管理

使用git最终要将本地文件提交到远程git仓库中或者将远程仓库中的文件下载本地进行操作,常用的操作命令有:

git clone 仓库地址  将远程主机文件拉到本地

git pull   认证后更新代码,合并到之前代码中去

git fetch  认证后更新代码,不会合并到之前的代码中

git push origin master

git remote       获取远程库的信息

git remote –v   获取远程库的详细名称信息

git remote add xxx http://xxx   添加地址。默认第一个名程都为origin

git remote show origin

git remote rename pb paul  #变更远程地址名称

二、搭建与管理git远程仓库gitlab

Gitlab是一个基于Ruby on rails开发的源代码托管结局按方案,gitlab分为企业版和社区版两个版本。

Gitlab集成了nginx postgreSQL redis sidekiq等组件,在安装gitlab时会自动安装配置。

1、gitlab的安装与配置

(1)安装gitlab

配置gitlabyum源为国内源以方便安装

]# vim /etc/yum.repos.d/gitlab-ce.repo
 [gitlab-ce]
 name=Gitlab CE Repository
 baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
 gpgcheck=0
 enabled=1

清除并更新yum缓存

]# yum clean all
]# yum makecache
安装gitlab,默认安装安装的为最新版本,安装时可以指定具体的版本进行安装。

安装gitlab依赖软件

]# yum install curl policycoreutils openssh-server openssh-clients postfix

如果没有关闭防火墙需要配置防火墙

]# firewall-cmd --permanent --add-service=http

安装gitlab

]# yum install gitlab-ce

(2)配置启动gitlab

修改gitlab配置文件” /etc/gitlab/gitlab.rb”,绑定自己主机ip地址。

将external修改为自己主机ip地址

external_url ‘http://192.168.16.128’

启动gitlab并使修改的配置生效

]# gitlab-ctl reconfigure

(3)登录gitlab

安装完成后即可通过浏览器登录gitlab,第一次登录需要设置密码。

(4)gitlab的操作命令

gitlab-ctl status:查看gitlab状态
gitlab-ctl start:启动gitlab
gitlab-ctl stop:停止gitlab
gitlab-ctl restart:重启gitlab
gitlab-ctl tail servername:查看gitlab集成的服务日志
#查看gitlab所有组件的状态
 ]# gitlab-ctl status
 run: alertmanager: (pid 122565) 1802s; run: log: (pid 122574) 1802s
 run: gitaly: (pid 122496) 1804s; run: log: (pid 122547) 1802s
 run: gitlab-monitor: (pid 122520) 1803s; run: log: (pid 122525) 1803s
 run: gitlab-workhorse: (pid 122480) 1804s; run: log: (pid 122524) 1803s
 run: logrotate: (pid 121671) 1900s; run: log: (pid 122530) 1803s
 run: nginx: (pid 121613) 1911s; run: log: (pid 122488) 1804s
 run: node-exporter: (pid 121854) 1878s; run: log: (pid 122509) 1803s
 run: postgres-exporter: (pid 122585) 1801s; run: log: (pid 122591) 1801s
 run: postgresql: (pid 121078) 1980s; run: log: (pid 122514) 1803s
 run: prometheus: (pid 122535) 1802s; run: log: (pid 122557) 1802s
 run: redis: (pid 120945) 1986s; run: log: (pid 122513) 1803s
 run: redis-exporter: (pid 122068) 1855s; run: log: (pid 122526) 1803s
 run: sidekiq: (pid 121478) 1923s; run: log: (pid 122516) 1803s
 run: unicorn: (pid 121406) 1929s; run: log: (pid 122515) 1803s

查看redis日志

[root@localhost ~]# gitlab-ctl tail redis
2018-08-10_16:42:14.05381 120945:M 10 Aug 12:42:14.047 * 10 changes in 300 seconds. Saving…
2018-08-10_16:42:14.05398 120945:M 10 Aug 12:42:14.053 * Background saving started by pid 126469

(5)gitlab服务安装目录说明

/var/opt/gitlab/git-data/repositories/:库默认存储目录

/opt/gitlab:应用代码和相应的依赖程序

/var/opt/gitlab:”gitlab-ctl reconfigure”命令编译后的应用数据和配置文件,不需要人为修改配置

/etc/gitlab:配置文件目录

/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志

/var/opt/gitlab/backups/:备份文件生成的目录

(6)变更配置文件操作

gitlab-ctl show-config :修改配置后验证配置文件

gitlab-ctl reconfigure :修改配置后重置配置文件

2、gitlab的管理与使用

Gitlab安装完成后在登录gitlab,在gitlab创建组、用户以及项目并关联起来,用户在本地生成密钥对,并将公钥拷贝到gitlab。同时创建里程碑给用户分配任务,gitlab对客户端可以做一下操作: