一位好心的同事将更改推送到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工作流程。 最佳答案 不,不需要清理:它是你的远程仓库引用的符号分支。当您克隆您的存储库时,您将默
我选择使用git作为scm,但必须使用svn-repo。我可以像这样创建一个svn-remote-branch:gitsvnbranchthe_branch但是如何删除远程分支呢? 最佳答案 目前,无法使用git-svn删除SVN分支。但是使用SVN删除分支很容易,甚至不需要检查它。所以只需输入svnrm$URL/branches/the_branch请注意,删除Subversion分支不会导致它从git-svn存储库中删除。(这是故意的,因为删除一个Subversion分支不会导致任何信息丢失,而删除一个git分支会导致它的存在在
我在Windows上使用AndroidStudio(预览版)0.6.0,并试图在GitHub上分享我的项目。我使用GitShell初始化、添加、提交并将项目推送到GitHub。但是当我尝试从AndroidStudio中更新我的项目时,我得到了这个错误:Can'tupdate:notrackedbranchNotrackedbranchconfiguredforbranchmaster.Tomakeyourbranchtrackaremotebranchcall,forexample,gitbranch--set-upstreammasterorigin/master它确实提供了这个建议
Git为什么使用gitpush:如在gitpushorigin:featureA删除分支featureA来自远程服务器?我对为什么使用冒号作为删除标志很感兴趣。它与gitbranch-d大不相同.为什么我们不做类似的事情gitbranch-d--remoteorigin还是冒号背后有我不知道的更深层含义? 最佳答案 这不是:本身的意思,而是它之前存在的,或者更确切地说不存在的。refspec格式是:(非快进可选+)因此,当您执行类似gitpushorigin:featureA的操作时,您指定了一个空的源引用并基本上使目标“空”或将其
只是想更好地理解删除本地分支后的警告信息warning:deletingbranch'old_branch'thathasbeenmergedto'refs/remotes/origin/old_branch',butnotyetmergedtoHEAD. 最佳答案 这只是警告您,您已将更改推送到origin上的分支,但它们并未merge到当前checkout的分支中,因此您只是在本地删除它。它警告您您不再拥有该分支的本地副本,但它存在于origin如果你也想删除远程分支,使用gitpush--deleteoriginold_bra