ryn*_*ynd 42 git push commit repository
我想,如果有人能给我更多关于使用git和远程存储库的细节.我还没有使用远程存储库.
对于本地存储库,您提交的更改可能不会太过于破碎.什么被推送到远程存储库?每个本地提交?或者完成的整体工作,然后与其他人的整体工作合并?我认为远程存储库的日志必须令人困惑,如果每个人都推送每个提交.
aca*_*tle 42
从远程存储库推送和拉取并不像本地提交那么重要.通常每天推拉几次就足够了.就像@earlonrails所说的那样,更频繁的推动意味着更改冲突的可能性更小,但通常并不是那么大.
按照这种方式考虑,通过提交到本地存储库,你基本上是在说"我相信这段代码.它完整.它运行.我已经测试过了.我已准备好让其他人看到它." 如果你想在每次提交后推送到远程存储库,那很好,但只要你定期执行它就没那么重要了.
本地存储库用于跟踪您的更改以保护您的工作.远程存储库用于将工作分发给所有队友并跟踪每个人的更改.您的队友需要访问您的代码,但通常情况并不紧急,可以等到一天结束或者您想要推送时.
我尝试尽可能推送每个本地提交(我使用Git).我很少在本地提交2次或更多次.否则,就有可能无法解决的冲突风险.
我更喜欢使用rebase而不是merge,以保持历史更加线性.如果我在本地有2个提交A和B(B更旧),并且B与即将发生的更改冲突,在解决了rebase上的coflicts后,我必须检查B,检查编译,可能运行测试,然后只切换到A并推送所有.
这就是为什么我喜欢尽快推出我拥有的一切.
我一般不同意最佳答案和一些评论。提交和推送都不必对代码的质量负责。
在svn时代,大家都在同一个分支工作。您的代码中的错误很快就会传播给其他人。在这种情况下,你肯定要保证你的代码质量,这就是许多公司和组织中 svn 被 git 取代的原因。
我们需要明确什么是典型的 Git 工作流程。假设您的 master 分支有一个可用的软件版本。有些人喜欢使用 master 分支作为发布分支,而另一些人则使用它作为开发分支。不要紧。每当您需要添加功能或修复错误时,您都可以从主(或另一个)分支创建一个分支。该功能应该足够小,可以在不涉及对代码库进行大量修改的情况下进行处理。如果修改量较大,应创建多层分支,使最后一层分支足够小。
如果每个分支都添加一个小功能,那么不太可能有很多人在同一个分支工作。如果有多个人致力于一项功能,那么该小组应该很小并且经常沟通,因此冲突应该很容易解决。如果一次提交或一次推送出现问题,那么只有您或您的小团队才会遇到问题。
那么我们应该从哪里保证代码的质量呢。我的答案是拉取请求。在 Github 中,您修改代码并提交拉取请求。当您提交拉取请求时,您需要保证您的代码可以编译并通过测试。在Gitlab中,您在修改代码之前创建合并请求,但标记为WIP(正在进行中)。然后你修改代码。在删除 WIP 标记之前,您需要保证您的代码具有良好的质量。此外,代码审查员将是另一层保护。
您的分支中应该很少发生冲突,但当您将分支合并到基础分支时,可能会发生冲突。您应该在合并发生之前修复它。
唯一的事情与rebase有关。许多开发人员喜欢在提交合并冲突之前对其分支进行变基,以使 git 提交历史记录看起来更好。如果您推送到远程并且其他人使用了您的代码,则变基会导致需要修复的棘手问题。但是,如果您始终在只修复一个小功能的分支上工作,那么无论如何都没有人想使用您的分支。另外,我个人不太喜欢变基,因为它会修改历史。
所以我的结论和其他人类似,经常承诺,经常推动,但原因不同。
| 归档时间: |
|
| 查看次数: |
24413 次 |
| 最近记录: |