リポジトリ「ffki-startseite」を作成したGitlabインストールのアカウントを持っています
次にgit://freifunk.in-kiel.de/ffki-startseite.git
、すべてのコミットとブランチを使用してリポジトリをそのリポジトリに複製し、自分のスコープで作業を開始できるようにします。
どうすればインポートできますか?
リポジトリ「ffki-startseite」を作成したGitlabインストールのアカウントを持っています
次にgit://freifunk.in-kiel.de/ffki-startseite.git
、すべてのコミットとブランチを使用してリポジトリをそのリポジトリに複製し、自分のスコープで作業を開始できるようにします。
どうすればインポートできますか?
回答:
コンピューターでローカルに実行する次のコマンドを使用して、すべてのコミット、ブランチ、タグとともにプロジェクトをgitlab に完全にエクスポートできました。
私の例を説明するために、私はgitlabにインポートするソースリポジトリとしてhttps://github.com/raveren/kintを使用します。私は事前にgitlabで
Kint
(名前空間の下にraveren
)という名前の空のプロジェクトを作成し、新しく作成されたプロジェクトのhttp git urlがhttp://gitlab.example.com/raveren/kint.gitであると教えてくれましたコマンドはOSに依存しません。
で新しいディレクトリ:
git clone --mirror https://github.com/raveren/kint
cd kint.git
git remote add gitlab http://gitlab.example.com/raveren/kint.git
git push gitlab --mirror
ここで、新しいリモートで引き続き使用したいローカルに複製されたリポジトリがある場合は、次のコマンドを実行します*。
git remote remove origin
git remote add origin http://gitlab.example.com/raveren/kint.git
git fetch --all
*これは、リモートマスターの名前をから変更していないことを前提としていますorigin
。それ以外の場合は、最初の2行を変更して反映させます。
新しいgitlabリモートを既存のリポジトリに追加してプッシュします。
git remote add gitlab url-to-gitlab-repo
git push gitlab master
git push gitlab master -f
。今私は新しいGitLabですべてのコミットを含むリポジトリ全体を持っています;)ありがとう
すべてのタグとブランチを保持するには
単にこのコマンドを existing Git repository
cd existing_repo
git remote rename origin previous-hosts
git remote add gitlab git@git.hutber.com:hutber/kindred.com.git
git push -u gitlab --all
git push -u gitlab --tags
これは、1つのリポジトリを新しい場所に移動する基本的な方法です。私はいつもこのシーケンスを使います。--bare 何のソースファイルが見られないことでしょう。
Git Bashを開きます。
リポジトリのベアクローンを作成します。
git clone --bare https://github.com/exampleuser/old-repository.git
新しいリポジトリにミラープッシュします。
cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git
手順1で作成した一時的なローカルリポジトリを削除します。
cd ../
rm -rf old-repository.git
なぜ鏡?gitのドキュメントを参照してください:https : //git-scm.com/docs/git-push
--allすべてのブランチをプッシュします(つまり、refs / heads /の下のrefs)。他では使用できません。
--mirrorプッシュする各参照に名前を付ける代わりに、refs /(refs / heads /、refs / remotes /、およびrefs / tags /を含むがこれらに限定されない)の下のすべての参照をリモートリポジトリにミラーリングすることを指定します。新しく作成されたローカル参照はリモートエンドにプッシュされ、ローカルで更新された参照はリモートエンドで強制的に更新され、削除された参照はリモートエンドから削除されます。これは、設定オプションremote..mirrorが設定されている場合のデフォルトです。
rake gitlab:import:reposは大量インポートに適した方法です:
repos_path
(/home/git/repositories/group/repo.git
)にある裸のリポジトリをコピーします。ディレクトリ名は、末尾が.git
グループまたはユーザーのネームスペースである必要があります。bundle exec rake gitlab:import:repos
所有者が最初の管理者になり、まだ存在しない場合はグループが作成されます。
git clone --mirror git@github.com:username/repo-name.git
git remote add gitlab ssh://git@servername.com/username/repo.git
git push -f --tags gitlab refs/heads/*:refs/heads/*
ssh経由で実行することをお勧めします。httpsが機能しない場合があります
GitLab Docsには完全な指示があります:
https://docs.gitlab.com/ee/user/project/import/github.html
GitLabユーザーにマップするGitHubユーザーが次のいずれかを持っていることを確認します。
上部のナビゲーションバーで[+]をクリックし、[新しいプロジェクト]を選択します。
しかし、詳細とフックについてはGitLab Docsページを読んでください!
(あまりない)