Git - 保留工作但不提交

5
我是一个Git新手,想问一下如何解决我的工作流问题。我有两台电脑,一台在办公室,一台在家里,还有一个VPS作为我的Git共享仓库。当我在办公室工作时,我会有未完成的代码,我想在家里继续工作,通常我会先在办公室提交并将我的工作推送到Git共享仓库,然后在家里拉回并继续工作。
但有时候,我没有直接回家,在此期间,我的某个同事拉取了代码并与之一起工作,他因我提交了错误的代码而责备我。所以我的问题是,我如何在不提交的情况下更换电脑但仍然能够得到未完成的工作?

6
不要将其推送到共享存储库中,并直接从您的工作存储库中拉取;第二个选项是建立自己的“中央”仓库,或者第三个选项是在分支上工作。无论哪种方式对您来说更自然,但您仍然需要提交它。 - falstro
4个回答

11

在自己的分支上完成所有工作,让你的同事知道不要从该分支拉取。如果有很多开发人员,这可能会变得混乱,但只有两个人应该完全没有问题。


在自己的分支上工作还可以让你重置/变基/删除提交记录——无论你想做什么。 - knittl
没关系。即使你确定只有自己使用,也不应该重置/变基/删除已经推送的提交。如果你还没有推送,可以自由地变基等其他人的分支而不会造成任何麻烦。 - kubi

2
当我在项目中与其他人合作时,我会使用自己的分支。因此,如果我有未完成的代码,我会将其提交并推送到自己的分支上。当我认为这个代码已经准备好使用时,我会将其提交到一个共同的工作分支上。在这里测试后,我们将其合并到主分支。
示例:
主分支:由所有人测试。 WIP分支:正在进行的常见工作分支,每个人都可以使用代码并测试它。 WIP-Bright:我自己的分支 WIP-someone:某人的分支。
使用这个Git速查表让使用Git变得更加容易。

0

正如kubi所说,使用私有分支。如果您根本不想将错误代码推送到存储库中,可以将更改作为补丁通过电子邮件发送给自己(使用git format-patch),在家中应用它并从那里开始工作(使用git apply

还要记住,您可以使用git commit --amend用正确的提交覆盖“半成品”提交,准备推送到共享存储库。


0

如果您无法设置网络和存储库,以便在家中从工作处拉取并推送到工作处(请参见Git Wiki页面上GitFaq中的“如何使用“git push”从无法拉取的主机同步?”部分),也无法设置自己的裸“发布”存储库,用于在工作和家庭之间交换,请查看git bundle,它适用于离线(Sneakernet)传输。

这可能不是直接回答您的问题,但我希望这会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接