我有一个应用程序在git存储库的分支(例如dev
)上运行。该应用程序修改存储库中的某些内容并提交它们。现在我必须将这些更改合并到另一个分支(例如master
),但问题在于我不想在此之前执行git checkout master
命令。有没有一种方法可以说“将当前分支合并到主分支”?
我有一个应用程序在git存储库的分支(例如dev
)上运行。该应用程序修改存储库中的某些内容并提交它们。现在我必须将这些更改合并到另一个分支(例如master
),但问题在于我不想在此之前执行git checkout master
命令。有没有一种方法可以说“将当前分支合并到主分支”?
在你的情况中,“master”似乎是“可快进”的。你可以将该分支“推送”到master。
cd /path_to_dir_with_no_branch_switch/
git push . appbranch:master
git push . appbranch:master
。 - sehe.
和冒号:
是什么意思?还有appbranch:master
是什么意思?难道不应该是dev:master
吗?如果是,这代表什么意思? - aliopimain
),以便能够在那里解决潜在的冲突。git worktree
命令。main
(您正在工作的第一个工作树)时,您将从单独的工作树中恢复更新的 main
分支。
或者,Bernardo Dal Corno建议在评论中使用一个2014年的工具/脚本:schuyler1d/git-forward-merge
来自Schuyler Duveen。
git forward-merge
创建一个临时的Git索引文件和工作目录,仅用于合并,不会干扰实际的索引文件和工作目录。
(除非合并是快进的,这种情况下合并通过本地推送轻松完成。)
git clone
命令中添加--local
参数来强制执行吗? - Mark Longairgit worktree
),使该过程更快速且不“hackish”。 - VonCdev
合并到 master
分支。如果你认为有可能行得通,值得尝试使用 git push . dev:master
命令,它会检查是否可以进行快进合并,如果可以就直接进行,但如果你不能只是重新挂标签,那么你的下一步是:git clone -nsb master . `mktemp -d`
cd $_
git reset -q
git merge origin/dev
git push
cd -
现在你已经完成了“最小化合并”。克隆、切换目录和重置所需的时间比在一个十年前的中档电脑上输入(3.5G历史记录,1.2G完整检出>70K个文件)要少,因为它不会复制任何东西。