visual-studio - 如何使用 Git 和 Git 扩展?

标签 visual-studio git visual-studio-2010 git-extensions

简介

我以前用过 SVN,那时候我还是一个独立的程序员,只是为了对我所做的事情进行异地记录,所以我有点了解“存储库”和“提交”等概念,尽管仅此而已。遗憾的是,“分支机构”、“merge ”和“ checkout ”对我来说是个谜。

我想开始使用 Git,因为我们有几个不在办公室工作的人,他们提示说他们有时无法访问其他一些版本控制系统,因为他们的 IDE 集成导致他们生闷气当他们失去联系时摔倒。 Git 的“每个工作目录都是一个存储库”的想法似乎应该在某种程度上解决这个问题。

无论如何,我已经下载了“Git Extensions”以将 The Shiny 添加到 Windows 上下文菜单等。我发现我真的不知道我应该如何使用它来控制我的版本控制.在谷歌搜索后没有发现任何明显的东西,我向 Stack Overflow 展示了以下理论场景,希望有人能用简短的语言告诉我该怎么做:

场景

我有三个项目。一个项目 ProjectReuse 由其他两个项目(ProjectA 和 ProjectB)使用。组织中的不同人员需要使用 Visual Studio 2010 为每个项目编辑代码。

我的桌面上有三个文件夹,分别标记为“ProjectReuse”、“ProjectA”和“ProjectB”。我打开了 Git Extensions 窗口。一头戴着圣诞老人帽子的牛正盯着我看。

问题

我现在要做什么来创建存储库,以便几个人(包括那些讨厌的不总是在现场的人)可以在需要时访问一个存储库,on-网站或关闭,与我们的服务器有或没有永久连接?

当第一个人需要编辑文件时,需要做什么?查看?分支?我必须向其他团队成员解释这一点,而我自己对这些概念有点摇摆不定。我以前只对我的个人项目使用过版本控制。

花言巧语和借口

第一个“我该如何设置?”问题是我最感兴趣的,但我想如果我要寻求白痴指南,我不妨要求它对下一个偶然发现这个问题的白痴尽可能有用。我不是在这里寻找特别深入的答案;我只是对多用户版本控制系统的工作原理没有任何清晰的认识。一旦我想到了这一点,我应该能够自己将其余的放在一起。

最佳答案

好的,让我们先了解关于 git 的第一件事。 Git 是分布式的。根据需要多次对自己重复:没有中央服务器、中央存储库或任何中央的东西。与 SVN 完全不同的是,您并非都访问一个存储库(无中心)。

您要做的是在某处创建一个存储库。然后其他人克隆(复制)它。现在每个人都有自己的存储库副本,可以随心所欲地使用它。分支名称甚至不需要在存储库中保持一致,尽管许多人这样做是因为这样做有帮助。

那么,如何设置呢?您初始化一个存储库,然后每个想要它的人都可以克隆它。对于您的情况,我建议每个项目都有自己的 git 存储库,而不是将所有三个项目混为一谈。

但是,我听到你说,我究竟应该如何管理一个开发团队?从不畏惧。我说过没有中央存储库,但这并不能阻止您指定一个存储库作为发布存储库,另一个作为实验存储库或其他。

那么您需要的是一个工作流程。通常,您所做的是创建所述发布存储库,然后说:“每个人都从这里的 master pull ”。这代表您最新的“稳定”版本。现在你告诉每个人从这里分支并开发他们的新功能。他们这样做。当这些完成后,你要求人们将他们的更改 merge 回他们自己的母版或任何地方,然后你,发布经理,从他们那里 pull 出来(可能进入一个开发分支,但你可以将它 merge 到你的发布母版中,因为它是微不足道的反向提交)。下一个人然后更新他们的主人并进行 merge 。他们解决自己的 merge 冲突等等,直到你拥有你想要的所有功能。您进行测试等,然后发布存储库确实将所有这些都 pull 到它的主库中。

在实践中,您可能会做很多不同的事情。例如,如果你有很多人,你将需要进行大量的沟通,因为如果很多人对你的共享项目做出不兼容的更改,就会有一些 merge 提交。为避免这种情况,用户可以相互 pull/merge 或使用本地“共享”存储库。

它确实有效。

关于visual-studio - 如何使用 Git 和 Git 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451573/

相关文章:

visual-studio - Q# 智能感知错误

c++ - 升级 Visual Studio 后 Fortran DLL 出现异常

Git:将本地目录置于版本控制之下

git - 如何在多台计算机上使用未提交的 git 文件

c# - 无法加载引用中可见的程序集 (.DLL)

c++ - 我可以将 Visual Studio 编译器设置为符合特定版本的 c++ 吗?

c++ - Visual Studio 对静态库进行单元测试;防止主项目中出现额外的依赖项

git - 如何将提交推送到 SVN 存储库?

c++ - 有什么办法可以通过 pragma 添加源文件吗?

visual-studio-2010 - 解决方案资源管理器中的 csproj 文件