繁体   English   中英

如何使用 Git 在多台计算机上工作? [等候接听]

[英]How to work on multiple computers with Git? [on hold]

我知道如何推/拉,但我的问题确实是:我怎样才能开始在计算机上处理某事,然后继续在另一台计算机上进行,而不推动像“我稍后将在我的另一台机器上继续”这样的肮脏和不完整的提交。

我的想法是创建一个脏分支并使用空提交消息将脏提交推送到那里,然后从另一台计算机中拉出它,最后当我完成时,创建一个最终提交来总结我所有的工作。 但是是否有可能从历史中完全清除这些脏提交?

如果您有一个“脏”提交,并且只有一组已知文件: email 自己是包含这些文件的 tar(或 zip...)存档。

(有一个单一的提交意味着:你实际上并不关心历史......)


使用 git:最简单的方法是推送到(并从中获取)通用遥控器。

有 git 命令可以从中央存储库中删除分支,但取决于您使用的中央服务器(您似乎使用 github),以及该服务器在中央存储库上为您提供的访问权限,您可能会被禁止删除远程分支.

删除远程分支Jojolatino/wip/foo的操作很简单:

git push origin --delete Jojolatino/wip/foo

如果您之后可以删除临时分支,请执行以下步骤:

# from computer A : push current HEAD to a new branch with an explicit name
git push origin HEAD:Jojolatino/wip/20191108

# from computer B : fetch, keep a local copy of the branch, delete remote branch
git fetch
git checkout Jojolatino/wip/20191108
git push origin -d Jojolatino/wip/20191108

是的,这是可能的。 一种方法是使用变基来更改 git 历史记录,该过程有时称为压缩提交。

警告:不要压缩其他用户可能已经拉取的提交,否则他们可能会在推送更改时遇到问题。

可以在此处此处此处此处找到有关如何执行此操作的说明。

上面的链接很好地描述了它,但用我自己的话来说:

将您的临时提交命名为“WIP”或类似名称。

当您准备好将它们转换为单个提交时,请使用交互式 rebase:

git rebase -i <hash of first temporary commit>~

将第一个临时提交保留在“pick”上,但将所有剩余提交的“pick”更改为“f”(用于修复)。 这将导致您的所有其他提交被压缩到第一个提交中。 您还可以在交互式变基期间更改第一次提交的消息。

当您第一次推送此提交时,它将被拒绝为落后于头脑。 所以,使用

git push --force-with-lease

强制替换当前头部(with-lease 部分确保您不会覆盖其他人的提交)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM