有没有办法将我所有的本地提交推送到远程存储库除了最近的提交?我想将最后一个保留在本地,以防我需要进行修改。 最佳答案 试试这个(假设你正在使用master分支并且你的远程名为origin):gitpushoriginHEAD^:masterHEAD^指向当前分支中最后一个提交之前的提交(最后一个提交可以称为HEAD)所以这个命令推送这个提交(与所有以前的提交)到远程origin/master分支。如果您有兴趣,可以在thismanpage中找到有关指定修订的更多信息。.更新:我怀疑情况是否如此,但无论如何,如果您的最后一次提交是me
每次我尝试推送到github时,Gitpush都会挂起。我正在使用Cygwin和Windows7。Git可以很好地在本地跟踪分支、提供状态、设置全局user.name和user.email并允许提交。我还是新手,正在学习。我输入gitpush,gitpushoriginmaster或gitpush-uoriginmaster,除了一个需要我的空白行,我什么也没得到到ctl-c以获得提示。ssh-keygen-trsa-C"me@example.com"要求我提供文件名并挂起gitpushherokumaster挂起$gitstatus返回在分支master上没有要提交,工作目录干净$g
我知道人们问过类似的问题,但我相信他们出现问题的原因是不同的。我进行了硬重置,因为我把我的代码搞得一团糟gitreset--hard41651df8fc9我做了很多更改,我做了一些提交,现在我试图将所有这些提交推送到服务器中,我收到以下错误:![rejected]master->master(non-fast-forward)error:failedtopushsomerefsto'git@git.somewhere.git'Git建议执行gitpull,这也是其他人向其他用户建议的。但是,我相信gitpull会将我当前的代码与我不再需要的代码merge(headrevision)。我
我的gitpush在显示完成推送后挂起。我要去推送Countingobjects:51,done.Deltacompressionusingupto2threads.Compressingobjects:100%(47/47),done.Writingobjects:100%(47/47),27.64MiB|6.47MiB/s,done.Total47(delta4),reused0(delta0)它卡在这里,我必须按control-c才能返回命令行。我过去对这个项目做了几次没有问题的promise。我在我的机器上尝试过其他repo协议(protocol),它们工作正常。这是怎么回事?
我看过thegithooksmanpage但除非我遗漏了一些东西,否则我看不到本地的、推送后的git钩子(Hook)的选项。在我将master分支推送到GitHub存储库后,我想要一个更新我的Web服务器上的api文档(我已经有一个脚本)。当然我也可以写自己的脚本,结合gitpush和apidocs运行,但感觉有点不雅。 最佳答案 这个问题的另一个解决方案是为执行.git/hooks/pre-push和.git/hooks/post的gitpush设置一个包装器-在gitpush调用之前和之后推送脚本。可能的包装器可能如下所示:#!
我希望gitpushorigin在我第一次推送本地创建的分支时自动设置上游引用。我知道gitpush-u,但我不想考虑我之前是否使用过-u或以其他方式设置上游引用。换句话说,我希望gitpush对还没有上游的分支的任何推送自动产生gitpush-u的效果。这可能吗?如果它需要别名或实用程序脚本,那很好。 最佳答案 您可以使用gitconfig--globalpush.defaultcurrent(docs)对其进行配置,使其推送当前分支以更新具有相同名称的分支。2022更新(git>=2.37.0)gitconfig--global
我是GitHub的新手/VCS.当我尝试在GitHub上共享我的项目时,我收到以下错误消息。Can'tfinishGitHubsharingprocessSuccessfullycreatedproject'myproject'onGitHub,butinitialpushfailed:remote:error:GH007:Yourpushwouldpublishaprivateemailaddress.failedtopushsomerefsto'https://github.com/me/myproject.git'我用谷歌搜索了错误消息,但没有找到任何结果。我还搜索了StackE
我有一个分支,它应该对其他贡献者可用,并且应该不断地与master保持同步。不幸的是,每次我执行“gitrebase”然后尝试推送时,都会导致“非快进”消息和推送失败。在这里推送的唯一方法是使用--force。这是否意味着如果我的分支公开并且其他人正在处理它,我应该使用“gitmerge”而不是rebase? 最佳答案 关于git工作原理的一些说明(非技术性):当你rebase时,git接受有问题的提交,并在干净的历史记录之上“重新提交”它们。这是为了防止历史显示:Description:tree->mywork->merge->m
我将本地提交推送到远程git服务器并收到以下警告消息:remote:warning:onlyfoundcopiesfrommodifiedpathsduetotoomanyfiles.remote:warning:youmaywanttosetyourdiff.renamelimitvariabletoatleast19824andretrythecommand.但实际上我已经将diff.renamelimit设置为0(我认为零意味着无限,对吧?)。$gitconfig--list...diff.renamelimit=0那么我该怎么做才能避免这个警告呢?谢谢。
我发现,在officialguide:gitpushoriginHEADAhandywaytopushthecurrentbranchtothesamenameontheremote.但是,我不清楚命令的含义。为什么会有这样的效果?我没能找到答案(thisquestion似乎解决了这个问题,但标题具有误导性)。 最佳答案 HEAD指向当前分支的顶部。git可以从中获取分支名称。所以它与:gitpushoriginCURRENT_BRANCH_NAME但您不必记住/键入当前分支名称。它还可以防止您意外推送到错误的远程分支。如果你想推送