目前,我在我的机器上签出了同一个 Git 项目的两个副本。我知道传统上人们不会这样做;更典型的做法是检查项目一次并根据需要切换分支。我拥有第二个副本的主要原因是,我可以在 IDE 中本地查看合并请求 \xe2\x80\x94\xc2\xa0,以及运行代码 \xe2\x80\x94,而无需从任何内容切换上下文我可能正在进行工作。该工作可能不适合我隐藏、提交或停止运行长时间运行的进程。
\n我不小心在本地对项目的错误副本进行了一些更改,并希望将它们移动到正确的副本。
\n我知道我可以创建一个分支,将它们推送到服务器,在另一个分支上检查它们,然后删除远程分支。这并不是太繁重。
\ncd /path/to/source-project\n\ngit switch -c myTempBranch\ngit push -u origin myTempBranch\n\ncd /path/to/other-project\n\ngit pull\ngit merge myTempBranch\ngit push -d origin myTempBranch\nRun Code Online (Sandbox Code Playgroud)\n话虽如此,这些更改还没有准备好供其他人使用,如果我可以在本地完成所有这些操作而无需涉及远程服务器,那就太好了。
\n有没有一种方法可以将一个签出的 get 项目中的一系列提交应用到该项目的不同副本而不推送它?
\n您可以将本地存储库添加为远程存储库并获取它以获取更改。例如
git remote add repoWithChanges file:///<path_to_remote>
git fetch repoWithChanges
Run Code Online (Sandbox Code Playgroud)
现在,在获取其他存储库的更改后,您可以进行挑选、合并等操作。
PS:如果您需要第二个工作树来处理拉取请求,您可以使用
git worktree add /some/path/to/checkout someBranch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
531 次 |
| 最近记录: |