我有一台工作机器和一台家用机器,两者都是同一个在线仓库的克隆。我做了一些改变,在我离开工作之前我没有时间完成,但是我想把它们带到我身边,这样我就可以在家里继续工作了。
我想避免:
基本上,有一种快速的方法可以让我的工作正在进行中吗?和我一起回家,没有任何推动?
答案 0 :(得分:4)
使用
git bundle
它是为此目的而设计的。它只存储你告诉它的内容。
答案 1 :(得分:1)
创建一个WIP分支看起来真的像是去这里的方式,它真的很快就能做到并且容易摆脱。也就是说,我认为如果您真正想做的事情是可能的,那么位于中心的'diff'文件将位于您的.git文件夹中。我真的不知道这一点,即使有可能,它似乎比创建远程分支更脏和风险......:/
所以,我要做的是
git branch WIP
git checkout WIP
push the branch to master
checkout the branch from home
git rebase -i once you're ready to commit (to squash the "unnecessary commits")
delete the remote branch
一旦你获得了它的节奏,它真的非常快速和无痛,并且使用像git这样的分布式VCS的胜利
答案 2 :(得分:0)
我知道你声明你不想分支或者其他,但是你可以拥有本地分支,然后将它作为远程分支推送到git存储库。然后,您就可以回家并将远程分支拉到家中的机器上并继续处理它。你可以反复这样做,回家,然后回去工作。 完成后,将远程分支合并到(开发或主分支)中,然后将其删除。分支就像从未存在过一样。在git中,您还可以拥有私有分支,如果底层git服务器支持,则不允许其他人看到分支。 复制文件或你试图做的其他方式只是从git的有用性中剔除,因为它是分布式的,分支是便宜的,它更容易分支,然后在需要时合并。进行大量提交并不是件坏事。
答案 3 :(得分:0)
首先,我应该说我还推荐Will Buck的WIP分支答案,因为它们易于创建和破坏,而且它们很轻。
无论如何,你所要求的是可能的。
您可以从一组提交中创建一组修补程序,将它们复制到USB中,然后将它们应用到您的家中。
所有这些步骤都可以通过以下方式完成:git format-patch和git am。
git format-patch
将从您指定的提交中生成补丁文件列表。
git am
会在HEAD
。
progit本书提供了有关如何使用这些命令的更多信息。
答案 4 :(得分:0)
这是一个消极的答案,以拯救他人的麻烦:我认为如果你的USB密钥足够大,可以容纳存储库,而你只是不想每次都等待副本,那么git stash
结合推送到USB将是一个合适的工具。但是,由于存储实际上使用了reflog而不仅仅是ref refs/stash
,因此无法简单地推送存储状态。