标签: git-merge

强制 git mergetool 修改之前完成的合并

我用于DiffMerge3 路合并git。我刚刚完成了一项强制性合并工作,但意识到我错过了一些东西,并且想重新合并并使用相同的 3 路 GUI 功能。当我尝试时:

git mergetool my/path/file.ext
Run Code Online (Sandbox Code Playgroud)

我有

No files need merging
Run Code Online (Sandbox Code Playgroud)

我怎样才能强制mergetool能够再次在 GUI 中进行 3 路合并,而不是用不同的名称保存远程并寻找增量?

git git-merge

3
推荐指数
1
解决办法
1223
查看次数

Git 撤消推送合并并删除其历史记录

我意外地合并到了 master 并推送了它,现在 master 拥有了 dev 的所有提交。我想恢复 master 的提交并删除其历史记录而不更改 dev。我怎样才能做到这一点?

git git-merge

3
推荐指数
1
解决办法
1万
查看次数

git merge 是添加所有提交还是只添加最后一次提交?

所以我一直在使用 git merge ,我不明白它是添加了来自合并分支的所有提交还是只添加了最后一个

例如,如果我有一个分支 A 和一个分支 B

  • A 已提交 1 2 5

  • B 已提交 3 4

那么,如果我在分支 A 中执行 git merge B 会发生什么

如果我在分支 B 中执行 git merge A 会发生什么

我最想知道的是合并完成后会发生什么,所有提交都添加到当前分支还是仅添加到最后一个

我对 git 很陌生所以请原谅我

git merge git-merge

3
推荐指数
1
解决办法
1228
查看次数

合并后继续git分支是否常见?

我有一个 git 分支,我想将它与我的主分支合并,以将我项目的这个阶段交付给产品所有者。

但我想将来继续这个分支。

合并后继续一个分支是常见的吗?

或者我应该首先删除合并的分支并使用新分支继续该功能?

git pull 
git merge <my_branch>
git commit 
git push
Run Code Online (Sandbox Code Playgroud)

过了一会儿:

git checkout <my_branch>
Run Code Online (Sandbox Code Playgroud)

并改变它。

git git-merge git-branch

3
推荐指数
1
解决办法
1538
查看次数

Git 变基一个不包含新提交的分支,不需要强制推送吗?

抱歉,如果这个问题已经被提出,但我无法\xe2\x80\x99找到答案。

\n\n

我\xe2\x80\x99m在这里是因为在工作中经历了一次非常痛苦的经历:我将master重新设置到了错误的分支,然后执行了git push..\n这一刻似乎把事情搞砸了。现在我试图了解出了什么问题,以及为什么即使我没有使用该--force标志,我的更改也被推送了。

\n\n

关于我们的 git 分支策略的一些信息:

\n\n

我们有不同的较旧的 \xe2\x80\x9cversion\xe2\x80\x9d 分支,我们仅在其上实现错误修复(分支 v1.0、分支 v2.0 等),因为我们需要支持这些旧版本。然后是主分支,我们实际上在该分支上实现了新功能。

\n\n

每当在旧版本的软件 fe 分支 v1.0 中发现错误时,我们就会从该版本分支出来,为错误修复创建一个功能分支。然后我们在 v1.0 分支之上重新调整此功能分支中的更改,然后在 v1.0 上进行快进合并。然后通过合并提交,我们将 v1.0 合并到 v2.0 中,最后合并到 master 中,以便在该产品的所有较新版本中也修复该错误。因此,在旧版本分支(fe 分支 v1.0)上进行错误修复/更改的流程如下所示:

\n\n
    \n
  1. 从 v1.0 分支出来(创建功能分支)
  2. \n
  3. 做一些改变
  4. \n
  5. git rebase origin/v1.0将更改从功能分支移至最新的 v1.0 分支之上
  6. \n
  7. git push -f origin feature_branch
  8. \n
  9. 快进合并功能分支到 v1.0
  10. \n
  11. 通过合并提交将 v1.0 合并到 v2.0
  12. \n
  13. 通过合并提交将 v2.0 合并到 master
  14. \n
  15. 现在 v1.0 上所做的所有更改(仅错误修复)也适用于该软件的较新版本
  16. \n
\n\n

例如,对于软件 v1.0 的错误修复,合并过程如下:

\n\n …

git rebase git-merge git-rebase

3
推荐指数
1
解决办法
1956
查看次数

撤消 git 自动合并

切换分支后,我应用了 stash(如下所示),这导致了自动合并。

?  git stash apply

Auto-merging src/clojure/project_src.clj
On branch upgrade_project
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

modified:   src/clojure/project_src.clj

no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)

我试过git revert HEAD哪个恢复了提交(不是自动合并)。如何恢复自动合并?

git git-stash git-merge git-revert

3
推荐指数
1
解决办法
2948
查看次数

合并时git如何比较两个文件?

git 如何比较两个文件。哪些算法用于比较两个文件?合并时是否逐行比较?

我无法确定合并时两个文件的比较是否会产生冲突。

git git-merge

3
推荐指数
2
解决办法
3339
查看次数

git合并冲突的不同场景

我试图了解在 git 合并后可能发生 git 冲突的情况以及如何避免它们。

我创建了一个 git 存储库并向其中添加了一个文本文件。

  • 我已将“1”添加到文本文件并将其提交给 master。
  • 我从 master(branch2) 创建了一个新分支,并在文本文件中添加了一个新行,内容为“2”。
  • 我从 master(branch3) 创建了一个新分支,并在文本文件中添加了一个新行,内容为“3”。

在此之后,我做了以下工作:

  • 我已将 branch2 合并到 master 中。没有冲突,这是正确的,我已经预料到了。
  • 我已将 master 合并到 branch3 中。我有冲突,因为文本文件的第二行有不同的内容。我通过保留“3”而不是“2”来解决冲突。
  • 我想将 branch3 合并到 master 中。现在我的问题是: 1. 进行合并时是否有可能发生冲突?如果是,为什么?如果没有,为什么?2.如果不应该有冲突,但我仍然有冲突,可能是什么原因?

git git-merge merge-conflict-resolution git-merge-conflict

3
推荐指数
1
解决办法
687
查看次数

git标签合并了吗?

让我们假设我们正在使用 git 和 pull requests 进行开发,我们有:

  1. 一个主分支
  2. 一个 release/1.... 分支,对于每个修补程序或功能,还有一个分支,在接受拉取请求后合并到起始分支中。

所以我的问题是:

  1. 如果发布分支包含标签,并且发布分支在最后发布的 release/1.xy 版本之后被合并到 master 中,那么标签是否也被合并了?

  2. 对于长期支持,我的问题是:

    假设有人想在 10 年内检查标签 1.1.1 的状态。如果 release 分支被删除但被合并到 master 并且我们有 master ,是否可以检查这个标记的提交?

谢谢

在此处输入图片说明

git git-merge git-tag

3
推荐指数
2
解决办法
2444
查看次数

强制 git pull 通过丢弃所有本地提交来解决分歧?

问题

我有一个包含 3 次提交的本地存储库:

A -> B -> C
Run Code Online (Sandbox Code Playgroud)

远程仓库还有另外 3 个提交:

A -> B -> D
Run Code Online (Sandbox Code Playgroud)

如何git pull通过丢弃所有本地提交来解决分歧?之后的本地仓库git pull --some-magic应该是:

A -> B -> D
Run Code Online (Sandbox Code Playgroud)

请注意,这git reset HEAD~1 --hard是行不通的,因为我的脚本不知道必须恢复多少提交以避免冲突。

为什么我需要这个

我正在编写一个脚本来在 github 和 gitlab 存储库之间同步。其中之一是只读镜像。我的脚本只是尝试git pull --force从 origin1 到git pushorigin2。

但是,如果有人更改了 的历史记录origin1git pull我的脚本中的 将会失败并显示错误消息。解决该问题的唯一方法是删除整个本地存储库,并git clone从stretch执行。浪费带宽而且速度很慢!

git git-pull git-merge git-merge-conflict

3
推荐指数
1
解决办法
1123
查看次数