저장소 "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
네임 스페이스 (namespace 아래raveren
) 라는 이름의 빈 프로젝트 를 만들었고 새로 만든 프로젝트 의 http git url에 http://gitlab.example.com/raveren/kint.git명령은 OS에 구애받지 않습니다.
A의 새 디렉토리 :
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
. 그렇지 않으면 처음 두 줄을 변경하여 반영하십시오.
기존 저장소에 새 gitlab remote를 추가하고 다음을 누릅니다.
git remote add gitlab url-to-gitlab-repo
git push gitlab master
git push gitlab master -f
. ) 덕분에, 지금은 나의 새로운 GitLab의 모든 커밋과 전체의 repo이
모든 태그와 지점 을 유지하려면
이 명령을 단순히 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
Gitlab이 제공하는 단계는 다음과 같습니다.
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.example.com/rmishra/demoapp.git
git push -u origin --all
git push -u origin --tags
이것은 하나의 저장소를 새로운 위치로 이동시키는 기본입니다. 나는이 순서를 항상 사용한다. --bare를 사용하면 소스 파일이 표시되지 않습니다.
Git Bash를 엽니 다.
저장소의 Bare 복제본을 작성하십시오.
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 모든 분기 (예 : 심판 / 헤드 / 심판) 다른 제품과 함께 사용할 수 없습니다.
--mirror 각 참조의 이름을 push로 지정하는 대신, 참조 / 아래의 모든 참조 (refs / heads /, refs / remotes / 및 refs / tags /를 포함하지만 이에 국한되지 않음)가 원격 저장소에 미러링되도록 지정합니다. 새로 생성 된 로컬 참조는 원격 끝으로 푸시되고 로컬로 업데이트 된 참조는 원격 끝에서 강제로 업데이트되며 삭제 된 참조는 원격 끝에서 제거됩니다. 구성 옵션 remote..mirror가 설정된 경우 이것이 기본값입니다.
rake gitlab : import : repos 는 대량 가져 오기에 더 적합한 방법 일 수 있습니다.
repos_path
( /home/git/repositories/group/repo.git
) 아래에 Bare 저장소를 복사하십시오 . 디렉토리 이름은 .git
그룹 또는 사용자 네임 스페이스로 끝나고 끝나야 합니다.bundle exec rake gitlab:import:repos
소유자가 첫 번째 관리자가되고 그룹이없는 경우 그룹이 작성됩니다.
기존 베어 git 저장소를 Gitlab으로 가져 오는 방법 도 참조하십시오 .
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 페이지 를 참조하십시오!
(별로 없습니다)