我即将对我们的svn回购做一个git svn dcommit - 正如在很多地方推荐的那样,我想弄明白我将要做什么干运行.因此,我跑了:
git svn dcommit -n
Run Code Online (Sandbox Code Playgroud)
这产生了输出:
Committing to http://somerepo/svn/branches/somebranch
diff-tree 1b937dacb302908602caedf1798171fb1b7afc81~1 1b937dacb302908602caedf1798171fb1b7afc81
Run Code Online (Sandbox Code Playgroud)
如何以我作为人类消费的格式来查看?想到一个修改过的文件列表.这可能很简单,但在这些哈希上运行git diff-tree会给我一个目录和一些其他哈希的引用,以及一些数字.不太确定该怎么做.
非常感谢,乔希
几个月前我配置了一个带有svn存储库的git.到目前为止,我只使用svn存储库来保持其上提供的应用程序的最新状态.但现在我也想把东西拿回来.要做到这一点,我要提交的每个功能都需要在一个单独的分支中.我读到了你应该如何创建一个新的分支等.但我认为我错误配置我的git,我没有任何分支信息等我认为我只有主干信息.这是我在我的git配置中设置svn存储库的方式:
[remote "origin"]
url = url-of-git-repository
fetch = +refs/heads/*:refs/remotes/origin/*
[svn-remote "svn"]
url = url-of-svn-repository/trunk
fetch = :refs/remotes/git-svn
[branch "master"]
merge = refs/heads/master
remote = origin
... other branch information below (these are git branches)
Run Code Online (Sandbox Code Playgroud)
现在你可以看到我的svn-remote url直接进入trunk.我读到了添加这个:
branches = branches/*:refs/remotes/*
Run Code Online (Sandbox Code Playgroud)
但是当我创建一个新的分支时,它会将它添加到trunk/branches /.当我不添加该行时,它不知道该分支的目的地是什么.
任何想法如何在不破坏现有分支,代码等的情况下解决这个问题?
迎接,大安
我目前有一个关于谷歌代码的项目,我想将其整合到Github上的一个项目中.
问题是SVN项目本质上只是github上较大项目的一个文件夹,所以我认为我不能只使用git-svn.
我假设我可以使用git svn克隆项目,但后来我不确定如何将svn项目正确地移植到现有的git项目上.
期望的结果是将SVN历史记录转换为Git分支(不将其移植到master上).
能够重新回到svn并不是真的有必要(如果这有帮助的话).
解决了
我最终使用了just_doug的建议,但稍作修改:
1:我使用http://ivanz.com/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/中的建议将googlecode添加为远程参考
2:我为我想要的远程分支创建了一个新的分支
3:我用过
git merge -s ours --no-commit googlecode-remote
将两者合并
4:然后我用了
git read-tree --prefix = folder1/folder2 / -u googlecode-remote
读取合并历史记录并将其重新绑定到所需的子文件夹
希望这可以帮助处于类似情况的人;)
我必须使用svn作为源代码管理工具,但我想在本地使用git分支.我想知道它是否可以正常工作,最好的方法是什么.我读到了'git svn',但看起来我必须同步整个svn repositoy才能使用它.那不是一个选择.假设我是唯一的开发人员(不是开发人员之间的git推/拉),并且只想'本地'使用git.什么是最好的方法?在我当地的检查项目上只是'git init'?并在同一文件夹中使用这两个工具?有更好的方法吗?
嗨,我想撤消我的最后一次提交.我做的是我对文件进行了一些更改然后我提交了它们但是我还没有将它们推送到主回购.在git commit -m"comment"命令之后我运行了git status并得到了这条消息
Your branch is ahead of 'origin/demo' by 1 commit
Run Code Online (Sandbox Code Playgroud)
所以现在我要撤消我的最后一次提交,那么我该怎么做呢?
在我的公司,我们有一个subversion服务器,每个人都在他们的机器上使用subversion.但是我想使用git,在本地提交更改,然后在我准备好时"推"它们.
但是,我无法理解在以下情况下会发生什么.假设我在本地进行了3次git提交,现在我已准备好"推送"subversion服务器上的所有内容.如果我理解正确,git svn dcommit基本上应该在服务器上依次进行3次提交,对吗?但是,如果在此期间(让我们说在第二次和第三次提交之间)另一位同事发出提交,会发生什么?我能想到的场景是:
1)在提交期间git类型的"锁"(甚至可能吗?)subversion服务器,以便我的提交正在原子化,我的同事的一个是在我的之后完成的
2)服务器上的提交历史记录变为mine1-mine2-other-mine3(即使'其他'应该失败,因为我的同事当时没有更新的工作副本).
我认为它是#2,但也许提交速度如此之高,以至于很少成为一个问题.那么#1还是#2?
我是一个身份验证代理,需要通过https访问远程SVN仓库git svn.
代理在我的~/.subversion/servers文件中定义.
当我开始时git svn fetch,我收到一条错误消息:
RA图层请求失败:' http:// url/to/repos/branches/experimental '的选项
好.没问题.让我们写下凭据~/.subversion/servers→一切正常.
但是,我是一个有点有点不舒服具有存储在一个纯文本文件在我的硬盘我的域凭据.
在使用https 时,还有其他方式(特别是交互式方法)在我的代理上进行身份验证git svn吗?
信息:应在其中完成此操作的PC位于Windows域中,并使用NTLM进行身份验证.
我有一个在CodePlex中托管的项目,我在创建这个项目时选择了SVN.现在我尝试使用Git来克隆这个项目.
我试过:"git svn clone the_url"
但它只是永远挂起.它没有问我用户名或密码或任何东西,只是挂起.
知道如何让这个工作吗?
我需要一些方法来防止我自己意外地分配本地分支 - 当然除了主分支.有一个简单的方法吗?
我正在关注SVN到Git的迁移指南,git svn clone很好但是当我运行清理命令时我得到了这个错误,我甚至不确定这意味着什么.我该如何解决这个问题?
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git
Could not retrieve the config for the key: svn-remote.svn.branches
Run Code Online (Sandbox Code Playgroud)