【发布时间】:2016-02-12 03:09:41
【问题描述】:
很难解释,但基本上我有一个克隆的远程存储库,它的本地.git 信息已删除。一些工作已经完成;但现在我需要将它重新集成到远程仓库中;如何使用远程 git 存储库“初始化”本地项目?我知道我可以git init 但我不想丢失历史记录或提交等。
【问题讨论】:
标签: git repository
很难解释,但基本上我有一个克隆的远程存储库,它的本地.git 信息已删除。一些工作已经完成;但现在我需要将它重新集成到远程仓库中;如何使用远程 git 存储库“初始化”本地项目?我知道我可以git init 但我不想丢失历史记录或提交等。
【问题讨论】:
标签: git repository
再次克隆项目,然后使用 cp 或 rsync 命令将工作树中的所有项目文件覆盖为您修改的内容。
为防止本地更改和远程之间的潜在冲突,克隆远程后,您应该创建一个新的本地分支并用本地修改覆盖其工作树。然后,将此本地分支与跟踪远程的分支合并。
【讨论】:
假设您检出的最后一次提交的 SHA 是 abc123,请执行以下操作:
git init .
git checkout -b my_branch (where my_branch is a new branch name you made up)
git remote add origin <url of your remote repository>
git fetch
git reset abc123
git commit -am "Here are my changes"
git checkout master (or whatever branch you were on before you deleted .git)
git merge my_branch
如果你不知道你最后一次提交的确切提交,如果你选择任何提交在你最后一次提交的实际提交,这将起作用;你走得越远,你就会有越多的合并冲突。不要选择在您最后一次提交的实际提交之后发生的提交,因为这会导致您丢失更改。
【讨论】: