Git Branch Merge


Switching Base

To integrate modifications, first, navigate to the primary branch: bash Copy Edit

git checkout main 

OutPut:

Switched to branch 'main' 

Uniting Alterations

Merge critical-patch into main:

git merge critical-patch 

Example OutPut:

Updating a1b2c3d..e4f5g6h   
Fast-forward    
    revised.html | 3 ++-    
   1 file adjusted, 2 insertions(+), 1 removal(-)   

Since critical-patch originated from main without parallel modifications, Git performs a fast-forward, aligning both references.


Cleaning Up

Eliminate the merged branch:

git branch -d critical-patch 

Example OutPut:

Deleted branch critical-patch (was e4f5g6h). 

Handling Conflicts

Progressing on Another Line

Modify media-enhancement branch by including new_graphic.jpg and updating revised.html: bash Copy Edit

git checkout media-enhancement 

OutPut:

Switched to branch 'media-enhancement' 

HTML Adjustments

<!DOCTYPE html> 
<html> 
<head> 
     <title>Greetings</title> 
     <link rel="stylesheet" href="visuals.css"> 
</head> 
<body>  
   <h1>Salutations!</h1> 
   <div><img src="old_graphic.jpg" alt="Visual from Space" style="width:100%;max-width:900px"></div>
   <p>Initial draft within the repository.</p> 
   <p>Enhancement included!</p> 
   <div><img src="new_graphic.jpg" alt="Updated Illustration" style="width:100%;max-width:600px"></div>  
</body> 
</html> 

Recording Progress bash Copy Edit

git add --all   
Git commit -m "Inserted fresh illustration" 

Example OutPut:

[media-enhancement abc1234] Inserted fresh illustration   
   2 files altered, 1 addition(+)    
   New file mode 100644 new_graphic.jpg   

Both main and media-enhancement modified revised.html.

Conflict Detection

git checkout main   
Git merge media-enhancement 

OutPut:

Auto-merging revised.html   
CONFLICT (content): Merge conflict in revised.html   
Automatic merge halted; resolve discrepancies before committing. 

Identifying the Issue

git status 

OutPut:

On branch main   
Unresolved paths exist.     
     (Address issues and execute "git commit")     
     (Use "git merge --abort" to cancel)  
Changes staged for commit:          
     new file:   new_graphic.jpg           
     new file:   old_graphic.jpg    
Unresolved paths:           
     Both modified:   revised.html   

Resolving the Conflict

Open revised.html in an editor:

<!DOCTYPE html> 
<html> 
<head> 
<title>Greetings</title> 
<link rel="stylesheet" href="visuals.css"> 
</head> 
<body>  
<h1>Salutations!</h1> 
<div><img src="old_graphic.jpg" alt="Visual from Space" style="width:100%;max-width:900px"></div> 
<p>Initial draft within the repository.</p> 
<<<<<<< HEAD 
<p>Demonstrating integration process.</p>
 ======= 
<p>Enhancement included!</p>
<div><img src="new_graphic.jpg" alt="Updated Illustration" style="width:100%;max-width:600px"></div> 
>>>>>>> media-enhancement  

</body> 
</html> 

Finalizing

Adjust and save:

<!DOCTYPE html> 
<html> 
<head> 
<title>Greetings</title> 
<link rel="stylesheet" href="visuals.css"> 
</head> 
<body>  
<h1>Salutations!</h1> 
<div><img src="old_graphic.jpg" alt="Visual from Space" style="width:100%;max-width:900px"></div> 
<p>Initial draft within the repository.</p> <p>Demonstrating integration process.</p> 
<div><img src="new_graphic.jpg" alt="Updated Illustration" style="width:100%;max-width:600px"></div>  

</body> 
</html> 

Confirming Resolution

git add revised.html   
Git status 

OutPut:

On branch main   
All conflicts addressed but merge remains open.     
       (Use "git commit" to conclude) 

 Changes staged for commit:           
      new file:   new_graphic.jpg           
      new file:   old_graphic.jpg           
      Modified:   revised.html   

Concluding Integration

git commit -m "Unified media-enhancement with main, resolved disputes" 

Example OutPut:

[main z9y8x7w] Unified media-enhancement with main, resolved disputes 

Cleaning Up

git branch -d media-enhancement 

OutPut:

Deleted branch media-enhancement (was abc1234). 

Now, you're proficient in managing branches, merging, and resolving conflicts. Proceed with remote collaboration for greater efficiency!


Prefer Learning by Watching?

Watch these YouTube tutorials to understand GIT Tutorial visually:

What You'll Learn:
  • 📌 Git Crash Course #13 - Merging Branches
  • 📌 Git & GitHub Tutorial for Beginners #9 - Merging Branches (& conflicts)
Previous