gpt4 book ai didi

git - 将未提交的更改移动到另一台计算机而不提交

转载 作者:行者123 更新时间:2023-12-04 16:04:04 26 4
gpt4 key购买 nike

我有 2 台开发机器。

我对机器 A 中的存储库进行了未提交的更改。这些未提交的更改包括编辑和新创建的文件。

我希望将这些未提交的更改移动到机器 B。注意:我不想将这些更改提交到存储库并从机器 B 中提取它们,因为我不希望人们在 BitBucket 提交日志中看到未完成的代码。

请注意,机器 A 和 B 都具有当前存储库的最新版本。

据此: Using git, how do you move some uncommitted changes from one branch to another branch in a different folder?

我应该在机器A上做这个

$ git diff > patch

将补丁文件发送到机器B并执行此操作:

$ git apply /path/to/patch 

这通常有效。但在这种情况下,git apply 失败了。

当我执行 $ git apply --check 时,我收到类似于以下内容的错误:

error: database/migrations/example.php: No such file or directory

为什么会这样?我该如何解决这个问题?

最佳答案

无需将所有分支推送到 BitBucket(或您使用的任何中央存储库)。设置电脑A在计算机上托管的存储库中作为远程 B , 使用 git fetch AA 获取分支然后用获取的提交做任何你想做的事。

在电脑上运行一次B :

git remote add A <url-of-the-repo-on-A>

替换<url-of-the-repo-on-A>有一个你可以在 B 上使用的 URL访问位于 A 上的 repo计算机。
例如,假设 A repo 位于 /home/user1/projects/repo你可以访问A来自 B使用 ssh作为user1你可以使用 ssh://B/home/user1/projects/repo . (您需要配置 AB 以使用公钥进行身份验证,这样 Git 就不会在每次需要访问远程存储库时被 Git 关于您在 A 上的密码窃听)。

如果你在A之间有不同的沟通方式和 B (例如,由 A 共享的目录,挂载在 B 上)您也可以使用它(假设 B 上的 repo 以这种方式可见)。

在初始设置步骤之后,每次您想要从 A 传输更改时至 B你可以在 A 上创建一个新的提交(在你想要的任何分支上,也许你想为这次转移创建一个特殊的分支)。然后你登录 B并运行(在 repo 中):

git fetch A

( A 是上面 git remote 命令设置的仓库名称)。
这会将 A 中的所有新提交带入本地存储库。并且不存在于本地 repo 中。您也可以通过将其放入命令行来获取单个分支:

git fetch A branch1

现在,更改在 B 中您可以 checkout 该分支并继续处理它:

git checkout branch1

或者将它们移动到另一个分支之上(使用 rebase )或者 merge 它们或者做任何你想做的事。

阅读更多关于 git remote 的信息和 git fetch .

关于git - 将未提交的更改移动到另一台计算机而不提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49490182/

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