相关疑难解决方法(0)

Git远程/共享预提交钩子

使用一个官方存储库作为远程数据库,并从中克隆多个本地存储库,是否可以在该主存储库上编写预提交钩子并在其所有克隆上强制执行?

git githooks

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

分布式版本控制系统和企业 - 一个很好的组合?

我可以看到为什么分布式源代码控制系统(像Mercurial这样的DVCS)对开源项目有意义.

但它们对企业有意义吗?(通过集中的源控制系统,如TFS)

DVCS的哪些特性使其更适合或更适合具有许多开发人员的企业?(通过集中式系统)

git version-control tfs mercurial dvcs

49
推荐指数
1
解决办法
7181
查看次数

如何在Git中管理项目的多个版本

我有一个开源的项目git用于修订控制.很快,我将发布该项目的高级托管版本,但是对于高级托管版本(性能等)的代码将进行更改,这在开源版本中不应该存在.

我想避免使用两个单独的目录/项目,因为如果我修复了开源版本中的错误,那么该错误最有可能出现在高级托管版本中.我不想在两个地方做出改变.

管理这个的最佳方法是什么?简单分支git将无法正常工作,因为某些文件需要有两个版本:开源版本和高级托管版本.

谢谢您的帮助.

git version-control project-management

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

卖给我分布式版本控制

我知道有数千个相似的话题浮出水面.我在这里读了至少5个线程但是为什么我仍然不相信DVCS?

我只有以下问题(注意我只是自私地担心Java项目)

  • 在当地投入的优势或价值是什么?什么?真?所有现代IDE都可以让您跟踪您的更改?如果需要,您可以恢复特定的更改.此外,它们还具有在IDE级别标记您的更改/版本的功能!?
  • 如果我的硬盘坏了怎么办?我的本地存储库在哪里?(那么与登记中央仓库相比,它有何凉爽?)
  • 离线工作或在飞机上工作.有什么大不了的?为了让我用我的更改构建一个版本,我必须最终连接到中央存储库.直到那时我如何在本地跟踪我的更改并不重要.
  • Ok Linus Torvalds将自己的生命献给了Git并且讨厌其他一切.这是否足以盲目地赞美赞美?与我的中型项目中的离岸开发商相比,Linus生活在一个不同的世界?

推我!

svn cvs dvcs centralized

21
推荐指数
4
解决办法
3109
查看次数

Git"获取网址"和"推送网址",有什么区别?

某个遥控器的Fetch URL和Push URL何时不相同?

例如,当我运行git remote show central远程命名为central时,输出如下:

* remote central
  Fetch URL: aoberoi@example.com:/home/aoberoi/Repositories/example.git
  Push  URL: aoberoi@example.com:/home/aoberoi/Repositories/example.git
  HEAD branch: master
  Remote branch:
    master tracked
Run Code Online (Sandbox Code Playgroud)

我只是不明白为什么我会从两个不同的URL中获取和推送,这是什么类型的工作流程?

git workflow push git-fetch

12
推荐指数
1
解决办法
6894
查看次数

Git托管设置从开发人员那里获取,拒绝破坏提交?

开发团队经常受到版本控制的构建暂时受损的困扰.整个团队的生产力可以在尝试从一个人破坏的构建中恢复时停止.

是否有软件可以通过不接受首先未通过测试的提交来允许托管Git以防止破坏版本控制中的版本?例如,使用场景可能如下所示:

  • 该软件在一台服务器上运行,该服务器不断从开发人员发布的Git存储库中提取修订版.
  • 对于每个撤销的修订版,如果软件通过单元测试,软件将构建修订版并进行测试.
    • 如果它通过了测试,则修订将合并到"稳定"分支中.
    • 如果它没有通过测试,它将被拒绝并且修订版本不会合并到"稳定"分支中.开发人员被迫更正修订版并重新提交.
  • 默认情况下,开发人员从"稳定"分支中拉出应该永远不会被破坏的分支 - 在测试不会失败的意义上 - 并且由于他们花费更少的时间被破坏的构建阻塞而更有效率.这种系统的有用性随着团队规模的增长而增长.

几点说明:

  • 在这种情况下,Git的预先提交钩子和类似的东西并不令人满意.解决方案应该是自动的,并在服务器端针对每次提交强制执行.
  • 寻找尽可能实现和思考的解决方案,而不是从头开始编写这样的系统.

git version-control build-automation unit-testing

7
推荐指数
1
解决办法
931
查看次数

使用Git的TeamCity Visual Studio插件

我们想使用TeamCity实现CI.

我们使用Git进行源代码控制,并希望利用TeamCity的"预先测试的提交"或"个人构建"功能.

有没有人对Teamcity的VS插件有经验?

据我所知,它只支持Subversion,没有关于Git的消息.

任何人都使用此设置取得了成功吗?

git teamcity visual-studio

7
推荐指数
1
解决办法
4386
查看次数

与分布式源代码控制持续集成

我想我误解了一些东西却找不到确切的东西.我用Google搜索,但没有得到这个想法.有两种流行的技术 - 持续集成和分布式源代码控制.人们以某种​​方式将它们结合起来,但我不明白如何.

AFAIK,持续集成意味着一旦您在本地测试代码,就会提交到中央存储库(推送).与此同时,分布式系统非常受欢迎,因为您可以在本地提交和提交并提交代码并使用代码,只有在您对其充满信心和满意时才将其推送给其他代码.因此,虽然它没有强制,但它鼓励不要急于推动.在我看来,每隔几个小时就不会发生CI推送的经典之作.

那么你如何以及何时将这两件事联系起来呢?或者我说的错了吗?

编辑

我读了前三个答案.感谢您的答复.我仍然感到困惑,但现在我可以更准确地提出这个问题了.

在分布式系统中,没有那么多频繁提交的愿望,然后是集中式的.那么有关于在分布式系统中发布以符合CI的频率的指南吗?它仍然是一天几次还是这个规则的另一个版本?

version-control continuous-integration

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

当Hudson构建失败时,为Git预先提交钩子

我正在试图弄清楚如何编写一个预提交钩子来Git检查我的Hudson构建状态.如果先前的构建失败,则应该禁止任何人在没有首先编写特定行的情况下进行提交,例如"固定构建".

编辑:

第一个回答者提供了硬币的一面:Hudson API.

我现在需要另一面.如何编写预提交挂钩Git

git continuous-integration hudson github pre-commit-hook

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

git push merge错误,但git pull已经是最新的.试过回复,同样的问题

我做:

$ git commit .
$ git push
error: Entry 'file.php' not uptodate. Cannot merge.
Run Code Online (Sandbox Code Playgroud)

然后我做

$ git pull
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我只想从远程副本中获取最新版本,并覆盖本地副本上的任何内容.

编辑:我尝试了一切.我删除了我的本地仓库,并且

$ git clone ssh://root@something.com/directory
...
Checking out files: 100%, done.

$ git status
On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

一切看起来都不错吧?拉以防万一.

$ git pull
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

我在文件中进行了一行更改,看看是否可以推送它.

$ git commit .
[master 1e18af1] Rando change
1 files changed, 2 insertions(+), 0 deletions(-)

$ git push
Counting objects: 13, done.
Delta compression using up to …
Run Code Online (Sandbox Code Playgroud)

git

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

在Git推送之后,远程仓库将文件显示为已删除

我在远程仓库上找不到任何文件.

  1. 他们的教程中描述的共享主机(site5)上创建了一个Git仓库
  2. 初始化并添加了一个简单的文本文件.好
  3. 克隆到我的本地(WinXP)机器上.好
  4. 删除了我本地副本上的测试文件,添加了一些真实文件.好
  5. 致力于当地的变革.好
  6. 推送到远程服务器.好
  7. MsysGit发出了一些警告(下图),但告诉我我们取得了成功.
  8. FTP进入远程服务器,但文件不存在.
  9. SSH(使用PUTTY)并运行git status.它给了我整个列表,但每个文件前面都有"删除"字样.见下文.

使用我不在任何分支上的提示,我检查了具体的提交.它找到了它,但文件git status仍然没有显示.它告诉我:

注意:转移到'9c47b5',这不是本地分支

试图结帐大师HEAD.没有运气,它告诉我

-jailshell:/ usr/bin/git:没有这样的文件或目录


Git状态显示:

[frumwebc@your tanee.com]$ git status
# Not currently on any branch.
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    _notes/dwsync.xml
#       deleted:    contact-us/_notes/dwsync.xml
#       deleted:    contact-us/index.html
#
Run Code Online (Sandbox Code Playgroud)

警告是:

warning: updating the current branch
warning: Updating the currently checked out branch may cause confusion,
warning: as the index …
Run Code Online (Sandbox Code Playgroud)

git

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

哈德森+ git + maven

我很快就会转向git进行版本控制.我的连续构建系统是Hudson,我使用maven来构建我的工件.

任何人都有最佳实践来设置git以最好地使用这些其他工具.

关于如何在git中管理包和插件以便最容易地进入Hudson的建议也将受到赞赏.

谢谢,麻烦您了.

git maven-2 hudson hudson-plugins

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