PageRenderTime 28ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/source/posts/2017-09-11-comparing-confusing-terms-in-github-bitbucket-and-gitlab.html.md

https://gitlab.com/nick.volynkin/www-gitlab-com
Markdown | 116 lines | 86 code | 30 blank | 0 comment | 0 complexity | 99240c002b90c6a6a88d7218139d7474 MD5 | raw file
  1. ---
  2. title: "Comparing confusing terms in GitHub, Bitbucket, and GitLab (2017)"
  3. categories: technical overview
  4. author: Marcia Ramos
  5. author_twitter: XMDRamos
  6. author_gitlab: marcia
  7. description: "Learn the differences between GitLab, GitHub, and Bitbucket\'s terminology."
  8. image_title: '/images/blogimages/comparing-confusing-terms-in-github-bitbucket-and-gitlab-cover.jpg'
  9. twitter_image: '/images/tweets/comparing-confusing-terms-in-github-bitbucket-and-gitlab.png'
  10. ---
  11. Developers rely on multiple platforms to manage repositories, depending on
  12. client and project needs.
  13. They might contribute to a community project on GitHub, while working on one
  14. client's on premises GitLab instance and another client's project in Mercurial
  15. on Bitbucket.
  16. Confusion can arise when you switch between platforms.
  17. In this post, we have a handy reference guide to explain
  18. some potentially confusing terms, especially if you're new
  19. to GitLab.
  20. <!--more-->
  21. This article was originally written by [Heather McNamee](https://twitter.com/nearlythere) and [published by GitLab](/2016/01/27/comparing-terms-gitlab-github-bitbucket/) on Jan 26th, 2016.
  22. Updated by Marcia Ramos on Sep 11th, 2017.
  23. {:.note}
  24. ## Migrating to GitLab
  25. Since GitLab's [8.4 Release](/2016/01/22/gitlab-8-4-released/), we have improved
  26. [migration support](https://docs.gitlab.com/ee/user/project/import/)
  27. for those coming from diverse platforms to GitLab.
  28. GitLab imports your repositories, wikis, issues, pull requests, and milestones
  29. from [GitHub](https://docs.gitlab.com/ee/user/project/import/github.html),
  30. as well as from [Bitbucket](https://docs.gitlab.com/ee/user/project/import/bitbucket.html).
  31. While most terminology is shared
  32. between the platforms, some differences lead to confusion
  33. for users.
  34. Git-specific terms like commits, push, pull, fetch, merge and so forth are the same.
  35. Common features most repository managers have are also the same: such as users, issues, webhooks, milestones, etc.
  36. ## Pull requests vs merge requests
  37. Some features have different names. For example a pull request in GitHub and Bitbucket is called a merge request in GitLab.
  38. We figured since you're often making a request to `merge` a feature branch into the master branch, we call this a
  39. "merge request" and you'll hear us talk about MRs and not PRs.
  40. Read through this page for a full [comparison between MRs and PRs](/comparison/gitlab-merge-request-vs-github-pull-request.html).
  41. If youre brand new to GitLab, weve made this handy cheat sheet to help you orient yourself and clear things up.
  42. ![The Import Project UI in GitLab showing you can import from GitHub, Bitbucket, etc](/images/blogimages/gitlab-terminology.png){:.shadow}
  43. ## Teams, repositories, organizations?
  44. From teams to repositories to organizations, theres potential for fresh confusion.
  45. In GitHub, *repositories* contain the Git/SVN repository, and the project assets
  46. such as issues, contribution metrics, etc.
  47. However users often refer to repos as *projects* interchangeably.
  48. So in GitLab, we call that container a **[Project](https://docs.gitlab.com/ee/user/project/)**.
  49. That includes the Git [repository](https://docs.gitlab.com/ee/user/project/repository/),
  50. [issues](https://docs.gitlab.com/ee/user/project/issues/),
  51. [merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/),
  52. [milestones](https://docs.gitlab.com/ee/user/project/milestones/),
  53. and much more.
  54. ## Creating a new project in GitLab
  55. When you set up a project, you can, among many other options:
  56. - Choose [project features](https://docs.gitlab.com/ee/user/project/#project-39-s-features).
  57. - Set the project avatar and its visibility level (Private, Internal or Public).
  58. You can have as many private projects as you want.
  59. - Build, test, and deploy your app with [GitLab CI/CD](/features/gitlab-ci-cd/).
  60. - Collaborate on code with [merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/) and [Review Apps](https://docs.gitlab.com/ee/ci/review_apps/).
  61. - [Integrate](https://docs.gitlab.com/ee/user/project/integrations/project_services.html)
  62. with third-party applications
  63. It's important to make this distinction because you import a **project** in
  64. GitLab, regardless of whether that is called a **repository** elsewhere. In
  65. GitLab, the repository is *part* of a project.
  66. {:.alert .alert-info}
  67. ![The Import Project UI in GitLab showing you can import from GitHub, Bitbucket, etc](/images/blogimages/comparing-confusing-terms-in-github-bitbucket-and-gitlab-project.png){:.shadow}
  68. ## Projects, organizations, and groups
  69. This is where it could get confusing.
  70. Now Bitbucket groups multiple repositories into *Projects*, multiple projects into teams,
  71. and teams in Bitbucket are analogous to an *Organization* in GitHub.
  72. In GitLab, we call this a **[Group](https://docs.gitlab.com/ee/user/group/)**.
  73. This allows you to collect several projects together and also invite
  74. members (other users) to collaborate. Those members can then configure their own [group-level notifications](https://docs.gitlab.com/ee/workflow/notifications.html#group-settings).
  75. Projects can be stored in only one group at once.
  76. However, you can [share a project with other groups](https://docs.gitlab.com/ee/user/project/members/share_project_with_groups.html) in [GitLab Enterprise Edition Starter](/gitlab-ee/).
  77. And even those settings can be [locked at the group level](https://docs.gitlab.com/ee/user/group/#share-with-group-lock-ees-eep) so you can avoid
  78. someone sharing a private project to other groups, for example.
  79. The confusion is understandable, especially if, like many developers,
  80. you work with a number of clients each on different platforms.
  81. I hope this has cleared up confusion. If you have any questions, please create a
  82. [new issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/new) or
  83. tweet at us [@GitLab](https://twitter.com/gitlab)!
  84. ----
  85. [Cover image](https://www.pexels.com/photo/ask-blackboard-chalk-board-chalkboard-356079/) licensed under [CC0](https://www.pexels.com/photo-license/).
  86. {:.note}