我在使用Git分支时遇到问题。每当我对分支进行更改时,所有这些更改都会反射(reflect)在主分支中,即使我没有调用显式merge命令也是如此。例如,我创建了一个“仪表板”分支gitcheckout-bdashboard然后我更改了我的一个文件(比如routes.rb),现在我切换到mastergitcheckoutmaster现在当我打开routes.rb时,我可以看到仪表板分支的变化。为什么?我有一些不应该存在的git设置吗? 最佳答案 当您进行更改时,这些更改仅存在于您的工作树中,直到您提交它们为止。当您切换分支时,Git会
我更改了存储库子目录中的单个文件,我只想将该文件推送到Github。我对一个文件做了一点小改动,我不想重新上传整个存储库。到目前为止,我所看到的所有说明似乎都要求我在本地与mastermerge,然后将我的本地master推送到远程源。我怎样才能只推送那个文件? 最佳答案 当你进行推送时,git只接受你提交的更改。还记得当你执行gitstatus时,它会显示自上次推送以来你更改的文件吗?一旦您提交了这些更改并进行了推送,它们就是唯一被推送的文件,因此您不必担心认为整个master都被推送了,因为实际上并没有。如何推送单个文件:git
我已尝试遵循this中建议的解决方案发布但它没有用,我仍然得到:srcrefspecmasterdoesnotmatchany。这是我做的:已关注this解决方案//addingthefileIcreated$gitadd.$gitcommit-m'initialcommit'$gitpushoriginmastererror:srcrefspecmasterdoesnotmatchany.做的时候:$gitpushoriginHEAD:masterb40ffdf..a0d1423HEAD->master//lookspromising//addingaremote$gitremote
如何获取2014-01-01和2014-06-30之间对master分支完成的所有git提交的列表?我知道gitlog会给我大致这种格式(对所有提交重复):commitauthor:date:但是如何将它限制在选定的日期和每个提交格式一行? 最佳答案 $gitlog--since"DEC12014"--until"DEC52014"--pretty=format:"%h%an%ad"这将为2014年12月1日和2014年12月5日之间的提交提供您想要的格式,您可以根据需要更改日期如果你想改变格式,你可以readabouttheopt
运行git命令时空格和斜杠有什么区别?我有时会看到gitpushoriginmaster(这是一个空格)还有其他时候我看到gitrebaseorigin/master(使用斜杠)这个约定有什么区别?斜杠符号是否访问本地缓存副本,而空间版本实际上到达远程存储库(github)? 最佳答案 这不是一个“约定”。前者是在不同位置的两个单独的参数,对gitpush具有不同的含义,后者是一个单独的参数,用于标识远程跟踪分支origin/master。 关于git-"originmaster"和"o
我还是git新手。我修改了一些源文件并提交。然后,我执行了gitpush。但是,我收到了这个错误。To/foo/bar/![rejected]master->master(non-fast-forward)error:failedtopushsomerefsto'/foo/bar/'Topreventyoufromlosinghistory,non-fast-forwardupdateswererejectedMergetheremotechangesbeforepushingagain.Seethe'Noteaboutfast-forwards'sectionof'gitpush--
我正在使用Atlassian称为“Souretree”的GitGUI,特别是“Gitflow”模块来管理各种分支。我刚刚创建了一个“发布”分支,我不想将其merge回主分支或开发分支。我该如何摆脱它?我可以删除它吗?我担心的是我弄乱了gitflow配置。我只对这个分支做了一个我不关心的提交。 最佳答案 看来我可以根据以下来源删除分支:EvanHahndominiksymonowicz引用Evan的话:Totrashabranchusinggit-flow,simplydeleteitlikeyou'dnormallydeleteaG
foxtrotmerge是一种merge,其中'origin/master'作为第二个(或更高版本的)父级merge,如下所示:提交“D”是一个狐步舞merge,因为“origin/master”是它的第二个父级。请注意此时来自“origin/master”的第一父历史如何包含提交“B”。但在我的git仓库中,我需要所有涉及“origin/master”的merge,以将“origin/master”保留为第一个父级。不幸的是,git在评估提交是否符合快进条件时并不关心父顺序。这导致我的主分支上的第一个父历史有时会丢失曾经存在的提交(例如,“gitlog--first-parent”的
我目前有一个包含更多分支的项目。主分支尚未merge很长时间。所以我想切换到掌握最新代码。能否请您给我必要的命令和步骤。让我重新构建我的问题。我在一个有不同分支的项目中工作。最新的变化发生在master以外的某个分支。现在我的需求是:有没有办法把当前的工作分支移到master而不mergemaster,避免冲突? 最佳答案 如果您想在master中拥有与在other_branch中完全相同的文件状态并保存历史-请执行以下操作(并注意末尾的句点):gitcheckoutmastergitcheckoutother_branch.现在您
我在Heroku上托管。当我按下时:gitpushmasterHeroku我得到错误:error:srcrefspecmasterdoesnotmatchany.error:failedtopushsomerefsto'git@heroku.com:etc...' 最佳答案 这对我有用:-gitpushherokuHEAD:master 关于git-heroku:srcrefspecmaster不匹配任何,我们在StackOverflow上找到一个类似的问题: