5

最近、ローカル ネットワーク内のサーバーに Docker を使用して GitLab をインストールしました。PC でローカルに管理しているリポジトリを移行しようとしています。GitLab 管理パネルで利用可能なほとんどすべてのオプションは「GitHub からインポート」のようなものであり、これらのオプションはどれも役に立たないため、GitLab にインポートできるようにするためだけに、ローカル ネットワーク内のローカル HTTP サーバーを介して回避策として公開しました。私の場合(つまり、リポジトリの.gitフォルダーをアップロードしてインポートすることはできませんでしたか?-逆に言えば)ちなみに、私が選んだのは「URLによるリポジトリ」でした:

ここに画像の説明を入力

GitLab では、ローカル ネットワーク内のサーバーを指す URL からのインポートが許可されていないため、無効にする必要があったセキュリティ設定があります。そこで、アウトバウンド サービス セクション内の「フックとサービスからローカル ネットワークへのリクエストを許可する」というオプションをオンにしました。

次に、「プロジェクトのインポート」というタブを使用して、その中のフォームに入力して、GitLab から新しいプロジェクトを作成してみました。その後、このメッセージが表示されるまで、「インポート中...」というメッセージが何度も何度も再試行されているように見えますが、長時間実行され続けます。

すべてのインポート試行が失敗しました: リポジトリhttp://111.222.33.44/path/to/my/repository/root/folder/.gitを myuser/my_project にインポート中にエラーが発生しました - 13:CreateRepositoryFromURL: clone cmd wait: exit status 128. 試してくださいまた。

オンラインで投稿された Gitlab マニュアル、GitLab に関するさまざまな記事を読んで、このエラーについてグーグル検索し、同様の (しかし非常に異なる!) 問題のあるチケットを何十枚も見つけました...しかし、私はまだ理解していません。リポジトリをすぐにアップロードしますか?

指定された URL自体は問題ではありません。Web ブラウザーに入力すると、Web ブラウザー内でプロジェクトのファイルシステム全体がはっきりと表示され、追加/.gitすると、隠し.gitフォルダーの内容も表示されます。私のブラウザでは...しかし、何らかの理由で、これはGitLabには十分ではありません...

私はこれについて非常に混乱しています。私が見つけたリンクの 1 つは、Export a repository from a Gitlab server to another Gitlab serverです (他の Gitlab からインポートすることはありませんが、PC で作成された単純な git リポジトリは単純なgit init.私のケースは簡単なことではありません。私はこれについて一日中探していましたが、成功しませんでした...)。そのリンク内には、次のような部分があります。

空のリポジトリを複製したという警告が表示されます。これは正常です。チェックアウトしたリポジトリの作業ディレクトリに移動し、git pull を実行します。

...だから、GitLabのインストールが「空のリポジトリ」を作成したフォルダーを見つけ、git pullそこからコマンドを実行して、他のローカルサーバーマシンへのルートを指定しました。これに似たもの:

git pull http://111.222.33.44/path/to/my/repository/root/folder/my_project.bundle

.bundle...上記のリンクにある指示に従って、反対側でファイルの作成に成功した直後。しかし、何らかの理由で、私のGitLabサーバーのCLIはコマンドを見つけられませんgit! (おそらく、何らかの形でラップされているのvirtualenvでしょうか?それとも、そもそも含まれていなかったPATHのでしょうか?誰にもわかりません...)。いずれにせよ、どこに引っ張るのですか?プルする作業ディレクトリがありません!

これについて他にできることはありますか?pushGit に関する私の知識は限られています。ほとんどの場合、Git を使用して、どこからでも必要なく、自分だけでリポジトリを管理してきましたpull(私の 1 つの GitHub プロジェクトをまれに例外として)。

プロジェクトをインポートする方法に関する公式のGitlabのマニュアルには、元の、ラップされていない、糖化されていない、通常のgitコマンドライン ソフトウェアを除いて、どこからでも移行するための指示が含まれていることを付け加えておきます。

4

3 に答える 3

4

結局、本当の問題は、GitLab の Web メニューが実際にどのように機能するかについての誤解でした。

GitLab の Web インターフェイスで [新しいプロジェクト] をクリックすると、次の 3 つのタブから選択できます。

  • 空のプロジェクト
  • テンプレートから作成
  • プロジェクトのインポート

「空のプロジェクト」が道だとは思っていませんでした...つまり、「プロジェクトをGitLabにインポートしようとしている」というのが私の考えだったので、「プロジェクトのインポート」タブから試していました(そのため、この質問を投稿することになりました)...しかし、「空のプロジェクト」から試してみると、問題が解決しました。

コミット履歴をあきらめて、現在のプロジェクト ファイルの状態から新しいリポジトリをゼロから作成しようとしていました。しかし、予想外に、「空のプロジェクト」を作成した後、GitLab から、リポジトリをこの「空のプロジェクト」にインポートするように指示されました。私は引用します:

CMD Instructions - Existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.somedomain.net/myuser/someblank-domain.git
git push -u origin --all
git push -u origin --tags

したがって、「空白のプロジェクト」は「インポートされたプロジェクト」になりました。問題が解決しました!

于 2019-01-24T08:27:31.173 に答える