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对客户端可以做一下操作: