我正在使用git
开发,但我必须通过svn
发布。
这就是我设置git-svn
(git svn clone
)的原因。
我通常的工作流程是这样的:
git svn rebase # get local git repository up-to-date
git add file # add some code
git commit # commit code to local git repository
git svn dcommit # push changes from local git repository to public svn repository
到目前为止一切正常。
但是,我想在我的本地secret
存储库中创建一个分支(例如git
),git-svn
完全忽略该分支。
我想我必须做这样的事情:
git svn rebase # get local git repository up-to-date
git branch secret # create secret branch in local git repository
git checkout secret # switch to secret branch in local git repository
git add secret.file # add some secret code
git commit # commit secret code to secret branch of local git repository
git checkout master # switch back to public branch in local git repository
git svn rebase # get public branch of local git repository up-to-date
git add public.file # add some public code
git commit # commit public code to public branch of local git repository
git svn dcommit # push public changes from local git repository to public svn repository
此工作流程是否会secret.file
完全隐藏svn
?
如果是这样,我想我可以git merge
将master
git svn dcommit
svn
改为master
一旦它获得'未分类' 。这是对的吗?
另外,为清楚起见,是否可以将public
重命名为{{1}}?
如果是这样,怎么样?请注意,两个存储库中的分支已有历史记录。
答案 0 :(得分:1)
是的,您的秘密更改将保留在您的本地git中,直到您执行git checkout secret && git svn dcommit
或将您的更改合并到其他分支(master
/ public
)并从那里进行dcommit。
您可以简单地开始公开,而不是将master重命名为public。
git checkout master
git checkout -b public
git commit, etc...
git svn dcommit
分支机构将“记住”他们从中开始的svn分支,您可以随时使用git svn info
进行检查。切换到公共后,您可以选择删除master:git branch -D master