问题标签 [fast-forward]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
100 浏览

git - No-FF for merges from a long time ago

In our Git repository we have a few merges from branches that should have been merged with --no-ff but were not. These merges were made a long time ago.

Is there any way to force/insert a commit as if we were running those old merges with the --no-ff argument?

One of the supers on the project enjoys GitHub's network view and wanted to be able to see the individual branches, which are all merged into one line when a fast-forward occurs.

0 投票
2 回答
480 浏览

git - Git推送不能快速合并是什么意思?

有人可以提供一个简单的示例,说明由于无法进行快进而导致 Git 推送到中央仓库失败的原因吗?本地回购与中央回购的状态需要是什么样子才能发生这种情况?真的很难想象这个......

0 投票
1 回答
29913 浏览

git - `--squash` 和 `--no-ff --no-commit` 有什么区别?

应该使用哪一个来隐藏微提交?

唯一的区别是git merge --squashgit merge --no-ff --no-commit其他父母的否认吗?

0 投票
1 回答
6677 浏览

git - Gerrit 代码审查推送到空仓库不起作用

我安装并配置了我自己的 Gerrit 服务器。我使用 Gerrit 的 web gui 创建了一个存储库。我可以使用“git”命令成功克隆这个空存储库,所以配置似乎很好。接下来,我:

  1. 配置了我的访问权限:git config --global user.email ..., git config --global user.name ...,

  2. 添加了遥控器:git add remote origin myUser@myGitHost:29418/project.git,

  3. 创建并提交文件:git add file, git commit -m "first commit"

到现在为止还挺好。

但是,当我尝试将其推送到我的仓库时,我得到了输出:

我试图寻找解决方案。" git pull origin master" 不起作用。-f使用选项推送也不起作用。

谁能帮我?

编辑: push -f 的输出:

我所说的“git pull origin master”的意思是人们提到的最解决方案是在推送之前进行拉取,例如:http ://rip747.wordpress.com/2009/04/20/git-push-rejected -非快进/。这个拉输出:

但是当我推送时,输出仍然是一样的:

无法将参考更新为快进。

0 投票
1 回答
208 浏览

git - Dulwich:如何检测快进?

正如标题所暗示的,我怎么知道远程分支是否是本地分支的祖先,反之亦然?

0 投票
2 回答
1639 浏览

git - 如何允许在 gitolite 删除远程分支并禁止非快进

我们需要允许开发人员:

1)创建主题分支并将它们保存在远程仓库中。

2)做改变。

3)合并到“开发”分支。

4)删除主题分支(git push origin :TestRemoteBranch)。

但我们宁愿禁止使用具有使用 RW 权限的非快进合并。但是这个权限也禁止删除主题分支。

有什么方法可以避免非快进合并并允许删除主题分支(不是“开发”和“主”)?

0 投票
1 回答
904 浏览

git - 提交发布两次:合并远程跟踪分支'origin'

我从存储库(上游)分叉,然后在本地进行更改并推送到我的存储库(源)。

除此之外,我的大部分工作都是在控制台上完成的,今天我在笔记本电脑上完成了一些工作。

我在控制台上推到原点,然后git fetch origin; git merge origin/master在第二天在我的笔记本电脑上推。

发生的事情是,我把前一天的所有更改都提交到我的笔记本电脑上,然后将它们推回原点。现在,我的 origin/master 上有两组提交用于相同的工作,一次用于控制台,一次用于笔记本电脑。

我之前读过我应该发布一次,虽然我当然不考虑改变这个推送的历史,但我确实希望在工作站之间发生故障时避免这种情况。提交历史看起来很混乱。

我认为这个--no-ff选项git pull看起来很有希望,但我找到的关于这个主题的大部分信息都是关于保持本地分支同步,因为其他人正在开发 master。

0 投票
2 回答
1719 浏览

git - 即使在“git pull”之后,Git 也会出现“非快进更新”错误

Github 是我项目的默认存储库(只是将“origin”重命名为“github”)。发生了一些事情,以至于“git push”导致“非快进更新”错误,即使“git push github master”有效。“git pull”和“git pull github master”都表示最新状态。我如何 (a) 确保 Github 上没有未合并的更改并 (b) 更正非快进错误?

我的 git 配置文件是

0 投票
1 回答
3008 浏览

git - Git 状态显示 X 提交前的本地分支 - 应该只有 1

我一直在堆栈和其他论坛上搜索并尝试各种解决方案,但似乎无法解决这个问题。

Git:Branch 领先于 X 次提交。没有帮助做 git pull

当我看起来是最新的并且推拉(无文件)修复它时,为什么 git 说我提前 40 次提交?

当我需要 *pull* origin master 时,为什么它会说“您的分支比 origin/master 领先 857 次提交”

总体问题是我拉了一个站点结帐,然后不得不对配置(数据库、api 位置等)进行一些本地更改,并防止每次我继续提交本地更改时都必须存储和重新应用这些文件。我在 1 个本地提交下完成了所有这些作为“本地配置提交”。而此时 git status 显示其提前 1。

然而,在过去的一个月里,我们一直在开发和修复一些东西。我们都从我们单独的分支中工作并合并回一个开发分支,然后从那里到 master 等等。一切准备就绪后,我进入生产环境并使用“git pull”拉下更改。这似乎一直运作良好,但是我今天注意到状态现在已经改变。

当我查看针对 origin/master 的 git 日志时,似乎我看到合并作为本地提交进入?

小日志片段:

我怀疑我的回购已经被适当地“快进”了,并且在每次拉取后仍然提前 1 次提交。在对 origin/master 进行比较时,您可以看到我没有太多更改(似乎)只是配置。这是来自原始配置更改和本地提交。

我已经尝试了上面的各种链接,并尝试了获取、更多拉取等,但均无济于事。有没有一种方法可以让我的本地仓库正确地快进,这样我只能看到我所做的 1 个本地提交是我的 var 'ahead'?我不能完全将这些更改推送到 master,因为这会导致这些更改被拉到其他安装。然后我想在解决这个问题之后,最好的部署方式是什么,更改一些配置并能够不断更新。根据我的理解 stash 会起作用,但这实质上会使您的更改不合适,然后您可以拉动,然后重新申请,但我无法承受这个小步骤的停机时间,特别是如果它涉及必须整理任何合并冲突。

或者,有没有办法可以以某种方式将这些文件从提交中提取出来,以便我可以推动对所有内容进行排序?

0 投票
2 回答
1451 浏览

git - Git 快进替换整个 repo 删除以前的历史记录

github 上有一个名为A的仓库。我从 github 将此 repo 克隆到我的本地。原始存储库 A 有一个名为“a”的分支,它是 A 的先前版本。存储库所有者的提交删除了历史记录并替换了存储库中的所有文件。在 github 上,如果你比较这两者,它会说,A and a are entirely different commit histories

我的问题是我想推送一个同步的提交,就像在所有者快速转发主分支之前的备份。但是如果我在提交之前 git pull (这是一个很好的做法)我肯定会遇到问题,因为它根本不同步。

最好的解决方案是停止跟踪 master 所做的事情并将其替换为我所知道的不可能的分支。我应该怎么做才能删除快进提交并使其同步回“a”分支。

PS repo 的所有者得到![rejected] master -> master (non-fast-forward)它,他试图做一个 git pull。说“他当前分支的尖端在其远程分支的后面”

如果任何部分不清楚,请随时询问,我连续 2 天遇到这个问题!谢谢。