{"id":14368,"date":"2020-07-25T06:13:48","date_gmt":"2020-07-25T04:13:48","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/"},"modified":"2020-07-25T06:13:48","modified_gmt":"2020-07-25T04:13:48","slug":"git-collaboration-quick-start","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/","title":{"rendered":"Git collaboration: quick start"},"content":{"rendered":"<h1>Git collaboration: quick start<\/h1>\n<p>If you want to keep the git repository of your project clean and predictive (which is highly recommendable), here is a simple workflow to follow.<br \/>\nFor the sake of this article, we are going to join the MongoDB project.<\/p>\n<h2>First step: work safely on your branch<\/h2>\n<p>When joining the project, the first step to get a local copy in your laptop:<\/p>\n<p><code><br \/>\n$ cd my_working_directory<br \/>\n$ git clone git@github.com:nico\/mongo.git<br \/>\n<\/code><\/p>\n<p>Once you do that, you have a copy of the source code locally. This is called the master:<\/p>\n<p><code><br \/>\n$ cd .\/mongo<br \/>\n$ ll<br \/>\ntotal 340<br \/>\ndrwxrwxr-x 13 nico nico   4096 Jun 25 08:59 .\/<br \/>\ndrwxrwxr-x  3 nico nico   4096 Jun 25 08:56 ..\/<br \/>\n-rw-rw-r--  1 nico nico   6709 Jun 25 08:59 .clang-format<br \/>\n-rw-rw-r--  1 nico nico     29 Jun 25 08:59 .eslintignore<br \/>\n-rw-rw-r--  1 nico nico    795 Jun 25 08:59 .eslintrc.yml<br \/>\n-rw-rw-r--  1 nico nico    308 Jun 25 08:59 .gdbinit<br \/>\ndrwxrwxr-x  8 nico nico   4096 Jun 25 08:59 .git\/<br \/>\n-rw-rw-r--  1 nico nico     74 Jun 25 08:59 .gitattributes<br \/>\n-rw-rw-r--  1 nico nico   2145 Jun 25 08:59 .gitignore<br \/>\n-rw-rw-r--  1 nico nico    337 Jun 25 08:59 .lldbinit<br \/>\n-rw-rw-r--  1 nico nico    588 Jun 25 08:59 .pydocstyle<br \/>\n-rw-rw-r--  1 nico nico   1703 Jun 25 08:59 .pylintrc<br \/>\n-rw-rw-r--  1 nico nico    193 Jun 25 08:59 .style.yapf<br \/>\n-rw-rw-r--  1 nico nico    366 Jun 25 08:59 CONTRIBUTING.rst<br \/>\n-rw-rw-r--  1 nico nico  13460 Jun 25 08:59 CreativeCommons.txt<br \/>\n-rw-rw-r--  1 nico nico  30608 Jun 25 08:59 LICENSE-Community.txt<br \/>\n-rw-rw-r--  1 nico nico   1987 Jun 25 08:59 README<br \/>\n-rw-rw-r--  1 nico nico   9933 Jun 25 08:59 README.third_party.md<br \/>\n-rw-rw-r--  1 nico nico 173224 Jun 25 08:59 SConstruct<br \/>\ndrwxrwxr-x 17 nico nico   4096 Jun 25 08:59 buildscripts\/<br \/>\ndrwxrwxr-x  2 nico nico   4096 Jun 25 08:59 debian\/<br \/>\ndrwxrwxr-x  2 nico nico   4096 Jun 25 08:59 distsrc\/<br \/>\ndrwxrwxr-x  2 nico nico   4096 Jun 25 08:59 docs\/<br \/>\ndrwxrwxr-x  4 nico nico   4096 Jun 25 08:59 etc\/<br \/>\ndrwxrwxr-x 33 nico nico   4096 Jun 25 08:59 jstests\/<br \/>\n-rw-rw-r--  1 nico nico    570 Jun 25 08:59 mypy.ini<br \/>\ndrwxrwxr-x  2 nico nico   4096 Jun 25 08:59 pytests\/<br \/>\ndrwxrwxr-x  2 nico nico   4096 Jun 25 08:59 rpm\/<br \/>\ndrwxrwxr-x  5 nico nico   4096 Jun 25 08:59 site_scons\/<br \/>\ndrwxrwxr-x  4 nico nico   4096 Jun 25 08:59 src\/<br \/>\n<\/code><\/p>\n<p>Now, in a big project like this, you shouldn&#8217;t work directly to the master. It is often not permitted to push your change in the master.<br \/>\nWhat we should do instead is to work on a separate copy that is commonly called a branch.<\/p>\n<p>There should be a convention for the branch naming depending on the project. But as a rule of thumb, the branch name should be short, and self-describing.<br \/>\nPreferably, it will refer to a task (Jira task, GitLab issue, GitHub issue, etc.).<\/p>\n<p>For our example, I&#8217;m going to change the MongoDB project documentation, so I call my branch &#8220;remove_obsolete_doc_part&#8221;.<\/p>\n<p><code><br \/>\n$ git branch remove_obsolete_doc_part<br \/>\n<\/code><\/p>\n<p>You can see my local branches with that command:<\/p>\n<p><code><br \/>\n$ git branch<br \/>\n* master      ------------------------&gt; The star here tells you that you are currently in that branch<br \/>\n  remove_obsolete_doc_part<br \/>\n<\/code><\/p>\n<p>And You can see all local branches (local in your laptop and remote from the project) with the next command.<br \/>\nYou&#8217;ll see two master branch, one called &#8220;remotes\/origin\/master&#8221; and one &#8220;master&#8221;. &#8220;master&#8221; is your local copy of<br \/>\nthe master, while &#8220;remotes\/origin\/master&#8221; is the remote copy. &#8220;Origin&#8221; refers to the repository you cloned the code from (&#8220;git clone &#8220;). <\/p>\n<p><code><br \/>\n$ git branch -a<br \/>\n* master<br \/>\n  remove_obsolete_doc_part<br \/>\n  remotes\/origin\/HEAD -&gt; origin\/master<br \/>\n  remotes\/origin\/count-trace-events<br \/>\n  remotes\/origin\/f1b99df5<br \/>\n  remotes\/origin\/master<br \/>\n  remotes\/origin\/r3.4.14<br \/>\n  ...<br \/>\n  remotes\/origin\/v3.4<br \/>\n  remotes\/origin\/v3.6<br \/>\n  remotes\/origin\/v3.6.9-dbaas-testing<br \/>\n  remotes\/origin\/v4.0<br \/>\n  remotes\/origin\/v4.2<br \/>\n  remotes\/origin\/v4.2.1-dbaas-testing<br \/>\n  remotes\/origin\/v4.4<br \/>\n<\/code><\/p>\n<p>As you can above, there are many remote branches from the repository origin. But only two locals on your laptop.<\/p>\n<p>Then, we need to switch the local files to our branch &#8220;remove_obsolete_doc_part&#8221;:<\/p>\n<p><code><br \/>\n$ git checkout remove_obsolete_doc_part<br \/>\n$ git branch<br \/>\n  master<br \/>\n* remove_obsolete_doc_part<br \/>\n<\/code><\/p>\n<p>Now I made my changes on the code and I can see the state of my change:<\/p>\n<p><code><br \/>\n$ git status<br \/>\nOn branch remove_obsolete_doc_part<br \/>\nChanges not staged for commit:<br \/>\n  (use \"git add\/rm ...\" to update what will be committed)<br \/>\n  (use \"git restore ...\" to discard changes in working directory)<br \/>\n        modified:   README<br \/>\n        deleted:    docs\/vpat.md<br \/>\n<\/code><\/p>\n<p>I want to commit those changes:<\/p>\n<p><code><br \/>\n$ git add -A                                      # ----------------&gt; I add all my changes (-A) to the Git staging area (which means that will be committed at next commit time).<br \/>\n$ git commit -m \"Remove obsolete documentation\"   # ---------------&gt; I commit with a clear and short message of what I did.<br \/>\n[remove_obsolete_doc_part 1445bc4c6a] Remove obsolete documentation<br \/>\n 2 files changed, 141 deletions(-)<br \/>\n delete mode 100644 docs\/vpat.md<br \/>\n<\/code><\/p>\n<p>We can see the current state of our local Git repo with that command:<\/p>\n<p><code><br \/>\n$ git status<br \/>\nOn branch remove_obsolete_doc_part<br \/>\nnothing to commit, working tree clean<br \/>\n<\/code><\/p>\n<p>And we can review the previous commits wiht that one:<\/p>\n<p><code><br \/>\n$ git log<br \/>\ncommit 1445bc4c6a80a6dad5b285da4d5a81e9fa3a98cc (HEAD -&gt; remove_obsolete_doc_part)<br \/>\nAuthor: nico<br \/>\nDate:   Thu Jun 25 09:11:51 2020 +0000<br \/>\n    Remove obsolete documentation<br \/>\n<\/code><\/p>\n<p>Then we are ready to push our branch to the remote repository:<\/p>\n<p><code><br \/>\n$ git push origin remove_obsolete_doc_part<br \/>\nEnumerating objects: 7, done.<br \/>\nCounting objects: 100% (7\/7), done.<br \/>\nDelta compression using up to 2 threads<br \/>\nCompressing objects: 100% (4\/4), done.<br \/>\nWriting objects: 100% (4\/4), 356 bytes | 178.00 KiB\/s, done.<br \/>\nTotal 4 (delta 3), reused 0 (delta 0)<br \/>\nremote: Resolving deltas: 100% (3\/3), completed with 3 local objects.<br \/>\nremote:<br \/>\nremote: Create a pull request for 'remove_obsolete_doc_part' on GitHub by visiting:<br \/>\nremote:      https:\/\/github.com\/nico\/mongo\/pull\/new\/remove_obsolete_doc_part<br \/>\nremote:<br \/>\nTo github.com:nico\/mongo.git<br \/>\n * [new branch]            remove_obsolete_doc_part -&gt; remove_obsolete_doc_part<br \/>\n<\/code><\/p>\n<h2>Second step: publish your contribution<\/h2>\n<p>Once you like what you did, you can merge your code into the master branch.<br \/>\nThis can be done in different ways, and depending on the Git service provider, the philosophy can change.<br \/>\nFor this article, I&#8217;m going to merge with the Git command-line tool.<\/p>\n<p>Prior to merging your changes from the branch &#8220;remove_obsolete_doc_part&#8221; to the master branch, you need to<br \/>\nsynchronize (pull) the remove master branch with your local one:<\/p>\n<p><code><br \/>\n$ git checkout master<br \/>\nSwitched to branch 'master'<br \/>\nYour branch is up to date with 'origin\/master'.<\/p>\n<p>$ git pull   #-------------------------&gt; merge the remote code into your local code.<\/p>\n<p>$ git fetch -p    #-------------------------&gt; optional but handy: it fetches remote branch other than the master and remove the local one that has been removed remotely.<br \/>\n<\/code><\/p>\n<p>Then, you can merge your local branch &#8220;remove_obsolete_doc_part&#8221; into the local master branch:<\/p>\n<p><code><br \/>\n$ git merge remove_obsolete_doc_part<br \/>\nUpdating 8b0f5d5e1d..1445bc4c6a<br \/>\nFast-forward<br \/>\n README       |   5 -----<br \/>\n docs\/vpat.md | 136 ---------------------------------------------------------------------------------------------------------------------------------------<br \/>\n 2 files changed, 141 deletions(-)<br \/>\n delete mode 100644 docs\/vpat.md<br \/>\n<\/code><\/p>\n<p>At this stage, you may have conflicts because some parts of the code have been changed in the remote master copy while you were working locally. That&#8217;s perfectly fine and Git will show you the conflicting file in the staging area: `git status`. Just review the files and decide which part of the code you want to keep and commit.<\/p>\n<p>The last operation conists in pushing your local copy of the master branch into the remote master so that everyone can enjoy<br \/>\nyour changes:<\/p>\n<p><code><br \/>\n$ git push<br \/>\nTotal 0 (delta 0), reused 0 (delta 0)<br \/>\nTo github.com:nico\/mongo.git<br \/>\n   8b0f5d5e1d..1445bc4c6a  master -&gt; master<br \/>\n<\/code><\/p>\n<h2>Conclusion<\/h2>\n<p>Those are the minimum good practices you should follow if you plan to work on a project involving a few persons.<br \/>\nThat guarantee that you can backup regularly your code without impacting the main project.<\/p>\n<p>For more significant projects, you&#8217;ll see other concepts like the &#8220;pull request&#8221; or &#8220;merge request&#8221;.<br \/>\nUsually, you won&#8217;t be able to merge your changes directly into the remote master. Instead, you&#8217;ll have to create a request to push your changes into the remote master, and someone else will decide to approve the merging of your code, reject it or comment it if it requires more changes before merging.<\/p>\n<h2>Notes<\/h2>\n<p>Keep as much as possible your working branch in sync with the remote master. Ideally, execute full sync of your local copy before working on it every day:<\/p>\n<p><code><br \/>\ngit checkout master                           # Go the master branch<br \/>\ngit pull                                      # Get remote master changes into the local master branch<br \/>\ngit checkout remove_obsolete_doc_part         # Go back to your working branch<br \/>\ngit merge master                              # Synchronize your working branch<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Git collaboration: quick start If you want to keep the git repository of your project clean and predictive (which is highly recommendable), here is a simple workflow to follow. For the sake of this article, we are going to join the MongoDB project. First step: work safely on your branch When joining the project, the [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[368],"tags":[2010],"type_dbi":[],"class_list":["post-14368","post","type-post","status-publish","format-standard","hentry","category-development-performance","tag-git"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Git collaboration: quick start - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Git collaboration: quick start\" \/>\n<meta property=\"og:description\" content=\"Git collaboration: quick start If you want to keep the git repository of your project clean and predictive (which is highly recommendable), here is a simple workflow to follow. For the sake of this article, we are going to join the MongoDB project. First step: work safely on your branch When joining the project, the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-25T04:13:48+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Git collaboration: quick start\",\"datePublished\":\"2020-07-25T04:13:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/\"},\"wordCount\":676,\"commentCount\":0,\"keywords\":[\"Git\"],\"articleSection\":[\"Development &amp; Performance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/\",\"name\":\"Git collaboration: quick start - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2020-07-25T04:13:48+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Git collaboration: quick start\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Git collaboration: quick start - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/","og_locale":"en_US","og_type":"article","og_title":"Git collaboration: quick start","og_description":"Git collaboration: quick start If you want to keep the git repository of your project clean and predictive (which is highly recommendable), here is a simple workflow to follow. For the sake of this article, we are going to join the MongoDB project. First step: work safely on your branch When joining the project, the [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/","og_site_name":"dbi Blog","article_published_time":"2020-07-25T04:13:48+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Git collaboration: quick start","datePublished":"2020-07-25T04:13:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/"},"wordCount":676,"commentCount":0,"keywords":["Git"],"articleSection":["Development &amp; Performance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/","url":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/","name":"Git collaboration: quick start - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2020-07-25T04:13:48+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/git-collaboration-quick-start\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Git collaboration: quick start"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=14368"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14368\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=14368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=14368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=14368"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=14368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}