git - git中的存储库和分支有什么区别?

标签 git

精通 git 的人可以帮助我理解 repo 和 branch 之间的区别。我最近被介绍给 git 并且很难理解它们。我被告知将远程仓库(例如 foo)克隆到我的本地盒子。然后从中创建一个本地分支。在分支上工作(更新/创建/删除文件)并添加/提交/推送到远程服务器(例如 bitbucket)。在第二组眼睛检查分支并说好的之后。然后它被 merge 到开发或主分支。

那么存储库在这幅图中扮演什么角色?对我来说,我运行的所有操作都是针对分支的...

最佳答案

存储库 是您在计算机上克隆的整个项目(目录和文件)。 分支 是您存储库的一个版本,或者换句话说,一个独立的开发线。

一个存储库可以包含多个分支,这意味着存储库有多个版本。毕竟,对代码进行版本控制的目的是,您可以同时处理项目的多个方面 - 每个方面都在不同的分支中发展。 Git 在“分支”旁边使用“工作树”(代表您的工作台)这一表达方式。

相关:如果您想了解更多关于 local and remote branches 的信息.


关于您最初问题中处理分支的方式:

Clone a remote repo (e.g. foo) to my local box. Then create a local branch out of it. Work (update/create/delete files) on the branch and add/commit/push to the remote server

这是使用 git 的一种非常干净的方式。我建议你总是这样进行:

----A---B---C--     (REMOTE, master)

            |
            |       (Pull to local : `git pull origin master`)
            v

----A---B---C--     (LOCAL, master)

然后从本地主服务器创建一个分支(git checkout -b branch1),处理它,提交更改并推送到远程:

----A---B---C------     (REMOTE, master)

----A---B---C---D--     (REMOTE, branch1)

               ^
               |
               |        (Push to remote : `git push origin branch1`)

----A---B---C------     (LOCAL, master)
             \
              D----     (LOCAL, branch1)

然后,当您对您的功能/修复/任何内容感到满意时,您可以将 branch1 merge 到 master 中。

关于git - git中的存储库和分支有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41398489/

相关文章:

java - 多个项目共享同一个数据库(Spring JAVA)

linux - Git pull 和推不起作用(使用 gitg 客户端)

带有电子邮件地址形式的用户名的 Git 远程 URL

Git 保留分阶段更改

git - 还原失败的 merge 后重新 merge

git - 如何使用 mingw 和 sbt 在 Windows 上获得 Specs2 颜色支持

git - 如何让 git diff 显示所有内容而无需按 Enter 向下滚动?

c - 用 libgit2 实现 'git pull'?

git - 如何撤消git还原以取回更改

git - 更改 Git 远程仓库密码