在下面这张来自Github(c)桌面应用程序的图片中,有这个按钮“从主服务器更新”(在本例中)。我想知道是否有人了解它触发的确切git函数。如果使用merge或rebase,我主要感兴趣。(我找不到任何类型的日志控制台)。 最佳答案 GitHubDesktop中按钮下的git命令没有详细记录,所以我前一段时间调查了一下。我得出的结论是“更新自...”按钮已发送gitmerge--no-ff-m"Merge"或与设置为的“比较”分支几乎相同的东西在GitHubDesktopGUI中。我是这样得出结论的:首先,我将我控制的存储库fork
假设您有一个带有中央主git存储库的场景,开发人员和CI引擎从中克隆。IE。非常接近传统的非分布式版本控制系统设置,具有中央集线器和许多节点。这可以是像Github(Gitlab/Savannah/Azure等)这样的云服务,或者带有git服务器或其他内部设置的Synology。现在假设服务器被盗或被闪电击中或任何其他会导致中央存储库及其所有集中备份消失的事情。您只剩下各种克隆,幸运的是,其中一个已完全更新,因此您创建了一个空白的git存储库替换服务器,用作future的中央存储库,然后开始处理克隆。完全更新的克隆知道所有带有“gitbranch-a”的“remotes/origin”
我对Git很陌生,已经阅读了ProGit书@http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging.我的问题是我今天所做的是否是使用生产服务器和远程Git存储库的首选方式。我将我的存储库托管在GitHub上,使用三个远程分支:开发->测试->主控。每当'testing'分支被证实工作时,我在本地gitmerge'master'和'testing'(快进?),并且gitpush'master'到GitHub。在生产服务器(/opt/www/url.com/)上我做了:gitinitgitremoteaddo
我们是一个使用git的团队,我们有一个中央存储库(单一来源),我们用它来push和pull(capistrano使用它来部署分支大师)我们定期提交和部署(每天部署10~20次),这意味着我们有很多merge提交,gitblame成为一场噩梦我读过,为了让历史更简单,我们可以使用gitpull--rebase来避免这种情况。始终在master分支上执行此操作是个好主意吗?如果是,我建议在配置中设置它:gitconfigbranch.master.rebasetrue这有什么问题吗? 最佳答案 完全没有问题。事实上,这是首选。99%的情
我打算将我的发布分支merge到master,我想知道在merge到master时是否应该将develop中的提交压缩为单个merge提交。关于gitflow的一般文档包含来自Atlassian页面的如下图:在这些图中,只有单个提交出现在master上,而不是所有对develop的提交。实际上,我喜欢拥有一个仅发布提交的主分支的想法。在merge到master时,我应该保留develop上的所有提交吗?还是在遵循Gitflow时在merge到master之前压缩提交?来源文章链接:GitflowWorkflow-Atlassian 最佳答案
这是我做的:我运行了gitcheckout-bbranch_name。我在branch_name上做了一些提交。我检查了master分支并进行了快速merge。当我运行gitlogbranch_name--oneline时,我收到以下消息:fatal:ambiguousargument'branch_name':bothrevisionandfilenameUse'--'toseparatepathsfromrevisions,likethis:'git[...]--[...]'可能是什么问题? 最佳答案 它告诉您您有一个名为“br
我正在将svn存储库迁移到git。我创建了一个干净的临时目录,使用gitsvninit在其中获取内容,然后添加了Remote并推送了它。现在在另一个实际的源目录上(我在从svn提交内容之前从空的repo克隆了它)我做了一个获取。然后我进行了checkout并收到了上述消息。过了一会儿,我认为我可以通过pull获得源代码并做到了。我的问题是该错误消息在该上下文中意味着什么?我是如何得到那个特定的错误信息的?免责声明:我是一个git新手 最佳答案 我相信这是因为你的fetch,它只获取远程引用和提交,没有给你一个本地master分支来c
我一直认为.git/branches目录是用于遗留目的,并且git过去使用该目录,但现在使用.git/refs目录反而。这是真的?如果没有,那么该目录的用途是什么,因为我从未见过它被使用或引用过。编辑我使用的是git版本1.7.3.4。 最佳答案 有用的gitrepository-layoutdocumentation中描述了.git/branches现在“略微弃用”的使用:branches:AslightlydeprecatedwaytostoreshorthandstobeusedtospecifyURLtogitfetch,g
我有一个很大的存储库,目前在顶级子文件夹中包含多个项目,比如/a、/b、/c和/d。现在我想将该存储库分成两个不同的存储库:一个包含/a和/b,另一个包含/c和/d。我知道gitfilter-branch--subdirectory-filter,它非常适合提取单个目录,但它似乎不能一次提取多个目录。我也知道gitfilter-branch--prune-empty--tree-filter,它允许我删除所有内容,但两个想要的目录。这感觉不完全正确,因为我必须手动指定所有可能存在的顶层目录。有没有更好的方法从一个大仓库中提取两个目录?PS:当然,使用gitfilter-branch以外
强制推送更改时,这两个git命令有什么区别?gitpush-foriginbranch和gitpushorigin+branch 最佳答案 长话短说如果您只推送一个分支,则没有区别。gitpush-foriginbranch和gitpushorigin+branch是完全等价的。当您使用单个gitpush推送多个分支时,就会出现差异。.简而言之,可选的+比-f给你更好的控制确实:如果您一次推送多个引用,+允许您指定哪些推送的引用被强制推送,而--force(或-f)应用于所有被推送的引用。更多详情什么git-push手册页告诉你gi