解决 git 拉取中的合并冲突?
Resolving merge conflict in git pull?
我需要帮助解决 git 从 GitHub 中拉取的合并冲突,我做了以下操作
在我当前的分支上,我执行了以下操作
发
git pull --rebase master
git pull ssh:.....
(从我的评论中提取更改)
- 一个文件中存在合并冲突
- 删除了所有冲突
git add .
- 当我尝试使用
git commit --amend
提交回来时,我得到了错误
"fatal: you are in the middle of merge -- cannot amend"
我想再次修改相同的提交而不创建新的提交 ID。有办法吗?
鉴于您的历史记录如下:
B C1 C2
o----o----o master
\
o feature
F
您可以将更改从 feature
变基到您要将它们拉入的分支 (master
) 以使其成为 "fast-forward merge",创建线性历史:
B C1 C2 F
o----o----o----o master, feature
或者,在您描述的阶段,您可以 运行 git commit
(没有 --amend
)继续创建记录合并结果的提交:
B C1 C2 M
o----o----o----o master
\ /
--o-- feature
F
如果您希望有一个明确的合并提交来表示您合并了一个功能分支,您可以使用 --no-ff
标志重新设置然后合并,创建这样的东西:
B C1 C2 M
o----o----o---------o master
\ /
--o-- feature
F
选择哪种变体由您决定;这三个都有效。我通常更喜欢 rebase 功能分支,以避免必须在单独的提交(合并提交)中解决合并冲突。保持历史线性(不合并)与否是工作流程和品味的问题。
我需要帮助解决 git 从 GitHub 中拉取的合并冲突,我做了以下操作
在我当前的分支上,我执行了以下操作
发
git pull --rebase master
git pull ssh:.....
(从我的评论中提取更改)- 一个文件中存在合并冲突
- 删除了所有冲突
git add .
- 当我尝试使用
git commit --amend
提交回来时,我得到了错误
"fatal: you are in the middle of merge -- cannot amend"
我想再次修改相同的提交而不创建新的提交 ID。有办法吗?
鉴于您的历史记录如下:
B C1 C2
o----o----o master
\
o feature
F
您可以将更改从 feature
变基到您要将它们拉入的分支 (master
) 以使其成为 "fast-forward merge",创建线性历史:
B C1 C2 F
o----o----o----o master, feature
或者,在您描述的阶段,您可以 运行 git commit
(没有 --amend
)继续创建记录合并结果的提交:
B C1 C2 M
o----o----o----o master
\ /
--o-- feature
F
如果您希望有一个明确的合并提交来表示您合并了一个功能分支,您可以使用 --no-ff
标志重新设置然后合并,创建这样的东西:
B C1 C2 M
o----o----o---------o master
\ /
--o-- feature
F
选择哪种变体由您决定;这三个都有效。我通常更喜欢 rebase 功能分支,以避免必须在单独的提交(合并提交)中解决合并冲突。保持历史线性(不合并)与否是工作流程和品味的问题。