标签: git-svn

如何设置异构多用户git/svn环境

我为一个使用Subversion作为主要VCS的团队工作,但几乎每个人都开始通过git-svn在本地使用git.现在我们正在考虑完全转换为git.

作为一个中间步骤,最好同时使用它们两个.问题不在于那些非常乐意切换到git的用户,而是我们围绕Subversion构建的持续集成/构建基础架构.管理当然不会对任何大爆炸导致的停机时间感到激动,我们每两周发布一次新功能,几乎每天都会发布错误修复和其他小问题.理想情况下并行运行这些系统会使最终的开关成为无问题.

问题似乎是不存在源自Subversion存储库的共享git存储库.每个并行git svn merge/rebase都会创建新的git提交,这些提交都是重复的.并行我指的是两个开发人员在他们自己的同一个git存储库的克隆中进行合并或重组.更糟糕的是,git svn dcommits似乎改变了git commit的ID.

那么这种环境是否可能,或者git-svn真的只是一个单用户工具?

svn git git-svn

3
推荐指数
1
解决办法
336
查看次数

防止使用git-svn将本地.gitignore推送到svn repo

我正在使用git-svn在本地使用git并部署客户端的svn repo.但是,在将svn ignore条目迁移到.gitignore后,我必须将它们提交给git.

但我不希望每次执行时都将该文件作为对svn repo的提交进行推送 git svn dcommit

有什么建议?

git git-svn

3
推荐指数
1
解决办法
816
查看次数

GIT vs SVN:它在提交方面有何不同(在GIT中),只是在文件中本地保存更改(在SVN中)

我想知道GIT在执行本地提交(提交命令)时给出的差异(或者说优势),而不是在离线工作保存SVN中工作目录的更改(未连接到服务器)

我已经读过GIT提供离线工作的优势,即用户可以在本地执行多次提交,然后当用户连接到服务器时,他可以将更改推送到远程服务器.我想知道为什么所有提交命令都只是提交到本地磁盘是有利的,这只是保存对SVN中磁盘的更改(当没有与服务器连接时)而不是提交到项目分支.

我喜欢GIT,但我无法理解这种差异.请帮忙 !!

谢谢,Nayan

git git-svn

3
推荐指数
2
解决办法
660
查看次数

从历史记录中删除不需要的文件,包括带有filter-branch的所有引用

我最近克隆了一个SVN存储库,它曾经有一些二进制文件,不再需要它们了.不幸的是,我已经把它推到了Github,其中包含了二进制文件.我现在想要使用'git filter-branch'删除它们,但是当涉及到标签和分支时我遇到了一些问题.

基本上,我创建了一个简单的shell脚本来删除已由以下命令确定的文件列表:

git rev-list --objects --all | grep .jar > files.txt
Run Code Online (Sandbox Code Playgroud)

删除脚本如下所示:

#!/bin/sh
while read file_hash file_to_remove
do
    echo "Removing "$file_to_remove;
    git filter-branch --index-filter "git rm --cached --ignore-unmatch $file_to_remove"
    rm -rf .git/refs/original/;
    git reflog expire --all --expire-unreachable=0;
    git repack -A -d;
    git prune
done < $1
Run Code Online (Sandbox Code Playgroud)

我有一些标签(全部列在.git/packed-refs中),一个.git/refs/remotes/origin(指向Github repo).使用上面的脚本删除文件没有想要的效果('du -cm'仍然输出相同的大小;'git rev-list'仍然列出文件),直到我手动删除.git/packed中的所有引用-refs和.git/refs/remotes/origin目录.

当然,我正在丢失所有标签以及使用这种方法将我的本地更改推回给Github的可能性.有什么我错过了或有没有其他方法从所有分支/标签中删除文件而不破坏我的历史记录?

非常感谢,Matthes

git git-svn git-filter-branch git-rewrite-history

3
推荐指数
1
解决办法
2013
查看次数

如何在bitbucket中更改提交的用户名?

如何在bitbucket帐户中更改提交用户名?要改变git,我使用了这个命令

 git filter-branch -f --env-filter " GIT_AUTHOR_NAME='newUser' GIT_AUTHOR_EMAIL='newuser@email.com' " HEAD
Run Code Online (Sandbox Code Playgroud)

它只更改本地计算机中的用户名,但不会更改我的bitbucket帐户中的用户名.如何在bitbucket中更改提交的用户名?

git git-svn bitbucket bitbucket-api

3
推荐指数
1
解决办法
1万
查看次数

将现有的Git仓库推送到svn中的文件夹

我有一个现有的git存储库,我一直在努力.但是最近,我需要将提交推送到svn(不需要包含所有合并,但至少有一个线性主分支可以)

我不是很擅长git/svn,我只是一个普通的用户,使用SourceTree和CornerStone或者Tortoise,有很好的用户界面来做我的提交,分支和标记.我之前使用git-svn将svn repo迁移到git中,但从来没有反之亦然.

可能吗?我已经通过几个教程搜索,但没有一个工作.我也没有很好的与喜欢那些术语rebase,reflog等会很感激,如果有一些很好的指导来完成简单的事情,而不需要通过GIT中/ SVN的更复杂的部分学习.(简单,因为我猜必须有人面对同样的问题并且之前做过)

提前致谢!

svn git version-control git-svn

3
推荐指数
1
解决办法
1008
查看次数

多台机器上的GIT克隆

这是我的设置......

笔记本电脑(Mac) - svn存储库的git克隆

拇指驱动器 - 笔记本电脑git存储库的git克隆

服务器(Win Server 08) - 拇指驱动器存储库的git clone

由于某种原因,我无法保持同步......

如果我在服务器上进行更改,我会在拇指驱动器上执行"git pull"以获取更改.将拇指驱动器带到笔记本电脑上并在笔记本电脑上进行"git pull".从那里,我可以做"git svn dcommit",一切都进入SVN回购没有问题.

如果我使用"git svn rebase"从SVN中取出更改,然后拉动到拇指驱动器并执行"git status",它表示我在主/源之前的##版本,我无法弄清楚为什么.

服务器

>git remote show
origin 

>git remote show origin
* remote origin
  Fetch URL: E:/proj
  Push  URL: E:/proj
  HEAD branch: master
  Remote branch:
   master tracked
  Local ref configured for 'git push':
   master pushes to master (local out of date)
Run Code Online (Sandbox Code Playgroud)

笔记本电脑

>git remote show
(nothing)

>git remote show origin
fatal: 'origin' does not appear to be a git …
Run Code Online (Sandbox Code Playgroud)

svn git git-svn

2
推荐指数
1
解决办法
478
查看次数

为什么git-svn clone将'master'设置为随机分支?

我正在尝试将现有的svn存储库移动到git.我们不需要在两者之间进行任何同步(所以没有git svn fetches或dcommits) - 我们只是移动过来就是这样.

我发出此命令来创建git存储库:

git svn clone -s https://server/repos/my_repo
Run Code Online (Sandbox Code Playgroud)

这很好.但是,当我cd进入新my_repo目录时,其中的文件是其中一个分支(不是主干)的一部分.

做一个git branches -a收益率:

* master
  modelExperimentalTrunk
  modelExperimentalTrunk@719
  dRefactoring
  reorganise
  stableV396
  tags/v1.0
  trunk
Run Code Online (Sandbox Code Playgroud)

我在主分支上,但是我的沙箱中的文件实际上来自dRefactoring分支(我们较为模糊的分支之一).

问题:

  • 为什么master分支机构没有连接trunk
  • 有没有办法重新连接到trunk?或者可以在git svn clone舞台上完成吗?
  • 此外,鉴于这将在服务器上,有没有办法git svn可以创建一个--bare存储库?

svn git version-control git-svn

2
推荐指数
1
解决办法
1752
查看次数

忘了推送和丢失更改

Git在我的本地计算机上配置.我使用了以下命令

git add .
git commit -m "message " 
Run Code Online (Sandbox Code Playgroud)

昨天忘了推.我昨天做了几处修改.今天由于一些问题,我无法做到push.我不知道今天早上发生了什么,但我的所有代码都消失了.

我需要哪些命令来获取代码?

谢谢

git git-svn

2
推荐指数
1
解决办法
357
查看次数

git svn clone创建空的git存储库?

我正在尝试使用此命令将SVN存储库中的最后100个修订引入本地git存储库(在Windows上)。

git svn clone http://...-r 100

由于某些原因,除了.git文件夹以外,结果检出为空。

但是如果没有-r参数,它就可以正常工作(尽管可以检查出时间的曙光)。

有人知道发生了什么吗?

谢谢!

svn git clone git-svn

2
推荐指数
1
解决办法
2327
查看次数