如何将本地无版本代码与git远程存储库相关联?

时间:2012-10-24 15:15:34

标签: git version-control repository git-remote

我需要将干净的无版本代码与现有的git远程存储库相关联。

我更好地解释了我的情况。 我的项目从svn转移到git。我有一个svn本地工作副本,旧代码(没有新的提交)必须与新的git存储库同步。我可以克隆回购,但我应该手动恢复许多被忽略的配置文件,我会避免它。

所以我删除了所有.svn目录,然后使用git远程存储库跟踪我的代码。

有办法吗?

4 个答案:

答案 0 :(得分:20)

我会提交您的工作目录以确保它在获取之前存在于历史记录中。 (确保您位于项目根文件夹中)

git init
git add -A
git commit -m "my latest'

现在我们有了它

git remote add origin url-to-your-remote
git fetch origin

现在我们有来自远程

的历史记录
git reset origin/master

现在我们当前的提交是来自远程

的最新提交
git add -A
git commit -m "Committed my state"

现在我们使用当前的工作目录作为下次提交的快照。

git push -u origin master

推高您的更改并跟踪分支。

密钥是reset命令,没有--hard选项。它使您的工作文件夹保持不变,同时将分支指向您从遥控器获得的内容。

答案 1 :(得分:10)

确定, 我根据Adam DymitrukEugene Sajine的答案为我的问题发布了正确答案。感谢大家的支持:)

  • 首先,删除工作副本目录中的所有.svn目录;
  • 在工作副本目录中初始化新的git存储库

    cd /path/to/my/project
    git init
    
  • 添加git远程存储库并获取它

    git remote add origin url-to-your-remote
    git fetch origin
    
  • 将工作副本重置为远程存储库

    git reset --hard origin/master
    

最后,本地存储库将与远程存储库同步。

答案 2 :(得分:3)

如果你真的是指你所说的话,那么序列将是:

cd {your-project}
git init
git remote add {remote_name} {address}
git fetch {remote_name}

然后,您可以从遥控器的其中一个分支创建一个本地分支,例如:

git branch master {remote_name}/master

然后你可以添加你的代码:

git add {files}

git add .
git commit

更新:

OP指定所讨论的代码是旧的并且没有任何提交,因此似乎整个情况无缘无故地过于复杂。 OP应该克隆新的存储库并完成它。忽略配置应该根据项目策略重做(.gitingore存储在repo中或不存储等等)

答案 3 :(得分:0)

以下工作会怎样?我在我的一个项目上尝试过它并且有效。

1)将git存储库克隆到与包含无版本代码的目录不同的位置。

2)将.git文件夹从作为(1)的结果创建的目录复制到包含无版本代码的目录。

这有效地实现了Adam Dymitruk在上面的答案中所采取的步骤。