{"id":19606,"date":"2020-07-16T20:53:30","date_gmt":"2020-07-17T03:53:30","guid":{"rendered":"https:\/\/careerkarma.com\/blog\/?p=19606"},"modified":"2023-12-01T03:55:27","modified_gmt":"2023-12-01T11:55:27","slug":"git-merge-conflict","status":"publish","type":"post","link":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/","title":{"rendered":"How to Resolve Git Merge Conflicts"},"content":{"rendered":"\n<p>In most cases, <a href=\"https:\/\/careerkarma.com\/blog\/what-is-git\/\">Git<\/a> can resolve differences between branches and merge them. This is because developers are usually making changes to different lines or files. There are some cases where Git cannot merge a repository. These situations are called merge conflicts.<br><\/p>\n\n\n\n<p>In this guide, we\u2019re going to talk about what merging is, what merge conflicts are, and how you can resolve a git merge conflict. Let\u2019s begin!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is a Merge Conflict?<\/h2>\n\n\n\n<p>A merge conflict is where Git cannot merge two branches without your help.<br><\/p>\n\n\n\n<p><a href=\"https:\/\/careerkarma.com\/blog\/git-merge\/\">Merges<\/a> are a cornerstone feature of version control systems like Git. They allow developers to maintain multiple separate lines of development in a repository. This means one developer can work on fixing bugs on one branch without having to change the main copy of a project.<br><\/p>\n\n\n\n<p>Merge conflicts arise in two scenarios:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Two branches have changed the same line of code.<\/li><li>One branch has removed a file which has been changed on another branch.<\/li><\/ul>\n\n\n\n<p>When a merge conflict arises, an error will be presented in Git. This tells you that Git was unable to successfully merge branches.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Solve a Removed File Conflict<\/h2>\n\n\n\n<p>Git branches are independent from each other. This means that a developer can remove a file on one branch without that change affecting the other branch.<br><\/p>\n\n\n\n<p>Merge conflicts can occur if a change is made to a file on one branch, and that file is removed on another branch. This is because Git does not know whether to delete the file or change it.<br><\/p>\n\n\n\n<p>Let\u2019s say that we have two branches: dev and master. On the dev branch, we have removed the README.md file. On the master branch, we have added new text.<br><\/p>\n\n\n\n<p>We can merge these branches using the git merge command:<br><\/p>\n\n\n\n<p><code>git merge dev<br><\/code><\/p>\n\n\n\n<p>This will merge the \u201cdev\u201d branch onto our current branch, which is master. Our code has returned a merge conflict:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>Auto-merging README.md\nCONFLICT (content): Merge conflict in README.md\nAutomatic merge failed; fix conflicts and then commit the result.\n<\/pre><\/div>\n\n\n\n<p>To solve this conflict, we need to make a decision: do we want to keep the file, or change it? If you want to keep the file, use the <a href=\"https:\/\/careerkarma.com\/blog\/git-add\/\">git add command<\/a> and add it back to the repository:<br><\/p>\n\n\n\n<p><code>git add README.md<br><\/code><\/p>\n\n\n\n<p>Otherwise, use the git rm command to remove it from your repository:<br><\/p>\n\n\n\n<p><code>git rm README.md<br><\/code><\/p>\n\n\n\n<p>The <code>rm command<\/code> will delete the file from your local repository. Before you use the rm command, double check to make sure you want to remove the file.<br><\/p>\n\n\n\n<p>Once you have chosen what to do with the conflicted files, you can create a commit with your changes and merge the branch:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>git add README.md\ngit commit -m &quot;feat: Add README.md to repository&quot;\ngit merge dev\n<\/pre><\/div>\n\n\n\n<p>The git add command stages our changes. The <a href=\"https:\/\/careerkarma.com\/blog\/git-commit\/\">git commit command<\/a> creates a new commit. The git merge command merges our dev and master branches. Our branches can now merge because we have resolved the merge conflict.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Solve a File Change Conflict<\/h2>\n\n\n\n<p>Developers sometimes make changes to the same files on two different branches. It is impossible for Git to distinguish which change to keep when two branches are being merged.<br><\/p>\n\n\n\n<p>In this case, a merge conflict will arise. Let\u2019s suppose we have a repository with two branches: master and dev. We have made a change to the README.md file on both branches. This has caused a merge conflict:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>\nAuto-merging README.md\nCONFLICT (content): Merge conflict in README.md\nAutomatic merge failed; fix conflicts and then commit the result.\n<\/pre><\/div>\n\n\n\n<p>The first step is to identify the root cause of a merge conflict. You can do this by using the git status command:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>On branch master\nYou have unmerged paths.\n  (fix conflicts and run &quot;git commit&quot;)\n  (use &quot;git merge --abort&quot; to abort the merge)\n\nUnmerged paths:\n  (use &quot;git add &lt;file&gt;...&quot; to mark resolution)\n\n    both modified:   README.md\n<\/pre><\/div>\n\n\n\n<p>We can see from this message that the file <code>README.md <\/code>was modified on both branches. Now, we have to resolve our merge conflict. Let\u2019s open up our README.md file using a text editor:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>This is a README.md file.\nThis is in a repository called merge-conflicts.\n&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD\nThis file is on the main branch.\n=======\nThis file is on the dev branch.\n&gt;&gt;&gt;&gt;&gt;&gt;&gt; dev\n<\/pre><\/div>\n\n\n\n<p>Git has edited the file to tell us that a merge conflict exists and added conflict markers. Git uses less than, greater than, and equals sign characters to express the merge conflict.<br><\/p>\n\n\n\n<p>Less than signs (&lt;) represent the changes made to the current branch. Greater than signs (&gt;) tell you the change made to the branch which you tried to merge to your current branch. The equals signs (=) separate out the differences.<br><\/p>\n\n\n\n<p>In this case:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u201cThis file is on the main branch.\u201d is on our master branch (or HEAD).<\/li><li>\u201cThis file is on the dev branch.\u201d is on our dev branch.<\/li><\/ul>\n\n\n\n<p>To resolve this merge tool conflict, all you need to do is remove the text that you do not want. Let\u2019s say that we want our code to say: \u201cThis file is on a branch.\u201d We could make this amendment like so:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>\nThis is a README.md file.\nThis is in a repository called merge-conflicts.\nThis file is on a branch.\n<\/pre><\/div>\n\n\n\n<p>Once we have made these changes, we are ready to make a final merge. Let\u2019s stage our changes, commit them to our repository, and merge our <code>dev<\/code> and <code>master<\/code> branches:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>git add .\ngit commit -m &quot;feat: Resolve merge conflict.&quot;\ngit merge dev\n<\/pre><\/div>\n\n\n\n<p>Now that we have resolved our merge conflict, our code successfully merges.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Merge conflicts arise when you make changes to the same line of text over two branches or where you change a file on one branch and remove that file on another branch.<br><\/p>\n\n\n\n<p>In this guide, we\u2019ve discussed how to resolve merge conflicts in both cases. Now you\u2019re ready to start tackling merge conflicts like a Git expert.<br><\/p>\n","protected":false},"excerpt":{"rendered":"In most cases, Git can resolve differences between branches and merge them. This is because developers are usually making changes to different lines or files. There are some cases where Git cannot merge a repository. These situations are called merge conflicts. In this guide, we\u2019re going to talk about what merging is, what merge conflicts&hellip;","protected":false},"author":240,"featured_media":19665,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[17286],"tags":[],"class_list":{"0":"post-19606","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-git"},"acf":{"post_sub_title":"","sprint_id":"","query_class":"Git","school_sft":"","parent_sft":"","school_privacy_policy":"","has_review":null,"is_sponser_post":[],"is_guest_post":[]},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Git Merge Conflict: A Guide | Career Karma<\/title>\n<meta name=\"description\" content=\"A git merge conflict is where Git needs a coder to manually approve the changes in a merge. On Career Karma, learn how to resolve merge conflicts.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Resolve Git Merge Conflicts\" \/>\n<meta property=\"og:description\" content=\"A git merge conflict is where Git needs a coder to manually approve the changes in a merge. On Career Karma, learn how to resolve merge conflicts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/\" \/>\n<meta property=\"og:site_name\" content=\"Career Karma\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/careerkarmaapp\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-17T03:53:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-01T11:55:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"668\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"James Gallagher\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@career_karma\" \/>\n<meta name=\"twitter:site\" content=\"@career_karma\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"James Gallagher\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/\"},\"author\":{\"name\":\"James Gallagher\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/e79364792443fbff794a144c67ec8e94\"},\"headline\":\"How to Resolve Git Merge Conflicts\",\"datePublished\":\"2020-07-17T03:53:30+00:00\",\"dateModified\":\"2023-12-01T11:55:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/\"},\"wordCount\":838,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg\",\"articleSection\":[\"Git\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/\",\"name\":\"Git Merge Conflict: A Guide | Career Karma\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg\",\"datePublished\":\"2020-07-17T03:53:30+00:00\",\"dateModified\":\"2023-12-01T11:55:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/e79364792443fbff794a144c67ec8e94\"},\"description\":\"A git merge conflict is where Git needs a coder to manually approve the changes in a merge. On Career Karma, learn how to resolve merge conflicts.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#primaryimage\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg\",\"contentUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg\",\"width\":1000,\"height\":668},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git-merge-conflict\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Git\",\"item\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/git\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Resolve Git Merge Conflicts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/\",\"name\":\"Career Karma\",\"description\":\"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/e79364792443fbff794a144c67ec8e94\",\"name\":\"James Gallagher\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/james-gallagher-150x150.jpg\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/james-gallagher-150x150.jpg\",\"contentUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/james-gallagher-150x150.jpg\",\"caption\":\"James Gallagher\"},\"description\":\"James Gallagher is a self-taught programmer and the technical content manager at Career Karma. He has experience in range of programming languages and extensive expertise in Python, HTML, CSS, and JavaScript. James has written hundreds of programming tutorials, and he frequently contributes to publications like Codecademy, Treehouse, Repl.it, Afrotech, and others.\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/author\\\/jamesgallagher\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Git Merge Conflict: A Guide | Career Karma","description":"A git merge conflict is where Git needs a coder to manually approve the changes in a merge. On Career Karma, learn how to resolve merge conflicts.","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:\/\/careerkarma.com\/blog\/git-merge-conflict\/","og_locale":"en_US","og_type":"article","og_title":"How to Resolve Git Merge Conflicts","og_description":"A git merge conflict is where Git needs a coder to manually approve the changes in a merge. On Career Karma, learn how to resolve merge conflicts.","og_url":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/","og_site_name":"Career Karma","article_publisher":"http:\/\/facebook.com\/careerkarmaapp","article_published_time":"2020-07-17T03:53:30+00:00","article_modified_time":"2023-12-01T11:55:27+00:00","og_image":[{"width":1000,"height":668,"url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg","type":"image\/jpeg"}],"author":"James Gallagher","twitter_card":"summary_large_image","twitter_creator":"@career_karma","twitter_site":"@career_karma","twitter_misc":{"Written by":"James Gallagher","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#article","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/"},"author":{"name":"James Gallagher","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94"},"headline":"How to Resolve Git Merge Conflicts","datePublished":"2020-07-17T03:53:30+00:00","dateModified":"2023-12-01T11:55:27+00:00","mainEntityOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/"},"wordCount":838,"commentCount":0,"image":{"@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg","articleSection":["Git"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/","url":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/","name":"Git Merge Conflict: A Guide | Career Karma","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#primaryimage"},"image":{"@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg","datePublished":"2020-07-17T03:53:30+00:00","dateModified":"2023-12-01T11:55:27+00:00","author":{"@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94"},"description":"A git merge conflict is where Git needs a coder to manually approve the changes in a merge. On Career Karma, learn how to resolve merge conflicts.","breadcrumb":{"@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/careerkarma.com\/blog\/git-merge-conflict\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#primaryimage","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/christina-wocintechchat-com-f6wB7D_xISY-unsplash.jpg","width":1000,"height":668},{"@type":"BreadcrumbList","@id":"https:\/\/careerkarma.com\/blog\/git-merge-conflict\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/careerkarma.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Git","item":"https:\/\/careerkarma.com\/blog\/git\/"},{"@type":"ListItem","position":3,"name":"How to Resolve Git Merge Conflicts"}]},{"@type":"WebSite","@id":"https:\/\/careerkarma.com\/blog\/#website","url":"https:\/\/careerkarma.com\/blog\/","name":"Career Karma","description":"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/careerkarma.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94","name":"James Gallagher","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","caption":"James Gallagher"},"description":"James Gallagher is a self-taught programmer and the technical content manager at Career Karma. He has experience in range of programming languages and extensive expertise in Python, HTML, CSS, and JavaScript. James has written hundreds of programming tutorials, and he frequently contributes to publications like Codecademy, Treehouse, Repl.it, Afrotech, and others.","url":"https:\/\/careerkarma.com\/blog\/author\/jamesgallagher\/"}]}},"_links":{"self":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/19606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/users\/240"}],"replies":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/comments?post=19606"}],"version-history":[{"count":0,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/19606\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media\/19665"}],"wp:attachment":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media?parent=19606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/categories?post=19606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/tags?post=19606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}