我在使用 git 将一个分支合并到主分支时遇到了问题。首先,我通过运行命令 git ls-remote
获取了分支的名称。假设该分支名称为 "branch-name"。然后,我运行了命令 git merge branch-name
,但得到以下结果:
fatal: branch-name - not something we can merge
我该如何解决这个错误?
我在使用 git 将一个分支合并到主分支时遇到了问题。首先,我通过运行命令 git ls-remote
获取了分支的名称。假设该分支名称为 "branch-name"。然后,我运行了命令 git merge branch-name
,但得到以下结果:
fatal: branch-name - not something we can merge
我该如何解决这个错误?
为了后人留存:就像AxeEffect所说...如果你没有拼写错误,请检查你的本地分支名称中是否有荒谬的字符,比如逗号或撇号。我现在正好遇到了这种情况。
如果你正在遵循旧的教程,而不是检查 master
分支,请检查分支是否命名为 main
或类似名称。
错误提示你的 branch-name
必须是你的其中一个分支的名称。
您正在尝试合并的分支可能当前未被您的git识别,因此请执行以下操作:
git branch
查看您想要合并的分支是否存在,如果不存在,则执行
git pull
现在执行 git branch
,该分支将可见,
然后执行 git merge <BranchName>
我遇到了同样的问题。我使用下面的命令解决了它:
git checkout main
git fetch
git checkout branch_name
git fetch
git checkout main
git fetch
git merge branch_name
我有一个工作树,其中在两个不同的工作文件夹中检出了主分支和另一个分支。
PS C:\rhipheusADO\Build> git worktree list
C:/rhipheusADO/Build 7d32e6e [vyas-cr-core]
C:/rhipheusADO/Build-master 91d418c [master]
PS C:\rhipheusADO\Build> cd ..\Build-master\
PS C:\rhipheusADO\Build-master> git merge 7d32e6e #Or any other intermediary commits
Updating 91d418c..7d32e6e
Fast-forward
Pipeline/CR-MultiPool/azure-pipelines-auc.yml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
PS C:\rhipheusADO\Build-master> git ls-remote
From https://myorg.visualstudio.com/HelloWorldApp/_git/Build
53060bac18f9d4e7c619e5170c436e6049b63f25 HEAD
7d32e6ec76d5a5271caebc2555d5a3a84b703954 refs/heads/vyas-cr-core
PS C:\rhipheusADO\Build-master> git merge 7d32e6ec76d5a5271caebc2555d5a3a84b703954
Already up-to-date
PS C:\rhipheusADO\Build> git push
Total 0 (delta 0), reused 0 (delta 0)
To https://myorg.visualstudio.com/HelloWorldApp/_git/Build
91d418c..7d32e6e master -> master
如果你只需要合并最新的提交:
git merge origin/vyas-cr-core
git push
和我一直做的一样:
git checkout master # This is needed if you're not using worktrees
git pull origin vyas-cr-core
git push
这可能听起来有些奇怪,但请记得设置您的Git电子邮件和名称:
git config --global user.email "MY@EMAIL.COM"
git config --global user.name "FIRST_NAME LAST_NAME"
git rebase the-branch-to-be-merged
我使用了这个 git 命令解决了问题,但是 rebase
只适用于某些情况。