如何解决Git 添加从 svn 到远程的分支
TL;DR
我不仅要移动主干,还要将所有分支移动到我要从 SVN 迁移到的 git
远程。
我们有一个包含许多分支的 SVN 存储库,我们希望将这些分支迁移到 git
。出于测试(和演示)目的,我已经建立了一个小型 SVN 存储库,我现在将其迁移到 git
。因此我从
$ git svn init -t tags -T trunk -b branches --prefix=svn_origin/ svn://localhost/
$ git svn fetch
这成功地创建了一个包含 SVN 存储库主干的本地 git 存储库。但是,只有一个本地分支:
$ git branch
* master
但是 git
仍然知道其他分支:
$ git branch -a
* master
remotes/origin/master
remotes/svn_origin/Branch%2001
remotes/svn_origin/trunk
因为我现在不关心本地存储库,所以我想将这些远程分支推送到新的 git
远程 - 因此,在创建远程存储库并将我的主分支推送到它之后,我试过了:
$ git push --all
Everything up-to-date
所以这显然不起作用。然后我尝试:
$ git push origin '*:*'
Enumerating objects: 5,done.
Counting objects: 100% (5/5),done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2),done.
Writing objects: 100% (5/5),441 bytes | 220.00 KiB/s,done.
Total 5 (delta 1),reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1),done.
To https://github.com/MetaColon/SVN.git
* [new branch] origin/master -> origin/master
* [new branch] svn_origin/Branch%2001 -> svn_origin/Branch%2001
* [new branch] svn_origin/trunk -> svn_origin/trunk
乍一看似乎它有效,但事实是我的远程存储库中没有创建任何分支 - 相反,分支似乎已被推送到 svn_origin
而不是 origin
(是我的 git
存储库)。
然后我尝试了一些我发现的东西 here 将所有分支提取到我的本地存储库(然后我可以将它们推送到我的远程):
$ git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#svn_origin/}" "$remote"; done
Branch 'origin/master' set up to track remote branch 'master' from 'origin'.
fatal: Cannot setup tracking information; starting point 'svn_origin/Branch%2001' is not a branch.
fatal: Cannot setup tracking information; starting point 'svn_origin/trunk' is not a branch.
这仅获取了我已有的 master
分支。这似乎是由于 SVN 遥控器不是普通遥控器造成的:
$ git remote
origin
此时,唯一剩下的选项似乎是手动(或通过脚本)检查每个分支,然后从本地存储库推送所有分支。但肯定有更简单的方法吗?
解决方法
我写了一个似乎可以完成这项工作的脚本:
function Example(props) {
const { prop1,prop2 } = props;
React.useEffect(() => {
console.log("first");
},[prop1]);
React.useEffect(() => {
console.log("second");
},[prop2]);
return <>Example</>;
}
function Component() {
const [counter,setCounter] = React.useState(0);
const [counter2,setCounter2] = React.useState(0);
const together = () => {
setCounter2((p) => p + 1);
setCounter((p) => p + 1);
};
return (
<>
<Example prop1={counter} prop2={counter2} />
<button onClick={together}>together</button>
</>
);
}
然而,这并不是我想要的更简单的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。