相关疑难解决方法(0)

如何检查存储库是否裸露?

我收到了警告

warning: You did not specify any refspecs to push, and the current remote
warning: has not configured any push refspecs. The default action in this
warning: case is to push all matching refspecs, that is, all branches
warning: that exist both locally and remotely will be updated.  This may
warning: not necessarily be what you want to happen.
warning:
warning: You can specify what action you want to take in this case, and
warning: avoid seeing this message again, …
Run Code Online (Sandbox Code Playgroud)

git

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

git svn网守仓库

我现在已经使用git很长一段时间了,主要是git-svn.现在我想说服我的同事从svn切换到git.但不幸的是,前提条件是svn存储库保持相当长的一段时间.所以我搜索了一个解决方案并提出了这本书:

Jon Loeliger的"使用Git进行版本控制".我买了它,它真的很好,但我不完全理解设置git svn看门人回购的指南.

在第16章中,他描述了一种情况,其中有一个Subversion存储库,至少有几个用户想要使用Git.他提出了一个单独的"看门人"git存储库,它是subversion的唯一接口.在git svn克隆了subversion repo(使用--prefix = svn /)后,所有分支都被推送到裸存储库(git push ../svn-bare.git'refs/remotes/svn/:refs/heads/svn / '和其他git用户被告知要克隆这个repo,它现在包含所有svn遥控器的本地分支.

这部分有效,我想我完全理解它.但我没有得到下一部分:

如果一个克隆裸存储库的开发人员将更改从他的repo推回到裸存储库,然后我在svn的裸存储库中提交这个,那么用户推送的提交由于git-svn创建的被替换的提交而有充分理由丢失.还是我错了?这是如何运作的?

这本书说

然后,要合并回subversion,在网守回购中,你做

git checkout svn/trunk(或其他分支 - 这是检查一个分离的头,因为svn/trunk是一个远程)git merge --no-ff new-feature git svn dcommit

如何在裸存储库中签出分支?我觉得这不行

这导致在分离的头上进行合并提交,然后将修改后的提交(在添加git-svn-id行之后)放在真正的svn/trunk分支上.

什么是真正的svn/trunk?

分离头上的提交"比冗余更糟糕.将其用于其他任何事情最终都会导致冲突.所以,只要忘记提交.如果你没有把它放在分支上,那就更容易了忘了"(Jon Loeliger).

我有点困惑.有人为创建一个git svn网守回购有更好的解释吗?我搜索过网站和这个网站,但我找不到任何适合我的网站.

在与同事合作时,我已经厌倦了浪费这么多时间与svn分支和融合.

svn git git-svn

15
推荐指数
2
解决办法
2584
查看次数

如何避免来自本地分支的意外dcommit

有时,我在git中创建本地分支,当我尝试从它们中提取时,我想收到一条警告消息.

如何防止自己意外地从当地分支机构撤职?

git git-svn dcommit git-branch

9
推荐指数
1
解决办法
666
查看次数

如何通过git push将多个分支部署到不同的目录?

在制作中,我维护了两个站点 - 测试和发布.每个都通过软链接指向不同的目录(例如)

beta_public_html -> /home/scott/myapp/trunk/public
public_html      -> /home/scott/myapp/branches/1.2.3/public
Run Code Online (Sandbox Code Playgroud)

我是一个长期的svn用户,转向git.我习惯通过svn更新部署并更改新分支上的软链接,事情非常简单.

现在我转向git.我仍然需要两个软链接(它是使用Passenger的Rails应用程序),但现在我希望它们指向两个不同的git分支("beta"和"release",比如说).我希望能够通过git push(或git pull)更新它们.

问题第1部分:我不确定最好的方法.

我开始这样做的方法是只部署到两个不同的遥控器,例如

git push ssh://scott@x.com/home/scott/myapp-beta beta
git push ssh://scott@x.com/home/scott/myapp-release release
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为默认情况下push不会更新工作树.

所以我进入远程目录并第一次运行git reset --hard,它会拉动工作树.但我再次推动,我无法得到新的推动 - 它只是停留在最初的一个.

(顺便说一句,请注意,我似乎无法推送到"myapp-beta.git" - 失败了,我必须推送到目录名.我担心这是问题的一部分,但我不知道我在这里做错了什么.)

所以,如果问题1的答案是我的方法没问题,问题第2部分:我实际上做了什么错了?如果有我应该使用的钩子,有人可以指向我吗?

(对问题1的回答说"运行这7个手动步骤"将不是一个非常有用的答案,因为svn checkout + ln -s是两个步骤.)

谢谢.我想回到编写代码.

git ruby-on-rails

6
推荐指数
1
解决办法
4109
查看次数

自动同步Subversion存储库和Git存储库

我的项目在网络文件系统上有一个Subversion存储库,一个新团队希望使用Git访问它,并能够提交它并从中获取更新.

我想到的是git-svn在同一网络文件系统上创建Subversion存储库的新裸克隆,并确保这两个存储库始终相互更新.

这样做的方法可能是为Subversion和新的Git存储库添加一个post-commit钩子,它们将更新另一个的存储库.

Subversion后提交钩子将包含git svn rebase,而Git则包含git svn dcommit.

问题是我将不得不使用某种锁来确保没有人提交到任何一个存储库,而其他人也被提交,因为它们总是必须在任何提交之前保持同步.这有几个缺点,其中包括提交Subversion或推送到Git存储库所需的时间(它必须等待钩子完成),以及一些用户可能无法运行的事实git svn(因为它是没有安装在他们的机器上),这意味着他们在提交/推送时无法更新其他存储库.

我该如何解决这些问题?Subversion和Git钩子会是什么样子?

svn git git-svn githooks svn-hooks

6
推荐指数
1
解决办法
7880
查看次数

是否有一个git-svn的钩子可以防止dcommit'ing分支?

我需要一些方法来防止我自己意外地分配本地分支 - 当然除了主分支.有一个简单的方法吗?

git-svn

5
推荐指数
1
解决办法
212
查看次数

标签 统计

git ×5

git-svn ×4

svn ×2

dcommit ×1

git-branch ×1

githooks ×1

ruby-on-rails ×1

svn-hooks ×1