{"id":84079,"date":"2025-01-15T16:15:18","date_gmt":"2025-01-15T09:15:18","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=84079"},"modified":"2025-07-10T10:50:07","modified_gmt":"2025-07-10T03:50:07","slug":"git-workflow-la-gi","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/","title":{"rendered":"Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#Git_workflow_la_gi\" >Git workflow l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#Vai_tro_cua_Git_workflow\" >Vai tr\u00f2 c\u1ee7a Git workflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#Mot_so_loai_Git_workflow_pho_bien\" >M\u1ed9t s\u1ed1 lo\u1ea1i Git workflow ph\u1ed5 bi\u1ebfn<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#So_sanh_cac_loai_git_workflow\" >So s\u00e1nh c\u00e1c lo\u1ea1i git workflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#Phuong_phap_lua_chon_workflow_phu_hop\" >Ph\u01b0\u01a1ng ph\u00e1p l\u1ef1a ch\u1ecdn workflow ph\u00f9 h\u1ee3p<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#Cach_ap_dung_Git_workflow_hieu_qua\" >C\u00e1ch \u00e1p d\u1ee5ng Git workflow hi\u1ec7u qu\u1ea3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#Cac_cau_hoi_thuong_gap_ve_Git_workflow\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Git workflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><em><strong>Ng\u00e0y nay, Git \u0111\u00e3 tr\u1edf th\u00e0nh c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n ph\u1ed5 bi\u1ebfn trong c\u00e1c d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. Tuy nhi\u00ean \u0111\u1ec3 qu\u00e1 tr\u00ecnh s\u1eed d\u1ee5ng v\u00e0 c\u1ed9ng t\u00e1c v\u1edbi c\u00e1c th\u00e0nh vi\u00ean trong nh\u00f3m \u0111\u01b0\u1ee3c di\u1ec5n ra thu\u1eadn l\u1ee3i, ph\u00e1t huy \u0111\u01b0\u1ee3c nh\u1eefng \u0111i\u1ec3m m\u1ea1nh c\u1ee7a Git, \u0111\u00f2i h\u1ecfi c\u1ea7n c\u00f3 m\u1ed9t quy tr\u00ecnh qu\u1ea3n l\u00fd r\u00f5 r\u00e0ng v\u00e0 ph\u00f9 h\u1ee3p. Ch\u00ednh v\u00ec th\u1ebf, Git workflow ra \u0111\u1eddi. Kh\u00e1i ni\u1ec7m n\u00e0y s\u1ebd \u0111\u01b0\u1ee3c gi\u1ea3i th\u00edch c\u1eb7n k\u1ebd trong b\u00e0i vi\u1ebft sau.<\/strong><\/em><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ecdc b\u00e0i vi\u1ebft n\u00e0y \u0111\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Git workflow l\u00e0 g\u00ec?<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Ph\u00e2n lo\u1ea1i v\u00e0 so s\u00e1nh m\u1ed9t s\u1ed1 Git workflow<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Ph\u01b0\u01a1ng ph\u00e1p l\u1ef1a ch\u1ecdn workflow ph\u00f9 h\u1ee3p<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e1ch \u00e1p d\u1ee5ng Git workflow hi\u1ec7u qu\u1ea3<\/span><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-git-workflow-la-gi\"><span class=\"ez-toc-section\" id=\"Git_workflow_la_gi\"><\/span>Git workflow l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">Git workflow l\u00e0 m\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c ho\u1eb7c ph\u01b0\u01a1ng ph\u00e1p t\u1ed5 ch\u1ee9c vi\u1ec7c s\u1eed d\u1ee5ng <a href=\"https:\/\/itviec.com\/blog\/tong-quan-git-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>Git<\/strong><\/a> trong qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n. \u0110\u00f3 c\u00f3 th\u1ec3 l\u00e0 m\u1ed9t c\u00f4ng th\u1ee9c ho\u1eb7c g\u1ee3i \u00fd v\u1ec1 c\u00e1ch s\u1eed d\u1ee5ng Git \u0111\u1ec3 ho\u00e0n th\u00e0nh c\u00f4ng vi\u1ec7c m\u1ed9t c\u00e1ch nh\u1ea5t qu\u00e1n v\u00e0 hi\u1ec7u qu\u1ea3. C\u00e1c quy tr\u00ecnh l\u00e0m vi\u1ec7c v\u1edbi Git khuy\u1ebfn kh\u00edch c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n v\u00e0 nh\u00f3m <a href=\"https:\/\/itviec.com\/blog\/devops-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>DevOps<\/strong><\/a> t\u1eadn d\u1ee5ng Git m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 v\u00e0 \u0111\u1ed3ng nh\u1ea5t.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">M\u1ed9t workflow th\u01b0\u1eddng quy \u0111\u1ecbnh:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">C\u00e1ch t\u1ed5 ch\u1ee9c nh\u00e1nh: Quy \u0111\u1ecbnh \u0111\u1eb7t t\u00ean, t\u1ea1o v\u00e0 s\u1eed d\u1ee5ng nh\u00e1nh nh\u01b0 main, develop, feature, hotfix, release,&#8230;<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Quy tr\u00ecnh t\u00e1ch v\u00e0 h\u1ee3p nh\u1ea5t nh\u00e1nh: V\u00ed d\u1ee5 nh\u01b0 nh\u00e1nh feature ph\u1ea3i \u0111\u01b0\u1ee3c t\u00e1ch ra t\u1eeb develop, hay m\u00e3 ngu\u1ed3n t\u1eeb develop m\u1edbi \u0111\u01b0\u1ee3c ph\u00e9p h\u1ee3p nh\u1ea5t v\u00e0o main<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Quy t\u1eafc c\u1ed9ng t\u00e1c: \u0110\u01b0a ra quy \u0111\u1ecbnh v\u1ec1 vi\u1ec7c t\u1ea1o Pull request, review code tr\u01b0\u1edbc khi h\u1ee3p nh\u1ea5t,&#8230;<\/span><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"441\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro.jpg\" alt=\"git workflow - itviec blog\" class=\"wp-image-84102\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro.jpg 875w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro-300x151.jpg 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro-640x323.jpg 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro-200x101.jpg 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro-768x387.jpg 768w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro-100x50.jpg 100w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-1-vippro-700x353.jpg 700w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-vai-tro-c\u1ee7a-git-workflow\"><span class=\"ez-toc-section\" id=\"Vai_tro_cua_Git_workflow\"><\/span><b>Vai tr\u00f2 c\u1ee7a Git workflow<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">Git workflow cung c\u1ea5p c\u00e1c h\u01b0\u1edbng d\u1eabn v\u00e0 chi\u1ebfn l\u01b0\u1ee3c nh\u1eb1m \u0111\u1ea3m b\u1ea3o nh\u00f3m ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 l\u00e0m vi\u1ec7c v\u1edbi nhau m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3, nh\u1ea5t qu\u00e1n, v\u00e0 gi\u1ea3m thi\u1ec3u xung \u0111\u1ed9t khi l\u00e0m vi\u1ec7c v\u1edbi m\u00e3 ngu\u1ed3n chung.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Ngay c\u1ea3 trong c\u00e1c d\u1ef1 \u00e1n c\u00e1 nh\u00e2n, vi\u1ec7c \u00e1p d\u1ee5ng m\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c c\u00f3 c\u1ea5u tr\u00fac s\u1ebd \u0111\u1ea3m b\u1ea3o m\u00e3 ngu\u1ed3n c\u1ee7a b\u1ea1n \u0111\u01b0\u1ee3c t\u1ed5 ch\u1ee9c g\u1ecdn g\u00e0ng, d\u1ec5 d\u00e0ng theo d\u00f5i v\u00e0 c\u00f3 th\u1ec3 kh\u00f4i ph\u1ee5c l\u1ea1i n\u1ebfu x\u1ea3y ra s\u1ef1 c\u1ed1.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">M\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c v\u1edbi Git hi\u1ec7u qu\u1ea3 s\u1ebd gi\u00fap b\u1ea1n:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Tr\u00e1nh xung \u0111\u1ed9t khi h\u1ee3p nh\u1ea5t (merge conflict)<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Gi\u1eef m\u00e3 ngu\u1ed3n \u1edf m\u00f4i tr\u01b0\u1eddng s\u1ea3n xu\u1ea5t lu\u00f4n s\u1ea1ch s\u1ebd<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u1ed9ng t\u00e1c m\u1ed9t c\u00e1ch su\u00f4n s\u1ebb v\u1edbi ng\u01b0\u1eddi kh\u00e1c<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Theo d\u00f5i v\u00e0 xem x\u00e9t c\u00e1c thay \u0111\u1ed5i m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3<\/span><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-m\u1ed9t-s\u1ed1-lo\u1ea1i-git-workflow-ph\u1ed5-bi\u1ebfn\"><span class=\"ez-toc-section\" id=\"Mot_so_loai_Git_workflow_pho_bien\"><\/span><b>M\u1ed9t s\u1ed1 lo\u1ea1i Git workflow ph\u1ed5 bi\u1ebfn<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-centralized-workflow\"><b>Centralized Workflow<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Quy tr\u00ecnh l\u00e0m vi\u1ec7c t\u1eadp trung (Centralized Workflow), t\u01b0\u01a1ng t\u1ef1 nh\u01b0 Subversion, t\u1eadp trung s\u1eed d\u1ee5ng m\u1ed9t kho l\u01b0u tr\u1eef trung t\u00e2m l\u00e0m \u0111i\u1ec3m truy c\u1eadp duy nh\u1ea5t cho t\u1ea5t c\u1ea3 c\u00e1c thay \u0111\u1ed5i c\u1ee7a d\u1ef1 \u00e1n. Nh\u00e1nh ph\u00e1t tri\u1ec3n m\u1eb7c \u0111\u1ecbnh \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 \u201cmain\u201d v\u00e0 t\u1ea5t c\u1ea3 c\u00e1c thay \u0111\u1ed5i \u0111\u01b0\u1ee3c commit v\u00e0o nh\u00e1nh n\u00e0y.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Quy tr\u00ecnh n\u00e0y kh\u00f4ng y\u00eau c\u1ea7u b\u1ea5t k\u1ef3 nh\u00e1nh n\u00e0o kh\u00e1c ngo\u00e0i \u201cmain\u201d.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"839\" height=\"575\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro.png\" alt=\"git workflow - Centralized Workflow - itviec blog\" class=\"wp-image-84103\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro.png 839w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro-300x206.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro-640x439.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro-200x137.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro-768x526.png 768w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro-100x69.png 100w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-Centralized-Workflow-vippro-657x450.png 657w\" sizes=\"auto, (max-width: 839px) 100vw, 839px\" \/><\/figure>\n\n\n\n<p><b>\u01afu \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">\u0110\u01a1n gi\u1ea3n v\u00e0 d\u1ec5 hi\u1ec3u: \u0110i\u1ec1u n\u00e0y ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n nh\u1ecf ho\u1eb7c d\u1ef1 \u00e1n c\u00e1 nh\u00e2n, kh\u00f4ng y\u00eau c\u1ea7u t\u00e1ch nh\u00e1nh ph\u1ee9c t\u1ea1p.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ec5 qu\u1ea3n l\u00fd: B\u1edfi v\u00ec m\u1ecdi ho\u1ea1t \u0111\u1ed9ng \u0111\u1ec1u xoay quanh duy nh\u1ea5t nh\u00e1nh main, n\u00ean vi\u1ec7c qu\u1ea3n l\u00fd nh\u00e1nh tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n h\u01a1n.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u01b0\u01a1ng th\u00edch t\u1ed1t v\u1edbi c\u00e1c c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd c\u0169: Nh\u1eefng ai \u0111\u00e3 quen v\u1edbi h\u1ec7 th\u1ed1ng t\u1eadp trung (v\u00ed d\u1ee5 Subversion) s\u1ebd d\u1ec5 d\u00e0ng l\u00e0m quen v\u1edbi workflow n\u00e0y.<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Nh\u01b0\u1ee3c \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Kh\u00f3 ki\u1ec3m so\u00e1t xung \u0111\u1ed9t: N\u1ebfu c\u00f3 nhi\u1ec1u ng\u01b0\u1eddi c\u00f9ng tham gia c\u1ed9ng t\u00e1c trong m\u00e3 ngu\u1ed3n s\u1ebd d\u1ec5 d\u1eabn \u0111\u1ebfn xung \u0111\u1ed9t code, b\u1edfi v\u00ec t\u1ea5t c\u1ea3 \u0111\u1ec1u ho\u1ea1t \u0111\u1ed9ng<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">R\u1ee7i ro cao: Tr\u01b0\u1eddng h\u1ee3p n\u1ebfu nh\u00e1nh main x\u1ea3y ra l\u1ed7i, \u0111i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 g\u00e2y \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn to\u00e0n b\u1ed9 d\u1ef1 \u00e1n v\u00e0 m\u00f4i tr\u01b0\u1eddng s\u1ea3n xu\u1ea5t.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Kh\u00f4ng c\u00f3 s\u1ef1 linh ho\u1ea1t: B\u1edfi v\u00ec kh\u00f4ng c\u00f3 c\u00e1c nh\u00e1nh t\u00ednh n\u0103ng, n\u00ean vi\u1ec7c ph\u00e1t tri\u1ec3n \u0111\u1ed9c l\u1eadp ho\u1eb7c l\u00e0m vi\u1ec7c song song c\u00e1c t\u00ednh n\u0103ng s\u1ebd kh\u00f4ng \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 t\u1ed1t.<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Centralized Workflow l\u00e0 m\u1ed9t quy tr\u00ecnh \u0111\u01a1n gi\u1ea3n, s\u01a1 khai n\u00ean s\u1ebd ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n c\u00e1 nh\u00e2n ho\u1eb7c d\u1ef1 \u00e1n c\u1ee7a nh\u00f3m nh\u1ecf m\u1edbi b\u1eaft \u0111\u1ea7u s\u1eed d\u1ee5ng Git, kh\u00f4ng y\u00eau c\u1ea7u quy tr\u00ecnh ph\u1ee9c t\u1ea1p. Tuy nhi\u00ean, n\u1ebfu d\u1ef1 \u00e1n m\u1edf r\u1ed9ng ho\u1eb7c nh\u00f3m l\u1edbn h\u01a1n, b\u1ea1n c\u00f3 th\u1ec3 c\u00e2n nh\u1eafc c\u00e1c workflow linh ho\u1ea1t h\u01a1n.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-github-flow\"><b>GitHub Flow<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">GitHub Flow<\/span> <span style=\"font-weight: 400;\">l\u00e0 quy tr\u00ecnh l\u00e0m vi\u1ec7c \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng t\u1ed1t v\u1edbi <a href=\"https:\/\/itviec.com\/blog\/git-vs-github\/\" target=\"_blank\" rel=\"noopener\"><strong>Git v\u00e0 GitHub<\/strong><\/a>. N\u00f3 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 d\u1ec5 d\u00e0ng tri\u1ec3n khai v\u1edbi c\u00e1c d\u1ef1 \u00e1n c\u00f3 chu k\u1ef3 ph\u00e1t tri\u1ec3n li\u00ean t\u1ee5c.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Github Flow t\u1eadp trung v\u00e0o vi\u1ec7c ph\u00e1t tri\u1ec3n tr\u00ean nh\u00e1nh ch\u00ednh v\u00e0 tri\u1ec3n khai nhanh ch\u00f3ng c\u00e1c thay \u0111\u1ed5i v\u00e0o m\u00f4i tr\u01b0\u1eddng s\u1ea3n xu\u1ea5t. Xuy\u00ean su\u1ed1t qu\u00e1 tr\u00ecnh l\u00e0m vi\u1ec7c, Github Flow s\u1ebd t\u1eadp trung v\u00e0o nh\u00e1nh g\u1ed1c (main ho\u1eb7c master), c\u00e1c t\u00ednh n\u0103ng m\u1edbi s\u1ebd \u0111\u01b0\u1ee3c thao t\u00e1c tr\u00ean c\u00e1c nh\u00e1nh feature (t\u00e1ch ra t\u1eeb nh\u00e1nh g\u1ed1c) v\u00e0 sau \u0111\u00f3 h\u1ee3p nh\u1ea5t v\u00e0o nh\u00e1nh g\u1ed1c khi ho\u00e0n th\u00e0nh t\u00ednh n\u0103ng.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"583\" height=\"276\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-github-flow-vippro.png\" alt=\"git workflow - github flow - itviec blog\" class=\"wp-image-84104\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-github-flow-vippro.png 583w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-github-flow-vippro-300x142.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-github-flow-vippro-200x95.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-github-flow-vippro-100x47.png 100w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/figure>\n\n\n\n<p><b>Nguy\u00ean t\u1eafc ho\u1ea1t \u0111\u1ed9ng<\/b><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">T\u00e1ch m\u1ed9t nh\u00e1nh m\u1edbi t\u1eeb nh\u00e1nh g\u1ed1c, s\u1eed d\u1ee5ng \u0111\u1ec3 ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng ho\u1eb7c s\u1eeda l\u1ed7i.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Th\u1ef1c hi\u1ec7n l\u00e0m vi\u1ec7c tr\u00ean nh\u00e1nh v\u1eeba \u0111\u01b0\u1ee3c t\u1ea1o, sau khi ho\u00e0n t\u1ea5t, h\u1ee3p nh\u1ea5t v\u00e0o nh\u00e1nh g\u1ed1c (nh\u00e1nh t\u00ednh n\u0103ng s\u1ebd b\u1ecb x\u00f3a sau khi h\u1ee3p nh\u1ea5t).<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng nh\u00e1nh g\u1ed1c \u0111\u1ec3 ph\u00e1t h\u00e0nh t\u00ednh n\u0103ng.<\/span><\/li>\n<\/ol>\n\n\n\n<p><b>\u01afu \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Quy tr\u00ecnh \u0111\u01a1n gi\u1ea3n, ch\u1ec9 t\u1eadp trung v\u00e0o nh\u00e1nh g\u1ed1c v\u00e0 nh\u1eefng nh\u00e1nh t\u00ednh n\u0103ng v\u1edbi v\u00f2ng \u0111\u1eddi ng\u1eafn<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd, ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n nh\u1ecf, kh\u00f4ng y\u00eau c\u1ea7u qu\u1ea3n l\u00fd phi\u00ean b\u1ea3n ph\u1ee9c t\u1ea1p<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Quy tr\u00ecnh ph\u00e1t tri\u1ec3n nhanh ch\u00f3ng, ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng li\u00ean t\u1ee5c<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Nh\u01b0\u1ee3c \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">B\u1edfi v\u00ec kh\u00f4ng c\u00f3 c\u00e1c nh\u00e1nh release trung gian, n\u00ean d\u1eabn \u0111\u1ebfn kh\u00f4ng qu\u1ea3n l\u00fd t\u1ed1t quy tr\u00ecnh ph\u00e1t h\u00e0nh<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n l\u1edbn, y\u00eau c\u1ea7u quy tr\u00ecnh l\u00e0m vi\u1ec7c ch\u1eb7t ch\u1ebd, nghi\u00eam ng\u1eb7t<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">GitHub Flow ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n nh\u1ecf ho\u1eb7c d\u1ef1 \u00e1n c\u00e1 nh\u00e2n<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Th\u00edch h\u1ee3p cho c\u00e1c d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng li\u00ean t\u1ee5c, c\u1ea7n quy tr\u00ecnh t\u1ed1i gi\u1ea3n v\u00e0 nhanh ch\u00f3ng<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n m\u00e3 ngu\u1ed3n m\u1edf, h\u1ed7 tr\u1ee3 pull request cho c\u00e1c c\u1ed9ng t\u00e1c vi\u00ean<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-feature-branch-workflow\"><b>Feature Branch Workflow<\/b><\/h3>\n\n\n\n<p><b>Git Feature Branch Workflow<\/b><span style=\"font-weight: 400;\"> l\u00e0 m\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c c\u00f3 t\u00ednh linh ho\u1ea1t cao, t\u1eadp trung v\u00e0o m\u00f4 h\u00ecnh nh\u00e1nh (branching model).<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong workflow n\u00e0y, m\u1ed7i t\u00ednh n\u0103ng m\u1edbi c\u1ea7n \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n tr\u00ean m\u1ed9t nh\u00e1nh ri\u00eang bi\u1ec7t, t\u00e1ch bi\u1ec7t ho\u00e0n to\u00e0n kh\u1ecfi nh\u00e1nh ch\u00ednh (main ho\u1eb7c master). \u0110i\u1ec1u n\u00e0y gi\u00fap qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n tr\u1edf n\u00ean linh ho\u1ea1t v\u00e0 d\u1ec5 ki\u1ec3m so\u00e1t h\u01a1n.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1eb7c th\u00f9 c\u1ee7a quy tr\u00ecnh n\u00e0y l\u00e0 s\u1ebd c\u00f3 m\u1ed9t nh\u00e1nh ch\u00ednh t\u1ed3n t\u1ea1i xuy\u00ean su\u1ed1t qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n, song song v\u1edbi \u0111\u00f3 l\u00e0 nh\u1eefng nh\u00e1nh ng\u1eafn h\u1ea1n (ch\u1ec9 t\u1ed3n t\u1ea1i trong th\u1eddi \u0111i\u1ec3m ph\u00e1t tri\u1ec3n m\u1ed9t t\u00ednh n\u0103ng, v\u00e0 s\u1ebd lo\u1ea1i b\u1ecf sau khi h\u1ee3p nh\u1ea5t v\u00e0o nh\u00e1nh ch\u00ednh).<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2598\" height=\"822\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro.png\" alt=\"git workflow - Git Feature Branch Workflow - itviec blog\" class=\"wp-image-84105\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro.png 2598w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-300x95.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-640x202.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-200x63.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-768x243.png 768w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-1536x486.png 1536w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-2048x648.png 2048w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-100x32.png 100w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-700x221.png 700w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-feature-branch-workflow-vippro-1600x506.png 1600w\" sizes=\"auto, (max-width: 2598px) 100vw, 2598px\" \/><\/figure>\n\n\n\n<p><b>Nguy\u00ean t\u1eafc ho\u1ea1t \u0111\u1ed9ng<\/b><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u m\u1ed9t t\u00ednh n\u0103ng m\u1edbi, c\u1ea7n t\u00e1ch ra m\u1ed9t nh\u00e1nh m\u1edbi (nh\u00e1nh feature) t\u1eeb nh\u00e1nh ch\u00ednh. Th\u00f4ng th\u01b0\u1eddng nh\u00e1nh n\u00e0y \u0111\u01b0\u1ee3c \u0111\u1eb7t t\u00ean theo t\u00ednh n\u0103ng (v\u00ed d\u1ee5 feature\/login).<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng m\u1edbi tr\u00ean nh\u00e1nh feature \u0111\u00e3 t\u00e1ch (t\u1ea5t c\u1ea3 c\u00f4ng vi\u1ec7c bao g\u1ed3m vi\u1ebft m\u00e3, ki\u1ec3m th\u1eed, s\u1eeda ch\u1eefa l\u1ed7i,..)<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Sau khi t\u00ednh n\u0103ng \u0111\u01b0\u1ee3c ho\u00e0n th\u00e0nh, ti\u1ebfn h\u00e0nh h\u1ee3p nh\u1ea5t n\u1ed9i dung thay \u0111\u1ed5i v\u00e0o nh\u00e1nh develop v\u00e0 lo\u1ea1i b\u1ecf nh\u00e1nh t\u00ednh n\u0103ng.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Sau khi ti\u1ebfn h\u00e0nh ki\u1ec3m th\u1eed m\u1ed9t l\u1ea7n n\u1eefa, th\u1ef1c hi\u1ec7n h\u1ee3p nh\u1ea5t m\u00e3 t\u1eeb nh\u00e1nh develop v\u00e0o nh\u00e1nh g\u1ed1c (main ho\u1eb7c master)<\/span><\/li>\n<\/ol>\n\n\n\n<p><b>\u01afu \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">T\u00e1ch bi\u1ec7t c\u00e1c lu\u1ed3ng ph\u00e1t tri\u1ec3n: \u0110i\u1ec1u n\u00e0y gi\u00fap c\u00e1ch ly c\u00e1c nh\u00e1nh t\u00ednh n\u0103ng v\u00e0 nh\u00e1nh ch\u00ednh, gi\u1ea3m thi\u1ec3u xung \u0111\u1ed9t m\u00e3 ngu\u1ed3n v\u00e0 \u0111\u1ea3m b\u1ea3o s\u1ef1 \u1ed5n \u0111\u1ecbnh cho h\u1ec7 th\u1ed1ng<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 c\u00e1c quy tr\u00ecnh ki\u1ec3m tra v\u00e0 \u0111\u00e1nh gi\u00e1: Vi\u1ec7c t\u00e1ch nh\u00e1nh v\u00e0 h\u1ee3p nh\u1ea5t sau \u0111\u00f3, d\u1ec5 d\u00e0ng cho vi\u1ec7c t\u1ea1o c\u00e1c Pull Request \u0111\u1ec3 c\u00e1c th\u00e0nh vi\u00ean kh\u00e1c c\u00f3 th\u1ec3 xem x\u00e9t l\u1ea1i n\u1ed9i dung tr\u01b0\u1edbc khi h\u1ee3p nh\u1ea5t<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ec5 d\u00e0ng t\u00edch h\u1ee3p CI\/CD<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Nh\u01b0\u1ee3c \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 g\u00e2y ph\u1ee9c t\u1ea1p khi ph\u1ea3i qu\u1ea3n l\u00fd nhi\u1ec1u nh\u00e1nh<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0110\u00f2i h\u1ecfi ng\u01b0\u1eddi s\u1eed d\u1ee5ng ph\u1ea3i c\u00f3 nhi\u1ec1u ki\u1ebfn th\u1ee9c v\u1ec1 c\u00e1c thao t\u00e1c trong git nh\u01b0 t\u1ea1o nh\u00e1nh, h\u1ee3p nh\u1ea5t nh\u00e1nh, gi\u1ea3i quy\u1ebft xung \u0111\u1ed9t<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Workflow n\u00e0y ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n v\u1eeba v\u00e0 l\u1edbn, c\u00f3 nhi\u1ec1u t\u00ednh n\u0103ng c\u1ea7n ph\u00e1t tri\u1ec3n song song<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n c\u00f3 y\u00eau c\u1ea7u ki\u1ec3m so\u00e1t ch\u1eb7t ch\u1ebd v\u1ec1 ch\u1ea5t l\u01b0\u1ee3ng m\u00e3 ngu\u1ed3n d\u1ef1a v\u00e0o qu\u00e1 tr\u00ecnh xem x\u00e9t m\u00e3 trong Pull Request<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n c\u1ea7n t\u00edch h\u1ee3p CI\/CD \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c ki\u1ec3m th\u1eed v\u00e0 tri\u1ec3n khai \u1ee9ng d\u1ee5ng<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-gitflow-workflow\"><b>Gitflow Workflow<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Gitflow l\u00e0 m\u1ed9t m\u00f4 h\u00ecnh nh\u00e1nh (branching model) thay th\u1ebf trong Git, s\u1eed d\u1ee5ng c\u00e1c nh\u00e1nh t\u00ednh n\u0103ng (feature branch) v\u00e0 nhi\u1ec1u nh\u00e1nh ch\u00ednh (primary branch). M\u00f4 h\u00ecnh n\u00e0y l\u1ea7n \u0111\u1ea7u ti\u00ean \u0111\u01b0\u1ee3c gi\u1edbi thi\u1ec7u v\u00e0 ph\u1ed5 bi\u1ebfn b\u1edfi <\/span><b>Vincent Driessen<\/b><span style=\"font-weight: 400;\">. So v\u1edbi c\u00e1c quy tr\u00ecnh kh\u00e1c, Gitflow c\u00f3 nhi\u1ec1u nh\u00e1nh t\u1ed3n t\u1ea1i l\u00e2u h\u01a1n v\u00e0 c\u00e1c commit l\u1edbn h\u01a1n.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Theo m\u00f4 h\u00ecnh n\u00e0y, c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n t\u1ea1o m\u1ed9t nh\u00e1nh t\u00ednh n\u0103ng v\u00e0 ch\u1ec9 h\u1ee3p nh\u1ea5t (merge) n\u00f3 v\u00e0o nh\u00e1nh ch\u00ednh khi t\u00ednh n\u0103ng \u0111\u00e3 ho\u00e0n th\u00e0nh. Nh\u1eefng nh\u00e1nh t\u00ednh n\u0103ng t\u1ed3n t\u1ea1i l\u00e2u n\u00e0y y\u00eau c\u1ea7u s\u1ef1 c\u1ed9ng t\u00e1c nhi\u1ec1u h\u01a1n \u0111\u1ec3 h\u1ee3p nh\u1ea5t v\u00e0 c\u00f3 nguy c\u01a1 cao b\u1ecb l\u1ec7ch kh\u1ecfi nh\u00e1nh ch\u00ednh. Ch\u00fang c\u0169ng c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn c\u00e1c xung \u0111\u1ed9t khi c\u1eadp nh\u1eadt.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"905\" height=\"380\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro.png\" alt=\"git workflow - gitflow - itviec blog\" class=\"wp-image-84106\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro.png 905w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro-300x126.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro-640x269.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro-200x84.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro-768x322.png 768w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro-100x42.png 100w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-gitflow-vippro-700x294.png 700w\" sizes=\"auto, (max-width: 905px) 100vw, 905px\" \/><\/figure>\n\n\n\n<p><b>Nguy\u00ean t\u1eafc ho\u1ea1t \u0111\u1ed9ng<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Gitflow chia th\u00e0nh c\u00e1c nh\u00e1nh ch\u00ednh v\u1edbi vai tr\u00f2 c\u1ee5 th\u1ec3:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Nh\u00e1nh main (ho\u1eb7c master): \u0110\u01b0\u1ee3c xem l\u00e0 nh\u00e1nh ch\u00ednh, s\u1eed d\u1ee5ng \u0111\u1ec3 ph\u00e1t h\u00e0nh ch\u00ednh th\u1ee9c l\u00ean m\u00f4i tr\u01b0\u1eddng s\u1ea3n xu\u1ea5t<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Nh\u00e1nh develop: N\u01a1i m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c t\u00edch h\u1ee3p trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n. Nh\u00e1nh n\u00e0y ch\u1ee9a m\u00e3 \u1ed5n \u0111\u1ecbnh nh\u01b0ng ch\u01b0a ph\u00e1t h\u00e0nh.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Nh\u00e1nh feature: M\u1ed7i t\u00ednh n\u0103ng m\u1edbi \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n tr\u00ean m\u1ed9t nh\u00e1nh con t\u1eeb develop. Sau khi ho\u00e0n th\u00e0nh, nh\u00e1nh feature \u0111\u01b0\u1ee3c h\u1ee3p nh\u1ea5t l\u1ea1i v\u00e0o develop.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Nh\u00e1nh release: S\u1eed d\u1ee5ng \u0111\u1ec3 chu\u1ea9n b\u1ecb cho m\u1ed9t b\u1ea3n ph\u00e1t h\u00e0nh ch\u00ednh th\u1ee9c. Sau khi ki\u1ec3m tra, nh\u00e1nh n\u00e0y \u0111\u01b0\u1ee3c h\u1ee3p nh\u1ea5t v\u00e0o c\u1ea3 main v\u00e0 develop.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Nh\u00e1nh hotfix: S\u1eed d\u1ee5ng \u0111\u1ec3 s\u1eeda l\u1ed7i kh\u1ea9n c\u1ea5p trong m\u00f4i tr\u01b0\u1eddng production. Sau khi s\u1eeda l\u1ed7i, nh\u00e1nh n\u00e0y \u0111\u01b0\u1ee3c h\u1ee3p nh\u1ea5t v\u00e0o c\u1ea3 main v\u00e0 develop.<\/span><\/li>\n<\/ul>\n\n\n\n<p>Sau \u0111\u00f3:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Khi ph\u00e1t tri\u1ec3n m\u1ed9t t\u00ednh n\u0103ng m\u1edbi, t\u1ea1o m\u1ed9t nh\u00e1nh t\u00ednh n\u0103ng (feature) t\u1eeb develop<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Khi ho\u00e0n t\u1ea5t, h\u1ee3p nh\u1ea5t nh\u00e1nh feature v\u00e0o develop v\u00e0 x\u00f3a nh\u00e1nh feature<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u1ea1o m\u1ed9t nh\u00e1nh release t\u1eeb develop, th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc ki\u1ec3m tra cu\u1ed1i c\u00f9ng (testing)<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">H\u1ee3p nh\u1ea5t nh\u00e1nh release v\u00e0o main v\u00e0 ph\u00e1t h\u00e0nh t\u00ednh n\u0103ng<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">H\u1ee3p nh\u1ea5t nh\u00e1nh release v\u00e0o l\u1ea1i develop v\u00e0 x\u00f3a nh\u00e1nh release<\/span><\/li>\n<\/ol>\n\n\n\n<p><b>\u01afu \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">C\u1ea5u tr\u00fac t\u1ed5 ch\u1ee9c r\u00f5 r\u00e0ng: M\u1ed7i nh\u00e1nh \u0111\u1ec1u \u0111\u01b0\u1ee3c quy \u0111\u1ecbnh vai tr\u00f2 r\u00f5 r\u00e0ng, x\u00e1c \u0111\u1ecbnh r\u00f5 nh\u00e1nh g\u1ed1c v\u00e0 nh\u00e1nh ph\u1ee5<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">L\u1ecbch s\u1eed commit \u0111\u01b0\u1ee3c \u0111\u1ed3ng nh\u1ea5t v\u00e0 d\u1ec5 d\u00e0ng truy v\u1ebft<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 c\u00e1c quy tr\u00ecnh ph\u00e1t h\u00e0nh c\u00f3 chu k\u1ef3<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u00ednh linh ho\u1ea1t cao, cho ph\u00e9p ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng m\u1ed9t c\u00e1ch song song v\u00e0 t\u00edch h\u1ee3p t\u1ed1t CI\/CD<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Nh\u01b0\u1ee3c \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">S\u1ebd tr\u1edf n\u00ean c\u1ed3ng k\u1ec1nh khi \u00e1p d\u1ee5ng v\u00e0o c\u00e1c d\u1ef1 \u00e1n nh\u1ecf, kh\u00f4ng ph\u00e1t tri\u1ec3n nhi\u1ec1u t\u00ednh n\u0103ng c\u00f9ng l\u00fac<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Qu\u1ea3n l\u00fd nh\u00e1nh tr\u1edf n\u00ean ph\u1ee9c t\u1ea1p h\u01a1n, d\u1ec5 x\u1ea3y ra xung \u0111\u1ed9t m\u00e3 ngu\u1ed3n<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n c\u1ea7n ph\u00e1t tri\u1ec3n v\u00e0 xu\u1ea5t b\u1ea3n t\u00ednh n\u0103ng li\u00ean t\u1ee5c, n\u1ed1i g\u00f3t nhau.<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">V\u1edbi c\u1ea5u tr\u00fac nh\u00e1nh v\u00e0 quy tr\u00ecnh qu\u1ea3n l\u00fd nh\u00e1nh r\u00f5 r\u00e0ng, Gitflow ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n c\u00f3 chu k\u1ef3 ph\u00e1t h\u00e0nh t\u00ednh n\u0103ng \u0111\u1ecbnh k\u1ef3 v\u00e0 y\u00eau c\u1ea7u qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n ph\u1ee9c t\u1ea1p, c\u1ea7n t\u00edch h\u1ee3p CI\/CD.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-forking-workflow\"><b>Forking Workflow<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Forking Workflow v\u1ec1 c\u01a1 b\u1ea3n kh\u00e1c v\u1edbi c\u00e1c quy tr\u00ecnh qu\u1ea3n l\u00fd c\u00f4ng vi\u1ec7c Git ph\u1ed5 bi\u1ebfn kh\u00e1c. Thay v\u00ec s\u1eed d\u1ee5ng m\u1ed9t kho l\u01b0u tr\u1eef ph\u00eda m\u00e1y ch\u1ee7 duy nh\u1ea5t \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng nh\u01b0 c\u01a1 s\u1edf m\u00e3 \u201ctrung t\u00e2m\u201d, n\u00f3 cung c\u1ea5p cho nh\u00e0 ph\u00e1t tri\u1ec3n kho l\u01b0u tr\u1eef ph\u00eda m\u00e1y ch\u1ee7 c\u1ee7a ri\u00eang h\u1ecd.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 m\u1ed7i ng\u01b0\u1eddi \u0111\u00f3ng g\u00f3p kh\u00f4ng ch\u1ec9 c\u00f3 m\u1ed9t m\u00e0 l\u00e0 hai kho l\u01b0u tr\u1eef Git: m\u1ed9t kho l\u01b0u tr\u1eef c\u1ee5c b\u1ed9 ri\u00eang t\u01b0 v\u00e0 m\u1ed9t kho l\u01b0u tr\u1eef ph\u00eda m\u00e1y ch\u1ee7 c\u00f4ng khai.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Forking Workflow th\u01b0\u1eddng \u0111\u01b0\u1ee3c th\u1ea5y nh\u1ea5t trong c\u00e1c d\u1ef1 \u00e1n ngu\u1ed3n m\u1edf c\u00f4ng khai.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"306\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-fork-flow-vippro.png\" alt=\"git workflow - forking workflow - itviec blog\" class=\"wp-image-84107\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-fork-flow-vippro.png 720w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-fork-flow-vippro-300x128.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-fork-flow-vippro-640x272.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-fork-flow-vippro-200x85.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-fork-flow-vippro-100x43.png 100w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/git-workflow-fork-flow-vippro-700x298.png 700w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<p><b>\u01afu \u0111i\u1ec3<\/b><b>m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Vi\u1ec7c t\u00e1ch bi\u1ec7t kho l\u01b0u tr\u1eef \u0111\u1ec3 ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng gi\u00fap \u0111\u1ea3m b\u1ea3o an to\u00e0n cho kho l\u01b0u tr\u1eef ch\u00ednh. N\u00f3 kh\u00f4ng bao gi\u1edd b\u1ecb \u1ea3nh h\u01b0\u1edfng tr\u1ef1c ti\u1ebfp b\u1edfi c\u00e1c thay \u0111\u1ed5i cho \u0111\u1ebfn khi pull request \u0111\u01b0\u1ee3c ph\u00ea duy\u1ec7t.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd ph\u00e2n quy\u1ec1n: Ch\u1ec9 nh\u1eefng ng\u01b0\u1eddi c\u00f3 quy\u1ec1n merge m\u1edbi c\u00f3 th\u1ec3 thay \u0111\u1ed5i kho l\u01b0u tr\u1eef ch\u00ednh.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Mang t\u00ednh \u0111\u1ed9c l\u1eadp: Nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 to\u00e0n quy\u1ec1n ki\u1ec3m so\u00e1t kho l\u01b0u tr\u1eef c\u00e1 nh\u00e2n c\u1ee7a h\u1ecd m\u00e0 kh\u00f4ng l\u00e0m gi\u00e1n \u0111o\u1ea1n c\u00f4ng vi\u1ec7c c\u1ee7a nh\u00f3m.<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Nh\u01b0\u1ee3c \u0111i\u1ec3m<\/b><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Vi\u1ec7c qu\u1ea3n l\u00fd s\u1ebd tr\u1edf n\u00ean ph\u1ee9c t\u1ea1p khi c\u00f3 nhi\u1ec1u Pull request t\u1eeb nhi\u1ec1u kho l\u01b0u tr\u1eef kh\u00e1c nhau.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n s\u1ebd tr\u1edf n\u00ean ch\u1eadm h\u01a1n so v\u1edbi c\u00e1c quy tr\u00ecnh kh\u00e1c<\/span><\/li>\n<\/ul>\n\n\n\n<p><b>Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Quy tr\u00ecnh n\u00e0y ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n m\u00e3 ngu\u1ed3n m\u1edf v\u00ec b\u1ea5t k\u1ef3 ai c\u0169ng c\u00f3 th\u1ec3 fork m\u00e3 ngu\u1ed3n \u0111\u1ec3 \u0111\u00f3ng g\u00f3p.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-so-sanh-cac-lo\u1ea1i-git-workflow\"><span class=\"ez-toc-section\" id=\"So_sanh_cac_loai_git_workflow\"><\/span><b>So s\u00e1nh c\u00e1c lo\u1ea1i git workflow<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>Ti\u00eau ch\u00ed<\/b><\/td><td><b>Centralized<\/b><\/td><td><b>GitHub Flow<\/b><\/td><td><b>Feature Branch<\/b><\/td><td><b>Gitflow<\/b><\/td><td><b>Forking<\/b><\/td><\/tr><tr><td><b>C\u1ea5u tr\u00fac<\/b><\/td><td><span style=\"font-weight: 400;\">Ch\u1ec9 s\u1eed d\u1ee5ng nh\u00e1nh <\/span><b>main<\/b><\/td><td><span style=\"font-weight: 400;\">Nh\u00e1nh <\/span><b>main<\/b><span style=\"font-weight: 400;\"> v\u00e0 c\u00e1c nh\u00e1nh <\/span><b>feature<\/b><span style=\"font-weight: 400;\"> ng\u1eafn h\u1ea1n<\/span><\/td><td><span style=\"font-weight: 400;\">Nh\u00e1nh <\/span><b>main<\/b><span style=\"font-weight: 400;\">, <\/span><b>develop<\/b><span style=\"font-weight: 400;\"> v\u00e0 c\u00e1c nh\u00e1nh <\/span><b>feature<\/b><span style=\"font-weight: 400;\"> ng\u1eafn h\u1ea1n<\/span><\/td><td><span style=\"font-weight: 400;\">C\u00f3 nhi\u1ec1u nh\u00e1nh v\u1edbi vai tr\u00f2 kh\u00e1c nhau: <\/span><b>main<\/b><span style=\"font-weight: 400;\">, <\/span><b>develop<\/b><span style=\"font-weight: 400;\">, <\/span><b>feature<\/b><span style=\"font-weight: 400;\">, release, <\/span><b>hotfix<\/b><\/td><td><span style=\"font-weight: 400;\">M\u1ed7i ng\u01b0\u1eddi c\u00f3 kho ri\u00eang (local + server fork)<\/span><\/td><\/tr><tr><td><b>M\u1ee9c \u0111\u1ed9 ki\u1ec3m so\u00e1t<\/b><\/td><td><span style=\"font-weight: 400;\">Th\u1ea5p, kh\u00f4ng h\u1ed7 tr\u1ee3 t\u00e1ch bi\u1ec7t ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng.<\/span><\/td><td><span style=\"font-weight: 400;\">Trung b\u00ecnh, d\u1ef1a v\u00e0o pull request<\/span><\/td><td><span style=\"font-weight: 400;\">Cao, c\u00f4 l\u1eadp t\u00ednh n\u0103ng trong nh\u00e1nh <\/span><b>feature<\/b><\/td><td><span style=\"font-weight: 400;\">R\u1ea5t cao, ph\u00e2n chia r\u00f5 r\u00e0ng c\u00e1c giai \u0111o\u1ea1n ph\u00e1t tri\u1ec3n<\/span><\/td><td><span style=\"font-weight: 400;\">Cao, t\u00e1ch bi\u1ec7t kho l\u01b0u tr\u1eef ch\u00ednh<\/span><\/td><\/tr><tr><td><b>\u0110\u1ed9 ph\u1ee9c t\u1ea1p<\/b><\/td><td><span style=\"font-weight: 400;\">C\u1ef1c k\u1ef3 \u0111\u01a1n gi\u1ea3n, ph\u00f9 h\u1ee3p cho ng\u01b0\u1eddi m\u1edbi<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u01a1n gi\u1ea3n, d\u1ec5 tri\u1ec3n khai<\/span><\/td><td><span style=\"font-weight: 400;\">Ph\u1ee9c t\u1ea1p h\u01a1n m\u1ed9t ch\u00fat khi c\u00f3 th\u00eam nh\u00e1nh feature<\/span><\/td><td><span style=\"font-weight: 400;\">Ph\u1ee9c t\u1ea1p nh\u1ea5t v\u1edbi nhi\u1ec1u lo\u1ea1i nh\u00e1nh kh\u00e1c nhau.<\/span><\/td><td><span style=\"font-weight: 400;\">Ph\u1ee9c t\u1ea1p trong qu\u1ea3n l\u00fd pull request t\u1eeb nhi\u1ec1u kho kh\u00e1c nhau<\/span><\/td><\/tr><tr><td><b>T\u00edch h\u1ee3p CI\/CD<\/b><\/td><td><span style=\"font-weight: 400;\">H\u1ea1n ch\u1ebf, kh\u00f4ng t\u1ed1i \u01b0u<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u00e1p \u1ee9ng t\u1ed1t, nh\u00e1nh main lu\u00f4n s\u1eb5n s\u00e0ng tri\u1ec3n khai<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u00e1p \u1ee9ng t\u1ed1t, d\u1ec5 d\u00e0ng \u0111\u1ec3 tri\u1ec3n khai CI\/CD<\/span><\/td><td><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 t\u1ed1t cho CI\/CD trong ph\u00e1t tri\u1ec3n d\u00e0i h\u1ea1n<\/span><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng h\u1ed7 tr\u1ee3 tr\u1ef1c ti\u1ebfp, t\u00f9y v\u00e0o pull request<\/span><\/td><\/tr><tr><td><b>Xung \u0111\u1ed9t m\u00e3<\/b><\/td><td><span style=\"font-weight: 400;\">T\u1ec9 l\u1ec7 xung \u0111\u1ed9t cao v\u00ec ch\u1ec9 thao t\u00e1c tr\u00ean main<\/span><\/td><td><span style=\"font-weight: 400;\">nh\u00e1nh feature t\u00e1ch bi\u1ec7t v\u00e0 c\u00f3 th\u1eddi gian s\u1ed1ng ng\u1eafn gi\u00fap t\u1ec9 l\u1ec7 xung \u0111\u1ed9t th\u1ea5p<\/span><\/td><td><span style=\"font-weight: 400;\">T\u1ec9 l\u1ec7 th\u1ea5p, nh\u00e1nh feature \u0111\u01b0\u1ee3c c\u00f4 l\u1eadp, tuy nhi\u00ean v\u1eabn c\u00f3 kh\u1ea3 n\u0103ng xung \u0111\u1ed9t gi\u1eefa develop v\u00e0 nh\u00e1nh g\u1ed1c<\/span><\/td><td><span style=\"font-weight: 400;\">nh\u00e1nh d\u00e0i h\u1ea1n nh\u01b0 feature c\u00f3 th\u1ec3 d\u1ec5 g\u00e2y xung \u0111\u1ed9t<\/span><\/td><td><span style=\"font-weight: 400;\">T\u1ec9 l\u1ec7 th\u1ea5p, m\u00e3 c\u00e1 nh\u00e2n kh\u00f4ng \u1ea3nh h\u01b0\u1edfng t\u1edbi kho ch\u00ednh<\/span><\/td><\/tr><tr><td><b>Chu k\u1ef3 ph\u00e1t h\u00e0nh<\/b><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng c\u00f3 chu k\u1ef3, ph\u00e1t h\u00e0nh tr\u1ef1c ti\u1ebfp \u1edf main<\/span><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng c\u00f3 chu k\u1ef3<\/span><\/td><td><span style=\"font-weight: 400;\">C\u1ea7n t\u00edch h\u1ee3p th\u00eam quy tr\u00ecnh ph\u00e1t h\u00e0nh ri\u00eang<\/span><\/td><td><span style=\"font-weight: 400;\">C\u00f3 chu k\u1ef3 r\u00f5 r\u00e0ng, nh\u00e1nh release v\u00e0 hotfix ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c th\u1eddi \u0111i\u1ec3m ph\u00e1t h\u00e0nh ri\u00eang<\/span><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng ph\u00f9 h\u1ee3p \u0111\u1ec3 ph\u00e1t h\u00e0nh theo chu k\u1ef3<\/span><\/td><\/tr><tr><td><b>T\u00ednh ph\u00f9 h\u1ee3p<\/b><\/td><td><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n nh\u1ecf, d\u1ef1 \u00e1n c\u00e1 nh\u00e2n, d\u00e0nh cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u l\u00e0m vi\u1ec7c v\u1edbi git<\/span><\/td><td><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n nh\u1ecf, ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng li\u00ean t\u1ee5c<\/span><\/td><td><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n v\u1eeba v\u00e0 l\u1edbn, c\u1ea7n ki\u1ec3m so\u00e1t ch\u1ea5t l\u01b0\u1ee3ng m\u00e3<\/span><\/td><td><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n l\u1edbn, c\u00f3 chu k\u1ef3 ph\u00e1t h\u00e0nh \u0111\u1ecbnh k\u1ef3<\/span><\/td><td><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n m\u00e3 ngu\u1ed3n m\u1edf, c\u00f3 nhi\u1ec1u c\u1ed9ng t\u00e1c vi\u00ean \u0111\u1ed9c l\u1eadp<\/span><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ph\u01b0\u01a1ng-phap-l\u1ef1a-ch\u1ecdn-workflow-phu-h\u1ee3p\"><span class=\"ez-toc-section\" id=\"Phuong_phap_lua_chon_workflow_phu_hop\"><\/span><b>Ph\u01b0\u01a1ng ph\u00e1p l\u1ef1a ch\u1ecdn workflow ph\u00f9 h\u1ee3p<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 l\u1ef1a ch\u1ecdn workflow Git ph\u00f9 h\u1ee3p, b\u1ea1n c\u1ea7n d\u1ef1a v\u00e0o c\u00e1c y\u1ebfu t\u1ed1 ch\u00ednh nh\u01b0 quy m\u00f4 d\u1ef1 \u00e1n, s\u1ed1 l\u01b0\u1ee3ng th\u00e0nh vi\u00ean trong nh\u00f3m, nhu c\u1ea7u qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n, chu k\u1ef3 ph\u00e1t h\u00e0nh v\u00e0 t\u00ednh ch\u1ea5t c\u00f4ng vi\u1ec7c. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1c b\u01b0\u1edbc v\u00e0 ti\u00eau ch\u00ed gi\u00fap b\u1ea1n l\u1ef1a ch\u1ecdn workflow hi\u1ec7u qu\u1ea3 nh\u1ea5t:<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-d\u1ef1a-vao-quy-mo-d\u1ef1-an\"><strong>D\u1ef1a v\u00e0o quy m\u00f4 d\u1ef1 \u00e1n<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n c\u00e1 nh\u00e2n, d\u1ef1 \u00e1n quy m\u00f4 nh\u1ecf: ph\u00f9 h\u1ee3p v\u1edbi Centralized Workflow ho\u1eb7c GitHub Flow<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n quy m\u00f4 v\u1eeba v\u00e0 l\u1edbn: ph\u00f9 h\u1ee3p v\u1edbi Feature Branch Workflow ho\u1eb7c Gitflow<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n m\u00e3 ngu\u1ed3n m\u1edf: ph\u00f9 h\u1ee3p v\u1edbi Forking Workflow<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-nhu-c\u1ea7u-qu\u1ea3n-ly-ma-ngu\u1ed3n\"><strong>Nhu c\u1ea7u qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n nhanh, tri\u1ec3n khai li\u00ean t\u1ee5c: ph\u00f9 h\u1ee3p v\u1edbi Centralized Workflow ho\u1eb7c GitHub Flow<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n c\u1ea7n ph\u00e1t tri\u1ec3n nhi\u1ec1u t\u00ednh n\u0103ng song song: ph\u00f9 h\u1ee3p s\u1eed d\u1ee5ng Feature Branch Workflow ho\u1eb7c Gitflow Workflow<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n c\u00f3 chu k\u1ef3 ph\u00e1t h\u00e0nh \u0111\u1ecbnh k\u00ec: th\u00edch h\u1ee3p cho Gitflow Workflow<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">D\u1ef1 \u00e1n c\u00f3 y\u00eau c\u1ea7u qu\u1ea3n l\u00fd nghi\u00eam ng\u1eb7t, quy tr\u00ecnh review code ch\u1eb7t ch\u1ebd: ph\u00f9 h\u1ee3p v\u1edbi Feature Branch Workflow ho\u1eb7c Gitflow Workflow<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u00edch h\u1ee3p v\u1edbi m\u00e3 ngu\u1ed3n m\u1edf, c\u1ea7n t\u00e1ch bi\u1ec7t v\u1edbi kho ch\u00ednh: ph\u00f9 h\u1ee3p s\u1eed d\u1ee5ng Forking Workflow, Feature Branch Workflow ho\u1eb7c Gitflow Workflow<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-d\u1ef1a-vao-kh\u1ea3-nang-c\u1ee7a-nhom\"><strong>D\u1ef1a v\u00e0o kh\u1ea3 n\u0103ng c\u1ee7a nh\u00f3m<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Nh\u00f3m c\u00f3 \u00edt kinh nghi\u1ec7m, \u0111ang l\u00e0m quen v\u1edbi Git: s\u1eed d\u1ee5ng Centralized Workflow ho\u1eb7c GitHub Flow \u0111\u1ec3 \u0111\u01a1n gi\u1ea3n h\u00f3a quy tr\u00ecnh<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0110\u1ed9i nh\u00f3m c\u00f3 kinh nghi\u1ec7m v\u1edbi Git: c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c quy tr\u00ecnh c\u00f2n l\u1ea1i<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-yeu-c\u1ea7u-tich-h\u1ee3p-ci-cd\"><strong>Y\u00eau c\u1ea7u t\u00edch h\u1ee3p CI\/CD<\/strong><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">N\u1ebfu d\u1ef1 \u00e1n y\u00eau c\u1ea7u t\u00edch h\u1ee3p li\u00ean t\u1ee5c v\u00e0 t\u1ef1 \u0111\u1ed9ng h\u00f3a ki\u1ec3m th\u1eed, h\u00e3y ch\u1ecdn GitHub Flow ho\u1eb7c Feature Branch workflow \u0111\u1ec3 \u0111\u00e1p \u1ee9ng y\u00eau c\u1ea7u v\u00e0 d\u1ec5 d\u00e0ng cho vi\u1ec7c tri\u1ec3n khai.<\/span><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/moi-quan-he-giua-ci-cd-devops\/\" target=\"_blank\" rel=\"noopener\"><strong>M\u1ed1i quan h\u1ec7 \u201cm\u1eadt thi\u1ebft\u201d gi\u1eefa CI\/CD DevOps<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cach-ap-d\u1ee5ng-git-workflow-hi\u1ec7u-qu\u1ea3\"><span class=\"ez-toc-section\" id=\"Cach_ap_dung_Git_workflow_hieu_qua\"><\/span><b> C\u00e1ch \u00e1p d\u1ee5ng Git workflow hi\u1ec7u qu\u1ea3<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">Vi\u1ec7c \u0111\u01b0a m\u1ed9t quy tr\u00ecnh qu\u1ea3n l\u00fd Git v\u00e0o m\u1ed9t d\u1ef1 \u00e1n c\u1ea7n b\u1eaft \u0111\u1ea7u b\u1eb1ng m\u1ed9t k\u1ebf ho\u1ea1ch r\u00f5 r\u00e0ng:<\/span><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Tr\u01b0\u1edbc ti\u00ean, h\u00e3y xem l\u1ea1i quy tr\u00ecnh l\u00e0m vi\u1ec7c hi\u1ec7n t\u1ea1i c\u1ee7a b\u1ea1n v\u00e0 x\u00e1c \u0111\u1ecbnh c\u00e1c \u0111i\u1ec3m kh\u00f3 kh\u0103n.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Sau \u0111\u00f3, h\u00e3y ch\u1ecdn m\u1ed9t chi\u1ebfn l\u01b0\u1ee3c gi\u1ea3i quy\u1ebft c\u00e1c v\u1ea5n \u0111\u1ec1 n\u00e0y m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0110\u1ea3m b\u1ea3o m\u1ecdi th\u00e0nh vi\u00ean trong nh\u00f3m hi\u1ec3u v\u00e0 tu\u00e2n th\u1ee7 c\u00e1c quy t\u1eafc c\u1ee7a workflow \u0111\u00e3 ch\u1ecdn. V\u00ed d\u1ee5 quy \u0111\u1ecbnh v\u1ec1 \u0111\u1eb7t t\u00ean nh\u00e1nh, th\u1ef1c hi\u1ec7n Pull Request v\u00e0 h\u1ee3p nh\u1ea5t nh\u00e1nh.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0110\u1ec3 qu\u00e1 tr\u00ecnh l\u00e0m vi\u1ec7c di\u1ec5n ra su\u00f4n s\u1ebb, h\u00e3y c\u1eadp nh\u1eadt t\u00e0i li\u1ec7u d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n \u0111\u1ec3 ph\u1ea3n \u00e1nh \u0111\u1ea7y \u0111\u1ee7 quy tr\u00ecnh l\u00e0m vi\u1ec7c. \u0110i\u1ec1u n\u00e0y \u0111\u1ea3m b\u1ea3o m\u1ecdi ng\u01b0\u1eddi \u0111\u1ec1u hi\u1ec3u r\u00f5.<\/span><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-cau-h\u1ecfi-th\u01b0\u1eddng-g\u1eb7p-v\u1ec1-git-workflow\"><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_Git_workflow\"><\/span><b>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Git workflow<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-nh\u1eefng-l\u01b0u-y-khi-s\u1eed-d\u1ee5ng-git-workflow-la-gi\"><b>Nh\u1eefng l\u01b0u \u00fd khi s\u1eed d\u1ee5ng Git workflow l\u00e0 g\u00ec?<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 qu\u00e1 tr\u00ecnh s\u1eed d\u1ee5ng workflow v\u00e0 l\u00e0m vi\u1ec7c \u0111\u01b0\u1ee3c hi\u1ec7u qu\u1ea3, b\u1ea1n c\u1ea7n l\u01b0u \u00fd nh\u1eefng \u0111i\u1ec3m sau:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Tu\u00e2n th\u1ee7 quy t\u1eafc \u0111\u1eb7t t\u00ean nh\u00e1nh r\u00f5 r\u00e0ng v\u00e0 x\u00e1c \u0111\u1ecbnh \u0111\u00fang nh\u00e1nh cha khi t\u00e1ch m\u1ed9t nh\u00e1nh m\u1edbi<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Th\u01b0\u1eddng xuy\u00ean c\u1eadp nh\u1eadt c\u00e1c nh\u00e1nh d\u00e0i h\u1ea1n (main, develop, feature) \u0111\u1ec3 tr\u00e1nh xung \u0111\u1ed9t m\u00e3 ngu\u1ed3n khi h\u1ee3p nh\u1ea5t<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Ki\u1ec3m tra k\u1ef9 tr\u01b0\u1edbc n\u1ed9i dung thay \u0111\u1ed5i trong Pull Request khi merge, \u0111\u1ea3m b\u1ea3o code ch\u1ea5t l\u01b0\u1ee3ng<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">V\u1eadn d\u1ee5ng t\u1ed1t t\u00ednh n\u0103ng pull request \u0111\u1ec3 ki\u1ec3m so\u00e1t c\u00e1c thay \u0111\u1ed5i<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u1ea7n chu\u1ea9n b\u1ecb t\u00e0i li\u1ec7u \u0111\u1ea7y \u0111\u1ee7 c\u00e1c quy \u0111\u1ecbnh v\u1ec1 quy tr\u00ecnh l\u00e0m vi\u1ec7c<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-th\u1ebf-nao-la-m\u1ed9t-quy-trinh-lam-vi\u1ec7c-git-phu-h\u1ee3p\"><b>Th\u1ebf n\u00e0o l\u00e0 m\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c Git ph\u00f9 h\u1ee3p?<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Khi \u0111\u00e1nh gi\u00e1 quy tr\u00ecnh l\u00e0m vi\u1ec7c cho nh\u00f3m c\u1ee7a b\u1ea1n, \u0111i\u1ec1u quan tr\u1ecdng nh\u1ea5t l\u00e0 b\u1ea1n ph\u1ea3i xem x\u00e9t v\u0103n h\u00f3a c\u1ee7a nh\u00f3m. B\u1ea1n mu\u1ed1n quy tr\u00ecnh l\u00e0m vi\u1ec7c n\u00e2ng cao hi\u1ec7u qu\u1ea3 c\u1ee7a nh\u00f3m ch\u1ee9 kh\u00f4ng ph\u1ea3i l\u00e0 g\u00e1nh n\u1eb7ng h\u1ea1n ch\u1ebf n\u0103ng su\u1ea5t. M\u1ed9t s\u1ed1 \u0111i\u1ec1u c\u1ea7n c\u00e2n nh\u1eafc khi \u0111\u00e1nh gi\u00e1 quy tr\u00ecnh l\u00e0m vi\u1ec7c Git l\u00e0:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Quy tr\u00ecnh l\u00e0m vi\u1ec7c n\u00e0y c\u00f3 ph\u00f9 h\u1ee3p v\u1edbi quy m\u00f4 nh\u00f3m kh\u00f4ng?<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00f3 d\u1ec5 d\u00e0ng \u0111\u1ec3 ho\u00e0n t\u00e1c c\u00e1c l\u1ed7i v\u00e0 sai s\u00f3t v\u1edbi quy tr\u00ecnh l\u00e0m vi\u1ec7c n\u00e0y kh\u00f4ng?<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Li\u1ec7u quy tr\u00ecnh l\u00e0m vi\u1ec7c n\u00e0y c\u00f3 g\u00e2y th\u00eam g\u00e1nh n\u1eb7ng nh\u1eadn th\u1ee9c kh\u00f4ng c\u1ea7n thi\u1ebft n\u00e0o cho nh\u00f3m kh\u00f4ng?<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-t\u1ea1i-sao-git-workflow-khong-phu-h\u1ee3p-v\u1edbi-cac-d\u1ef1-an-phat-tri\u1ec3n-lien-t\u1ee5c\"><b>T\u1ea1i sao Git workflow kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n li\u00ean t\u1ee5c?<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Git workflow s\u1eed d\u1ee5ng nhi\u1ec1u nh\u00e1nh c\u00f3 v\u00f2ng \u0111\u1eddi l\u00e2u nh\u01b0 feature ho\u1eb7c release, \u0111i\u1ec1u n\u00e0y l\u00e0m c\u1ed3ng k\u1ec1nh v\u00e0 ch\u1eadm qu\u00e1 tr\u00ecnh t\u00edch h\u1ee3p v\u00e0 tri\u1ec3n khai li\u00ean t\u1ee5c (CI\/CD). GitHub Flow ho\u1eb7c Feature Branch Workflow s\u1ebd ph\u00f9 h\u1ee3p h\u01a1n v\u1edbi c\u00e1c d\u1ef1 \u00e1n y\u00eau c\u1ea7u ph\u00e1t tri\u1ec3n nhanh.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ed5ng-k\u1ebft\"><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><b>T\u1ed5ng k\u1ebft<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">Git Workflow \u0111\u00e3 tr\u1edf th\u00e0nh m\u1ed9t c\u00f4ng c\u1ee5 kh\u00f4ng th\u1ec3 thi\u1ebfu trong qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n, n\u00f3 gi\u00fap cho \u0111\u1ed9i ng\u0169 ph\u00e1t tri\u1ec3n t\u1ed5 ch\u1ee9c c\u00f4ng vi\u1ec7c hi\u1ec7u qu\u1ea3, gi\u1ea3m thi\u1ec3u xung \u0111\u1ed9t m\u00e3 ngu\u1ed3n v\u00e0 duy tr\u00ec ch\u1ea5t l\u01b0\u1ee3ng d\u1ef1 \u00e1n. Qua b\u00e0i vi\u1ebft n\u00e0y, ITviec hi v\u1ecdng \u0111\u00e3 cung c\u1ea5p cho b\u1ea1n \u0111\u1ecdc nh\u1eefng th\u00f4ng tin b\u1ed5 \u00edch v\u1ec1 c\u00e1c quy tr\u00ecnh ph\u1ed5 bi\u1ebfn cho d\u1ef1 \u00e1n s\u1eed d\u1ee5ng Git, t\u1eeb \u0111\u00f3 c\u00f3 th\u1ec3 \u0111\u01b0a ra nh\u1eefng l\u1ef1a ch\u1ecdn workflow ph\u00f9 h\u1ee3p v\u1edbi d\u1ef1 \u00e1n c\u1ee7a b\u1ea3n th\u00e2n v\u00e0 nh\u00f3m c\u1ed9ng t\u00e1c.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ng\u00e0y nay, Git \u0111\u00e3 tr\u1edf th\u00e0nh c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n ph\u1ed5 bi\u1ebfn trong c\u00e1c d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. Tuy nhi\u00ean \u0111\u1ec3 qu\u00e1 tr\u00ecnh s\u1eed d\u1ee5ng v\u00e0 c\u1ed9ng t\u00e1c v\u1edbi c\u00e1c th\u00e0nh vi\u00ean trong nh\u00f3m \u0111\u01b0\u1ee3c di\u1ec5n ra thu\u1eadn l\u1ee3i, ph\u00e1t huy \u0111\u01b0\u1ee3c nh\u1eefng \u0111i\u1ec3m m\u1ea1nh c\u1ee7a Git, \u0111\u00f2i h\u1ecfi c\u1ea7n c\u00f3 [&hellip;]<\/p>\n","protected":false},"author":235,"featured_media":84109,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-84079","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3 - ITviec Blog<\/title>\n<meta name=\"description\" content=\"Git Workflow l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n quan tr\u1ecdng. T\u00ecm hi\u1ec3u c\u00e1c workflow ph\u1ed5 bi\u1ebfn v\u00e0 c\u00e1ch \u00e1p d\u1ee5ng \u0111\u1ec3 t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t teamwork.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3\" \/>\n<meta property=\"og:description\" content=\"Ng\u00e0y nay, Git \u0111\u00e3 tr\u1edf th\u00e0nh c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n ph\u1ed5 bi\u1ebfn trong c\u00e1c d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. Tuy nhi\u00ean \u0111\u1ec3 qu\u00e1 tr\u00ecnh s\u1eed d\u1ee5ng v\u00e0 c\u1ed9ng t\u00e1c v\u1edbi c\u00e1c th\u00e0nh\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-15T09:15:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-10T03:50:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/Git-Workflow-vippro.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"790\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ph\u1ea1m H\u1eefu Ng\u1ecdc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ph\u1ea1m H\u1eefu Ng\u1ecdc\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3 - ITviec Blog","description":"Git Workflow l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n quan tr\u1ecdng. T\u00ecm hi\u1ec3u c\u00e1c workflow ph\u1ed5 bi\u1ebfn v\u00e0 c\u00e1ch \u00e1p d\u1ee5ng \u0111\u1ec3 t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t teamwork.","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:\/\/itviec.com\/blog\/git-workflow-la-gi\/","og_locale":"vi_VN","og_type":"article","og_title":"Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3","og_description":"Ng\u00e0y nay, Git \u0111\u00e3 tr\u1edf th\u00e0nh c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n ph\u1ed5 bi\u1ebfn trong c\u00e1c d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. Tuy nhi\u00ean \u0111\u1ec3 qu\u00e1 tr\u00ecnh s\u1eed d\u1ee5ng v\u00e0 c\u1ed9ng t\u00e1c v\u1edbi c\u00e1c th\u00e0nh","og_url":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-01-15T09:15:18+00:00","article_modified_time":"2025-07-10T03:50:07+00:00","og_image":[{"width":1500,"height":790,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/Git-Workflow-vippro.jpg","type":"image\/jpeg"}],"author":"Ph\u1ea1m H\u1eefu Ng\u1ecdc","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Ph\u1ea1m H\u1eefu Ng\u1ecdc","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"21 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/"},"author":{"name":"Ph\u1ea1m H\u1eefu Ng\u1ecdc","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/407769a7625b7f955cef615f7a99abad"},"headline":"Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3","datePublished":"2025-01-15T09:15:18+00:00","dateModified":"2025-07-10T03:50:07+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/"},"wordCount":5404,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/Git-Workflow-vippro.jpg","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/","url":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/","name":"Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3 - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/Git-Workflow-vippro.jpg","datePublished":"2025-01-15T09:15:18+00:00","dateModified":"2025-07-10T03:50:07+00:00","description":"Git Workflow l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n quan tr\u1ecdng. T\u00ecm hi\u1ec3u c\u00e1c workflow ph\u1ed5 bi\u1ebfn v\u00e0 c\u00e1ch \u00e1p d\u1ee5ng \u0111\u1ec3 t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t teamwork.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/git-workflow-la-gi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/Git-Workflow-vippro.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/01\/Git-Workflow-vippro.jpg","width":1500,"height":790,"caption":"Git Workflow - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/git-workflow-la-gi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"Git Workflow: C\u00e1ch \u00e1p d\u1ee5ng k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n hi\u1ec7u qu\u1ea3"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/407769a7625b7f955cef615f7a99abad","name":"Ph\u1ea1m H\u1eefu Ng\u1ecdc","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/Pham-Huu-Ngoc-technical-content-reviewer-e1712135841473-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/Pham-Huu-Ngoc-technical-content-reviewer-e1712135841473-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/Pham-Huu-Ngoc-technical-content-reviewer-e1712135841473-100x100.jpg","caption":"Ph\u1ea1m H\u1eefu Ng\u1ecdc"},"url":"https:\/\/itviec.com\/blog\/author\/pham-huu-ngoc-2\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/84079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/235"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=84079"}],"version-history":[{"count":2,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/84079\/revisions"}],"predecessor-version":[{"id":89232,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/84079\/revisions\/89232"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/84109"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=84079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=84079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=84079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}