Git ဘဏ်ခွဲပေါင်းစည်းခြင်း။
ဘဏ်ခွဲများ ပေါင်းစည်းပါ။
ကျွန်ုပ်တို့တွင် အရေးပေါ်ပြင်ဆင်မှုအဆင်သင့်ရှိပြီး၊ ထို့ကြောင့် မာစတာနှင့် အရေးပေါ်ပြင်ဆင်မှုအကိုင်းအခက်များကို ပေါင်းစပ်လိုက်ကြပါစို့။
ဦးစွာ၊ ကျွန်ုပ်တို့သည် မာစတာဌာနခွဲသို့ ပြောင်းလဲရန် လိုအပ်သည်-
ဥပမာ
git checkout master
Switched to branch 'master'
ယခု ကျွန်ုပ်တို့သည် လက်ရှိဌာနခွဲ (မာစတာ) ကို အရေးပေါ်ပြင်ဆင်မှုဖြင့် ပေါင်းစည်းလိုက်သည်-
ဥပမာ
git merge emergency-fix
Updating 09f4acd..dfa79db
Fast-forward
index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
အရေးပေါ်ပြင်ဆင်ရေးဌာနခွဲသည် မာစတာထံမှ တိုက်ရိုက်လာ၍ ကျွန်ုပ်တို့လုပ်ဆောင်နေစဉ်တွင် ကျွမ်းကျင်ရန် အခြားအပြောင်းအလဲများ ပြုလုပ်ထားခြင်းမရှိသောကြောင့် Git သည် ၎င်းကို မာစတာ၏ဆက်နွှယ်မှုတစ်ခုအဖြစ် မြင်သည်။ ထို့ကြောင့် ၎င်းသည် တူညီသော commit သို့ မာစတာနှင့် အရေးပေါ်ပြင်ဆင်မှု နှစ်ခုလုံးကို ညွှန်ပြရုံဖြင့် "Fast-forward" လုပ်နိုင်မည်ဖြစ်သည်။
မာစတာနှင့် အရေးပေါ်ပြင်ဆင်မှုတို့သည် ယခုအခါ အခြေခံအားဖြင့် တူညီသောကြောင့်၊ ကျွန်ုပ်တို့ မလိုအပ်တော့သောကြောင့် အရေးပေါ်ပြင်ဆင်မှုကို ဖျက်နိုင်သည်-
ဥပမာ
git branch -d emergency-fix
Deleted branch emergency-fix (was dfa79db).
ပဋိပက္ခကို ပေါင်းစည်းပါ။
ယခု ကျွန်ုပ်တို့သည် hello-world-images သို့ ကူးပြောင်းပြီး ဆက်လက်လုပ်ဆောင်နိုင်ပါပြီ။ အခြားရုပ်ပုံဖိုင် (img_hello_git.jpg) ထည့်ပြီး index.html ကို ပြောင်းပါ၊ ထို့ကြောင့် ၎င်းကို ပြသည်-
ဥပမာ
git checkout hello-world-images
Switched to branch 'hello-world-images'
ဥပမာ
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>
<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World
from Space" style="width:100%;max-width:960px"></div>
<p>This is the first
file in my new Git Repo.</p>
<p>A new line in our file!</p>
<div><img
src="img_hello_git.jpg" alt="Hello Git"
style="width:100%;max-width:640px"></div>
</body>
</html>
ယခု ကျွန်ုပ်တို့သည် ဤနေရာတွင် ကျွန်ုပ်တို့၏အလုပ်ဖြင့် ပြီးမြောက်ပြီး ဤဌာနခွဲအတွက် ကတိကဝတ်ပြုနိုင်သည်-
ဥပမာ
git add --all
git commit -m "added new image"
[hello-world-images 1f1584e] added new image
2 files changed, 1 insertion(+)
create mode 100644 img_hello_git.jpg
အကိုင်းအခက်နှစ်ခုလုံးတွင် index.html ကို ပြောင်းလဲထားသည်ကို ကျွန်ုပ်တို့တွေ့မြင်ရပါသည်။ ယခု ကျွန်ုပ်တို့သည် ဟယ်လိုကမ္ဘာပုံများကို သခင်အဖြစ် ပေါင်းစည်းရန် အဆင်သင့်ဖြစ်နေပါပြီ။ သို့သော် မကြာသေးမီက ပြုလုပ်ခဲ့သော ကျွမ်းကျင်မှုဆိုင်ရာ အပြောင်းအလဲများတွင် မည်သို့ဖြစ်မည်နည်း။
ဥပမာ
git checkout master
git merge hello-world-images
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
index.html အတွက် ဗားရှင်းများကြားတွင် ပဋိပက္ခရှိနေသောကြောင့် ပေါင်းစည်းခြင်း မအောင်မြင်ပါ။ အခြေအနေကို စစ်ဆေးကြည့်ကြပါစို့။
ဥပမာ
git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Changes to be committed:
new file: img_hello_git.jpg
new file: img_hello_world.jpg
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: index.html
၎င်းသည် index.html တွင် ပဋိပက္ခတစ်ခုရှိကြောင်း အတည်ပြုသော်လည်း ပုံဖိုင်များသည် အဆင်သင့်ဖြစ်ပြီး လုပ်ဆောင်ရန် အဆင့်သတ်မှတ်ထားသည်။
အဲဒီတော့ ဒီပဋိပက္ခကို ပြင်ရမယ်။ ကျွန်ုပ်တို့၏အယ်ဒီတာတွင် ဖိုင်ကိုဖွင့်ပါ-
ဥပမာ
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link
rel="stylesheet" href="bluestyle.css">
</head>
<body>
<h1>Hello
world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from
Space" style="width:100%;max-width:960px"></div>
<p>This is the first file
in my new Git Repo.</p>
<<<<<<< HEAD
<p>This line is here to show how
merging works.</p>
=======
<p>A new line in our file!</p>
<div><img
src="img_hello_git.jpg" alt="Hello Git"
style="width:100%;max-width:640px"></div>
>>>>>>> hello-world-images
</body>
</html>
ဗားရှင်းများအကြား ကွဲပြားမှုများကို ကျွန်ုပ်တို့မြင်နိုင်ပြီး ကျွန်ုပ်တို့အလိုရှိသည့်အတိုင်း တည်းဖြတ်နိုင်သည်-
ဥပမာ
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link
rel="stylesheet" href="bluestyle.css">
</head>
<body>
<h1>Hello
world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from
Space" style="width:100%;max-width:960px"></div>
<p>This is the first file
in my new Git Repo.</p>
<p>This line is here to show how
merging works.</p>
<div><img
src="img_hello_git.jpg" alt="Hello Git"
style="width:100%;max-width:640px"></div>
</body>
</html>
ယခု ကျွန်ုပ်တို့သည် index.html ကို အဆင့်သတ်မှတ်ပြီး အခြေအနေကို စစ်ဆေးနိုင်သည်-
ဥပမာ
git add index.html
git status
On branch master
All conflicts fixed but you are still merging.
(use "git commit" to conclude merge)
Changes to be committed:
new file: img_hello_git.jpg
new file: img_hello_world.jpg
modified: index.html
ပဋ္ဋိပက္ခကို ပြင်ပြီးပြီ၊
ဥပမာ
git commit -m "merged with hello-world-images after fixing conflicts"
[master e0b6038] merged with hello-world-images after fixing conflicts
ပြီးလျှင် hello-world-images ဌာနခွဲကို ဖျက်ပါ။
ဥပမာ
git branch -d hello-world-images
Deleted branch hello-world-images (was 1f1584e).
ယခုအခါတွင် အကိုင်းအခက်များနှင့် ပေါင်းစည်းခြင်းလုပ်ငန်းကို ကောင်းစွာနားလည်လာပါပြီ။ အဝေးထိန်းသိမ်းဆည်းမှုဖြင့် စတင်လုပ်ဆောင်ရမည့်အချိန်ဖြစ်သည်။