gitlab及ssh 连接
gitlab docker 搭建
docker run --detach --publish 9443:443 --publish 9090:80 --publish 9022:22 --name gitlab --hostname 192.168.136.136 --restart always -v /home/software/gitlab/etc:/etc/gitlab -v /home/software/gitlab/logs:/var/log/gitlab -v /home/software/gitlab/data:/var/opt/gitlab -v /etc/localtime:/etc/localtime:ro --privileged=true gitlab/gitlab-ce:latest
配置ssh
2、配置默认访问密码
切换到命令运行的目录 cd /opt/gitlab/bin/
执行如下命令:gitlab-rails console -e production 进行初始化密码
在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
gitlab-rails console -e production
u=User.where(id:1).first
u.password='12345678'
u.password_confirmation='12345678'
u.save!
exit
出现true说明设置成功!
此时就可以用root/12345678来登录页面
vim /home/software/gitlab/etc/gitlab.rb
(/etc/gitlab/gitlab.rb)
external_url 'http://192.168.136.136'
gitlab_rails['gitlab_ssh_host'] = '192.168.136.136'
gitlab_rails['gitlab_shell_ssh_port'] =9022
remote: GitLab:You are not allowed to force push code to a protected branch on this project
git push -f origin master
remote: GitLab:You are not allowed to force push code to a protected branch on this project
Master分支被保护:
进入项目gitlab 网页版: 设置(Settings)-仓库(Repository) --
1.可以直接点该分支旁的Unprotect按钮,解除保护,但是这种方法不推荐
2.第二种方法是在Allowed to push下选择允许那些角色或具体那些用户可以提交,在这里可以选择你自己
设置完毕后再重新提交就成功了。
SSH 参数配置有3个层次:
- 命令行参数,如
-p 10086
,-i /path/to/identity_file
等选项来设置SSH的端口号或认证证书位置 - 针对某个用户的配置文件,所在路径为
~/.ssh/config
,默认是不存在的,需要手动创建 - 针对系统所有用户的配置文件,,所在路径为
/etc/ssh/ssh_config
参数重要性的顺序也是1>2>3,即越近的配置重要性越高。这里主要讲述第2种情况下的配置方式,即针对~/.ssh/config
文件的写法进行说明。
添加config文件
在上述.ssh目录下,手动新增一个config 文本文件,为每个账号配置一个Host节点。主要配置项说明:
配置文件内容:
# user1配置 Host gitee.com HostName gitee.com IdentityFile C:\Users\cassmall\.ssh\id_rsa PreferredAuthentications publickey User xxxxx@163.com # user2配置 Host gitee.com2 HostName gitee.com IdentityFile C:\Users\cassmall\.ssh\id_rsa2 PreferredAuthentications publickey User xxx@cxxstime.com
填写说明:
Host 主机别名,git@的地址
HostName 服务器真实地址
IdentityFile 私钥文件路径,Windows中没有放在C盘下时。注意据对路径变化,比如C盘下是/C/xo/abc、比如D盘下/D/ssh/id_rsa这样
PreferredAuthentications 认证方式
User 用户名(例中为Gitee帐号),邮箱或者用户名
8. 修改局部Remote origin
为每给repository设置remote origin
$ git remote rm origin
$ git remote add origin git@gitee.com2:xxxx.git
注意:
1、git remote add origin git@<填写config中对应用的Host主机别名>:xxxx.git
2、如果不知道xxxx.git 地址,可以上Gitee网站复制,如下,红色选框框选部分
3、每个用户涉及都repository都要进行设置
9. 配置局部用户名和邮件
为每个repository设置局部用户名和邮件(注意:每个用户涉及都仓库都要设置
# 配置局部用户名
git config user.name "user1_name"
说明:user1_name可以随意
# 配置局部邮件
git config user.email "user1_email"
10. 终端测试SSH Key是否生效
执行以下命令ssh -vT git@<config中配置都主机别名>
$ ssh -vT git@gitee.com
如图,成功了
使用命令行方式获取服务器上的项目:
(1)本地无任何内容,克隆一个完整的工程:
git clone git@github.com:lilyef2000/django-study.git
(2)本地已有工程,更新到最新:
> git fetch --all
> git remote show
origin
> git remote show origin
* remote django-study
Fetch URL: git@github.com:lilyef2000/django-study.git
Push URL: git@github.com:lilyef2000/django-study.git
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push':
master pushes to master (local out of date)
> git reset --hard origin/master
或使用以下方法:
git remote add django-study git@github.com:lilyef2000/django-study.git
git reset --hard django-study/master
(3)本地新建的工程上传:
现在github建立repo:
再在本地计算机项目文件夹中执行以下命令:
git init
git add . #(所有内容添加到仓库)
git commit -m "说明" #告诉git修改版本提交
git remote add laoqi git@github.com:lilyef2000/study_laoqi.git
git push -u laoqi master
之后每次提交执行以下命令:
git add . #(所有内容添加到仓库)
git commit -m "说明" #告诉git修改版本提交
git push -u laoqi master
reference:
1https://blog.csdn.net/weixin_56270746/article/details/125427722
2 https://www.runoob.com/w3cnote/git-five-minutes-tutorial.html
3 https://blog.csdn.net/weixin_32899685/article/details/112535018
4 https://zhuanlan.zhihu.com/p/359108193