2

我们正在将我们的存储库从 Bitbucket 移动到我们在 Stash 中的本地环境。我能够导入我们存储库的最新版本,但不能导入以前提交和版本的详细信息。

您能否指导我如何导入包含所有分支、提交和版本详细信息的存储库?

这就是我们导入存储库的方式:

  1. 在本地创建一个文件夹,使用 Tortise Git,克隆它。
  2. 打开 Git Bash,通过使用 CD 命令更改路径转到此文件夹(目录)
  3. 运行以下命令: git init

    git add --all
    
    git commit -m "Initial Commit"  
    
    git remote add origin http://User@localhost:7990/scm/PROJECT/repo.git
    git push -u origin master
    

由于我是 Git 新手,这些可能不是正确的方法。

4

2 回答 2

3

你需要:

  • 克隆 Bitbucket 存储库
  • 为所有 Bitbucket 分支创建本地分支
  • 将所有内容推送到 Stash。

这意味着:

git clone -o bitbucket https://bitbucket.org/username/reponame
cd reponame
remote=bitbucket ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch --set-upstream-to $brname  $remote/$brname ; done
git remote add origin http://User@localhost:7990/scm/PROJECT/repo.git
git push --all
git push --tags

几点注意事项:

  • 我已将 Bitbucket 存储库的遥控器命名为“ bitbucket”,而不是默认的“ origin”。那是因为默认情况下
    您最终将使用您的 Stash 存储库。 这就是为什么我为所说的 Stash repo 保留远程名称“”。
    origin

  • 此处描述了为每个 bitbucket 分支创建本地分支:“将所有远程 git 分支跟踪为本地分支”。

  • 我不建议在该本地存储库中工作(它正在跟踪所有 Bitbucket 分支)。
    我宁愿将新填充的 Stash repo 克隆到其他地方,然后从那里开始工作。

于 2013-10-04T05:30:25.117 回答
2

要导入项目文件、提交历史等,您可以执行以下操作:

git clone --bare git@bitbucket.org:/login/myrepo.git
cd myrepo.git
git push --mirror git@stash.acme.com:/project/myrepo.git
cd ..
rm -rf myrepo.git
于 2014-04-15T16:05:08.760 回答