概要概要
GitLabは、RubyをベースにしたオープンソースのGitプロジェクト管理アプリケーションであり、Githubと同様の機能を提供します。GitLabはCEコミュニティバージョンを提供します。これは、ユーザーが自分のイントラネットサーバーにデプロイでき、チーム内のプロジェクトコードホスティングウェアハウスに使用できます。
この記事では、イントラネットGitLabサーバーを構築するプロセスと発生した問題について説明します。
インストール
最初にrpmソースインストールパッケージをダウンロードします。そのほとんどはインターネット上のel7またはel6です。
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.0.0-ce.0.el7.x86_64.rpm
この記事はCentOS8システムに基づいていることに注意してください。上記のURLを編集してel8パスに切り替え、ダウンロードするバージョンをランダムに選択してください。この記事では最新バージョンを選択していません。
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/gitlab-ce-13.0.0-ce.0.el8.x86_64.rpm
インストール:
rpm -i
構成ファイルを編集します。
vim /etc/gitlab/gitlab.rb
モードを表示し、Enter/external_url
キーを押して検索し、nを押して下向きを検索し続け(Nは上向きを検索)、検索external_url 'http://gitlab.com'
して次のように変更します。external_url 'http://192.168.20.111:8090'
構成ファイルを変更するたびに、以下を実行する必要があることに注意してください。
gitlab-ctl reconfigure
gitlab-ctl restart
上記で設定したexternal_urlをブラウザのアドレスバーに入力します。開くことができない場合は、ファイアウォールをオフにし
systemctl stop firewalld
ます。デフォルトのユーザー名はroot、パスワードは5iveL!feで、システムがパスワードの変更をガイドします。
この時点で、インストールは成功しています。
オペレーティング
新しい集団
ルートユーザーはグループを追加できます:グループ
の可視性レベルを設定します:
3つのレベルが導入されました:
- プライベート、プライベート。
- 内部
- 公衆、
新規プロジェクトプロジェクト
新しいプロジェクトを作成する前に、最初にグループを作成することをお勧めします
。そうしないと、rootユーザーがデフォルトで作成されます:
git clone
アドレス:または:http://192.111.11.111:8090/root/test.git
新しい利用者
rootユーザーからログアウトし、johnnyなどのユーザーを登録し、パスワードjohnny233を設定すると、メールボックスに自由に入力でき、システムに正常にログインできます。
ユーザーを招待する
Ctrl + Shift + Nショートカットキーを押してChromeのシークレットモードを開き、新しいページを開き、rootユーザーとしてログインし、追加したグループを入力すると、ユーザーを招待してユーザーの役割と権限を設定できます。
グループディメンションでユーザーを招待:
エンジニアリングプロジェクトディメンションでユーザーを招待:
4つのロール権限があります。
- ゲスト、
- レポーター
- 開発者
- メンテナ、
Gitクローン/プッシュ
コマンドラインを開いてSSHキーを生成し
、ED25519SSHkeyを追加します。ssh
-keygen-ted25519-C ""
SSHキーの追加:
ssh-keygen -t rsa -b 2048 -C "user@email"
生成されたpubファイルのコンテンツをSSHキーに構成して、コードをプッシュします。
次に、プロジェクトをgit cloneするときに、httpプロトコルを使用し、登録済みのユーザー名/パスワードを入力します。
ローカルプロジェクトを初期化し、リモートサーバーにプッシュします
ローカルプロジェクトフォルダを入力し、右クリックGit Bash Here
し、それを初期化するgit init
のGitリポジトリとして。まず、追加.gitignore
ファイルは、すべてのファイルを追加しgit add .
、状態を確認しgit status .
、提出しgit commit -m "init"
、
リモートサーバー上に新しいプロジェクトを作成し、そのアドレスを取得するためにGitのクローンをクリックしてください。
リモートウェアハウスアドレスの設定:
git remote add origin http://192.111.11.111:8090/root/local-test.git
ステータスの表示:
git remote -v
リモートウェアハウスとローカル同期のマージの取得:
git pull --rebase origin master
U / Pを入力
git push -u origin master
.gitignore
無効
上記の際に慎重な開発者は、git status .
ステップが実行され、コンフィギュレーションファイルは、プロジェクトのルートディレクトリに追加されていることを見ることができる.gitignore
、そしてそこにあるtarget/
設定項目は、しかし、出力は:
new file target\classes\add.sql
それがあることを示し.gitignore
、効果的ではないが、このtarget
設定項目があります明らかに問題ありません。
理由:
.gitignore
追跡されていないファイルのみを無視できるため、追跡されているファイルは無視できません。
解決策は、ローカルキャッシュを削除し(追跡されていない状態に変更)、送信することです。
git rm -r --cached .
出力:
error: the following file has staged content different from both the
file and the HEAD:
.gitignore
(use -f to force removal)
git rm -r -f --cached .
再実行:次に、ファイルgit add .
を再度追加して実行しgit status .
ます。出力は正常です。つまり、ターゲットディレクトリの下のクラスファイルは一時ストレージ領域に追加されません。
注意の間に差があることとで.gitignore
、構成ファイルが。target/
*/target/
問題
johnnyユーザーgit push
がエラーを報告しました:
remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://192.111.11.111:8090/root/test.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://192.111.11.111:8090/root/test.git'
ユーザーjohnnyの変更権限は開発者であるため、デフォルトではマスターブランチのプッシュ権限はありません。メンテナにアップグレードすると、リモートマスターブランチにプッシュできます。