从Bitbucket导入Stash历史?

时间:2013-10-03 23:37:22

标签: git bitbucket git-bash bitbucket-server

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

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

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

  1. 使用Tortise Git在本地创建一个文件夹,克隆它。
  2. 打开Git Bash,使用CD命令
  3. 更改路径,转到此文件夹(directoary)
  4. 运行以下命令:     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
    
  5. 由于我是Git的新手,这些可能不是正确的方法。

2 个答案:

答案 0 :(得分:3)

你需要:

  • 克隆Bitbucket repo
  • 为所有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 repo'bitbucket'命名了遥控器,而不是默认的'origin'。 这是因为您最终会使用Stash repo 默认 这就是我为所述Stash回购保留远程名称“origin”的原因。

  • 此处描述了为每个bitbucket分支创建本地分支:“Track all remote git branches as local branches”。

  • 我不建议在当地的仓库(跟踪所有Bitbucket分支机构)工作 我宁愿在其他地方克隆新填充的Stash仓库,也可以在那里工作。

答案 1 :(得分: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