当我执行gitpush时,我看到以下内容:warning:updatingthecurrentlycheckedoutbranch;thismaycauseconfusion,astheindexandworkingtreedonotreflectchangesthatarenowinHEAD.我用Google搜索了这条消息,我能找到的只有一个gitmailinglistdiscussion作者试图准确地决定如何使此消息更好地与我沟通真正的问题是什么。这是怎么造成的,我该如何解决? 最佳答案 当您推送到非裸仓库时会发生这种情况。裸仓
长话短说...据我所知,术语“分支”(在Git中)可能指的是相关但不同的事物:指向提交的非符号引用/指针,此类引用的名称(例如“master”),存储库的提交DAG的子图,由此类引用指向的提交可到达的所有提交组成。但是,我看到该术语显然用于指代这三种可能用法以外的其他事物(下面有更多详细信息)。在Git上下文中,是否还有我上面的列表中缺少的术语“分支”的其他有效且明确的用法?更多详情在使用Git大约一年后,我正在为CS学生准备一个简短的教程。我真的很想确定Git术语,以避免任何混淆。当然,我使用Git分支已有一段时间了;我很乐意使用它们并发现Git分支模型很棒。但是,我仍然发现术语“分
默认gitlab在gitlab.yml中有下一个配置:email:from:notify@gitlabhq.comhost:gitlabhq.com但是,我需要指定其他变量(主机、端口、用户、密码等)才能使用另一个邮件服务器。我该怎么做? 最佳答案 现在在Gitlab5.2+中完全不同了。它在“/home/git/gitlab/config/initializers/smtp_settings.rb.sample”中,我们只需要按照其中的说明操作即可。 关于ruby-on-rails-G
我犯了一个错误,开始提交“到最后一个标签”,这使我的提交进入了“无分支”。它们应该应用于现有分支机构的负责人。我还没有推送我的更改。我发现了一些其他问题,关于何时提交在错误分支中,但现在我没有没有分支,所以我不知道如何处理这个问题。最好,我想完全消除我的错误,并将我的更改“移动”到正确分支的末尾。如果我必须将我的错误留在历史中,我至少需要将它们merge。 最佳答案 您当前处于分离的HEAD状态。要解决这个问题,您需要做的就是使用gitbranch创建一个新分支或gitcheckout-b.这将为您留下一个您可以使用的本地分支,甚至
一位好心的同事将更改推送到Master而不是创建分支。这意味着当我尝试提交时出现错误:Updateswererejectedbecausethetipofyourcurrentbranchisbehind我知道这应该通过发出pull请求来重新同步来解决,但我不想丢失我在本地所做的更改,我同样不想强制提交并清除所做的更改由其他人。允许我merge更改而不丢失任何更改的正确方法是什么? 最佳答案 如果您已经进行了一些提交,您可以执行以下操作gitpull--rebase这会将您所有的本地提交置于新pull的更改之上。对此要非常小心:这可
假设有一个我想贡献的GitHub存储库。我将该存储库fork到我的GitHub帐户中,然后从我的PC帐户中克隆fork。很好。在处理问题之前,我首先想将我的复刻与“原始”存储库同步。我转到我的帐户fork,单击NewPullrequest,确保我选择我的作为base和原始master作为headfork,我看到了差异(人们在原始存储库中所做的所有提交不在我的).然后我在我的fork上创建pull请求,并将这些更改merge到我的fork中。我转到我的本地存储库并执行gitpull,然后同步了所有内容。很好。现在问题来了,现在在我的GitHub帐户中它总是说“这个分支是X提前提交”,其中
gitfilter-branch--env-filter'exportGIT_AUTHOR_EMAIL="foo@example.com"exportGIT_AUTHOR_NAME="foo"'--commita..commitb您想重写哪个ref的结果?看来filter-branch不允许您使用范围符号使用两个任意引用之间的范围。如果这种方法不可行,那么在一系列连续提交(分支历史中的某处)上运行过滤器的最直接的方法是什么。 最佳答案 正如@kan所说,您不能在历史中间应用过滤器分支。你必须从你已知的提交申请到历史结束gitfilt
Master是在commit#10中。然而,我最终意识到我在测试过程中破坏了一些没有被测试发现的东西。我最终提交了#5,然后慢慢地重新做了每个提交的开发并不断调整它以确保它不会再次导致错误。现在我基本上回到了提交#10,但是有一些更改可以防止错误发生。我现在想使用我的更改创建提交#11。但是当我试图pushmaster时,我得到了fatal:Youarenotcurrentlyonabranch.Topushthehistoryleadingtothecurrent(detachedHEAD)statenow,usegitpushmasterHEAD:这是意料之中的。但我如何才能真正将
我是git新手,昨天刚下载。作为对我的第一个在线(非本地)存储库的测试,我提交了一个无用的文本文件,然后点击发布。过了一会儿,我得到了这个非常非描述性的错误:所以我知道我不能发布到这个分支。只有一个,它是master分支。关于可能导致此错误的原因,是否有人有任何进一步的信息?作为旁注,我的合作伙伴已成功将文件上传到同一个存储库,但我没有得到任何迹象表明这已经发生。这是否意味着我没有以某种方式正确连接到repo协议(protocol)?我是设置它的人! 最佳答案 在Windows中,右键单击您的repository-->单击opena
我不明白输出到gitbranch-l-a的第二行:remotes/origin/HEAD->origin/master。gitbranch-l-a*masterremotes/origin/HEAD->origin/masterremotes/origin/master那是另一次手术的遗留物吗?我应该清理它吗?我该怎么做?通常我在cli上使用git,但在这个本地存储库上,我尝试使用TortoiseGit为friend找到一个简单的git工作流程。 最佳答案 不,不需要清理:它是你的远程仓库引用的符号分支。当您克隆您的存储库时,您将默