gpt4 book ai didi

Git 与 master merge 而不 checkout 到 master

转载 作者:太空狗 更新时间:2023-10-29 13:52:33 26 4
gpt4 key购买 nike

每次我需要merge developmaster 时,我都会:

git checkout 大师

git merge 开发

有时我会忘记退出 master。因此,我在 master 上错误地更改了代码。它可能很乱。我错误地 promise 了几次master

有没有办法 merge master而不先切换到master

最佳答案

如果您想真正 merge 到 master 中,不行。一个真正的 merge 需要,至少可能需要一个工作树来进行工作。它还使用索引,它需要匹配当前分支周围的操作(参见下面的 git worktree add 方法)。

如果你想做一个快进操作(不是真正的 merge ),这是可能的。例如:

git push . develop:master

(注意缺少 + 符号或 --force 选项)将尝试将您的 master 快进到与你的开发。使用 HEAD 表示当前分支:

git push . HEAD:master

这些仅在可以快进时才有效。否则,您将收到以下形式的错误:

 ! [rejected]              [name] -> master (non-fast-forward)

它告诉您您需要一个分支为 master 的工作树,以便在其中运行 git merge

要在不更改当前 工作树的分支的情况下执行此操作,请使用 git worktree add,如果您的 Git 至少为 2.5(最好至少为 2.15)。例如,假设您位于存储库的顶层,在分支 feature/X 上:

git worktree add ../master   # NB: assumes ../master is available as a directory name
cd ../master
git merge feature/X
... # do what it takes to complete the merge here

cd - # return to your main repository
rm -rf ../master # remove added worktree
git worktree prune # clean up list of added worktrees

添加的工作树有它自己的索引(和它自己的 HEAD)所以 git merge 现在有一个索引和工作树来完成它的工作,或留下困惑让您修复,以实际发生的为准(请参阅 kostix's comment)

关于Git 与 master merge 而不 checkout 到 master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54447800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com