我通过Git Online编辑了我的GIT存储库.我尝试推送本地代码更改后,出现错误:
Git push failed, To prevent from losing history, non-fast forward updates were rejected.
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我觉得这个问题已被多次询问,但解决方案通常是"我删除了目录并重新完成了我的工作." 我做了提交和推送,但意识到我在提交消息中提到了错误的票号.所以我在SO上寻找快速解决方案并最终在终端中键入以下内容:
$ git reset --soft HEAD^
$ git commit -m "... correct message ..."
Run Code Online (Sandbox Code Playgroud)
唯一的问题是我收到以下错误消息:
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我正在使用git-flow模型,正在开发分支.我怎样才能将东西合并回来让git再次开心?
我是一个相当新的人,git目前正在使用它来管理团队环境中的代码.我有一些变基础问题,我用它来修复它们
git checkout --ours filename.txt
git add filename.txt
git rebase --continue
Run Code Online (Sandbox Code Playgroud)
现在我想推送我的更改,然后运行以下命令
$ git push origin feature/my_feature_branch
Run Code Online (Sandbox Code Playgroud)
给我以下错误:
To ssh://git@coderepo.com:7999/repo/myproject.git
! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward)
error: failed to push some refs to 'ssh://git@coderepo.com:7999/repo/myproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能摆脱这个错误?
PS:我--force尽量避免使用该选项.
我放弃!每当我试图推动时,我都会变得愚蠢:
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:companyX/projectX.git'
Run Code Online (Sandbox Code Playgroud)
我们的团队有一个新的git设置.我现在分叉我们的主存储库(在github上)来创建我自己的副本,而不是创建私有分支.
在某些时候我做的是:
$ git fetch upstream master:upstreammaster
Run Code Online (Sandbox Code Playgroud)
所以这是我目前的设置::
$ git branch
master
* upstreammaster
$ git remote -v
origin git@github.com:userX/projectX.git
upstream git@github.com:companyX/projectX.git
Run Code Online (Sandbox Code Playgroud)
userX是我的私人存储库.
所以我去对我的upstreammaster分支进行一些更改,并从"上游主服务器"进行PULL.一切融合和东西:
$ git pull upstream master
remote: Counting objects: 95, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 60 (delta 54), reused 0 (delta 0)
Unpacking objects: 100% (60/60), done.
From git@github.com:companyX/projectX
* branch master -> FETCH_HEAD
Merge made by …Run Code Online (Sandbox Code Playgroud) 我刚刚拉了一个新的分支,做了一些本地的修改,承诺并试图推动.我得到了这个错误:! [rejected] groups -> groups (non-fast forward)
所以我尝试了拉,但被告知Already up-to-date.
这就是我拉动然后推动的东西.
~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
! [rejected] groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这是如何发生的以及如何解决它?
我最近在GitHub上开了一个回购.我是Git的新手.和新手一样,我承诺使用默认名称和电子邮件,我在最好的noob传统中发现了五次提交为时已晚.现在开始有趣了,因为我开始搜索有关如何更改这些提交的作者和提交者名称的信息.精细.我基本上找到了以下信息和很多副本:
这个问题似乎并不少见.我只能说没有一个解决方案有效.其中一半是同一git filter-branch -f --env-filter剧本的变体.我尝试多次处理该脚本.问题是在应用脚本后,我无法推送."快进推动被拒绝"或类似的东西.好吧,唯一的方法就是拉.拉动后,所有旧信息再次出现+带有新信息的新分支.我已经坐在这里有四个分支,以最恶劣的方式合并,都包含不同作者姓名的相同信息,包括我想删除的那个.
可以简短地删除它,我也试图删除选定的提交,这会产生我无法解决的令人毛骨悚然的冲突(如何???),并使用正确的作者信息将一些提交压缩到更新的提交中,导致当前项目状态遭到破坏.更好的是,我在执行后有时会出现分段错误git rebase -i,我在此通知:http://lists-archives.org/git/729800-rebase-i-segmentation-fault-and-another-problem.html完全是逻辑.(谢天谢地)唯一有用的是git rebase --abort,它多次保存了我的屁股.
我希望我的挫折感不会被击退,而是逗你,激励你去帮助我.我想要:
最后删除所述作者信息
奖励:摆脱包含相同信息的所有分支.
但是我对第一个也很满意,如果在没有破坏当前状态的情况下删除过去的分支的障碍对于一个git新手来说太过分了.提前致谢.
我在12个项目中有大约40,000行C++代码.每个项目都有不同的git.我有shell脚本,它可以安装我的软件,放入NoSQL数据库,创建目录等.它还为每个项目创建一个源目录.我用克隆"git clone"
问题:
当我进行更改并进行本地"提交"时,我无法在主存储库中"推送",由于" git push rejected -non -fast forward "...我是唯一可以访问这些文件的人.所以不可能"推送失败,因为我的参考文件落后于远程存储库."
PS操作系统是Linux/Ubuntu
编辑1
本地
git log --graph --pretty=oneline –abbrev-commit
* 5e540fd Founder initial commit ver 2
Run Code Online (Sandbox Code Playgroud)
主要
git log --graph --pretty=oneline –abbrev-commit
* 74acd89 Founder initial commit
Run Code Online (Sandbox Code Playgroud)
编辑2
我刚刚使用CLI而不是eclipse完成了所有事情.所以手动我没有问题
主要
git log --graph -–oneline
* 45f84ae ver 2
* 74acd89 Founder initial commit
Run Code Online (Sandbox Code Playgroud)
克隆
git log --graph --oneline
* 45f84ae ver 2
* 74acd89 Founder initial commit
Run Code Online (Sandbox Code Playgroud)
首先(编辑1)我使用eclipse来进行a)本地提交和b)推送
现在我使用终端,它正在作为一个魅力,但我还不明白eclipse的问题
PS
我无法添加eclipse标签:-(
我有一个受保护的分支,只有在集成构建的集成构建通过后才应该提升/快速转发.
我目前试图通过集成构建对集成分支的拉取请求来解决这个问题,一旦成功,只需将发布分支快速转发到集成分支的顶端即可.
但是,当我在TFS构建系统上构建分支时,它将检查集成分支头部的提交,使构建服务器处于分离头状态.
这一切都应该没问题,但出于某种原因,如果不使用多个语句,我就不能这样做.对我来说,直观地说,应该有一个简单的命令.我只想将分支点快进到当前提交.
但就目前而言,我找到了两种方法:
git checkout releasegit merge %HEAD_commit_id%git branch current-headgit checkout releasegit merge current-headgit branch -d current-head上述是我能做到的"最好的"是正确的吗?我认为这个存在一条线?解决方案1和解决方案2都有其警告,所以我宁愿不同意,但我最终可能最终会使用数字2.
要重现我所拥有的确切场景,您需要2个提交(C1和C2)和2个分支(释放和集成).
点释放到C1,集成到C2,HEAD到C2(分离头状态).
最终结果应该允许我推送发布分支,现在指向与集成相同的提交.
如果我是正确的,克隆远程存储库时可以创建远程跟踪分支。创建远程跟踪分支时是否还有其他情况?
如果我是对的,从远程存储库获取/拉取时会更新远程跟踪分支。远程跟踪分支更新时是否还有其他情况?
作为 2 的特例,当git push本地分支到远程仓库时,如果本地分支在本地仓库中有关联的远程跟踪分支(即如果本地分支是本地跟踪分支,在 Version Control with Git 中定义)作者 Loeliger 2ed),是否git push更新远程跟踪分支,或者远程跟踪分支只能通过运行git fetch或git pull之后从远程存储库间接更新git push?
作为 1 的特例,如果git push推送本地非跟踪分支到远程分支(即如果本地分支没有对应的远程分支到要推送的本地分支),将git push创建与本地非跟踪分支关联的远程跟踪分支和把它们变成本地跟踪的?