๐Ÿ”„Day 11 - Advance Git & GitHub for DevOps Engineers: Part-II

ยท

3 min read

๐Ÿ”„Day 11 - Advance Git & GitHub for DevOps Engineers: Part-II

๐Ÿ  Git Shack: Simplifying Branch Management

In simple terms, git stash is like putting your changes aside temporarily. It allows you to save your work without committing it, so you can switch to another task or branch and then come back to your changes later. It's useful when you're not ready to commit your changes but need to work on something else or clean up your workspace.

Here's a simple example of how git stash works:

Let's say you're working on a feature branch in your Git repository and you've made some changes to your files but you're not ready to commit them yet because you need to switch to another branch to fix a bug:

  1. Check the status of your changes:

    COPY

      git status
    
  2. Stage your changes (if necessary) using git add.

  3. Now, to stash your changes, run:

    COPY

      git stash
    

    This will stash your changes, leaving your working directory clean.

  4. You can switch to another branch now using git checkout:

    COPY

      git checkout other-branch
    
  5. After working on the other branch, you might decide to come back to your previous changes. To retrieve your changes from the stash, you can use:

    COPY

      git stash apply
    

    This will reapply your changes to the current branch.

  6. If you want to remove the changes from the stash after applying them, you can run:

    COPY

      git stash drop
    

    Or, if you want to apply and drop in a single command, you can use:

    COPY

      git stash pop
    

This is a basic example of how git stash can be used to temporarily store changes in Git. It's particularly handy when you need to switch contexts or work on something else briefly without committing half-finished work.

๐Ÿ’ Git Cherry-Pick: Selective Commit Integration

Git cherry-pick is a command that allows you to select specific commits from one branch and apply them to another. This can be useful when you want to selectively apply changes that were made in one branch to another.

Example:

  1. Create two new branches:

    COPY

      git checkout -b branch1
      # Make some changes and commits on branch1
      git commit -am "Commit 1 on branch1"
      git commit -am "Commit 2 on branch1"
    

    COPY

      git checkout -b branch2
      # Make some changes and commits on branch2
      git commit -am "Commit 1 on branch2"
      git commit -am "Commit 2 on branch2"
    
  2. Now, suppose you want to apply "Commit 2 on branch1" to branch2:

    First, find the commit hash of "Commit 2 on branch1":

    COPY

      git log
    

    Identify the hash of "Commit 2 on branch1".

  3. Switch to branch2:

    COPY

      git checkout branch2
    
  4. Cherry-pick the commit from branch1:

    COPY

      git cherry-pick <commit_hash>
    

    Replace <commit_hash> with the actual hash of "Commit 2 on branch1".

  5. Resolve conflicts if any. Git might pause the cherry-pick process if there are conflicts to resolve. You'll need to manually resolve these conflicts, stage the changes, and continue the cherry-pick with git cherry-pick --continue.

  6. Once conflicts are resolved (if any), the commit from branch1 has been cherry-picked onto branch2.

    ๐Ÿ”ธConclusion

    In summary, git stash is for temporarily shelving changes, while git cherry-pick is for selectively applying specific commits to another branch. Both commands are valuable tools in managing your Git workflow efficiently.

I believe this blog will be really helpful, giving you fresh perspectives and teaching you something new and interesting. ๐Ÿ™

๐Ÿ˜Š Enjoy learning!

ย