DEV Community

Hootan Hemmati
Hootan Hemmati

Posted on

Moving Git Stashes Between Devices: A Step-by-Step Guide

Git stashes are a powerful feature that allows developers to temporarily store uncommitted changes. But what if you need to move these stashes to another device? In this post, we'll walk through the process of transferring your Git stashes, ensuring you don't lose any valuable work-in-progress.

Prerequisites

Before we begin, let's set up Git to include untracked files in our stashes:

git config stash.showIncludeUntracked true
Enter fullscreen mode Exit fullscreen mode

This configuration ensures that when we create a stash, it includes all changes, even those in untracked files.

Step 1: Create a Stash

On your current device, stash your changes:

git stash push -u
Enter fullscreen mode Exit fullscreen mode

The -u flag includes untracked files in the stash.

Step 2: Create a Patch File

Now, let's create a patch file from the stash:

git stash show "stash@{0}" -p > changes.patch
Enter fullscreen mode Exit fullscreen mode

This command creates a file named changes.patch containing all the changes in your most recent stash.

Step 3: Transfer the Patch File

Transfer the changes.patch file to your other device. You can use various methods like email, cloud storage, or a USB drive.

Step 4: Apply the Patch on the New Device

On your new device, navigate to your Git repository and apply the patch:

git apply changes.patch
Enter fullscreen mode Exit fullscreen mode

This command applies the changes from the patch file to your working directory.

Example Workflow

Let's walk through an example to illustrate this process:

  1. On Device A, you're working on a feature but need to switch tasks:
   # Make some changes to files
   echo "New feature code" >> feature.txt

   # Stash the changes
   git stash push -u

   # Create a patch file
   git stash show "stash@{0}" -p > my_feature_changes.patch
Enter fullscreen mode Exit fullscreen mode
  1. Transfer my_feature_changes.patch to Device B.

  2. On Device B:

   # Navigate to your repository
   cd /path/to/your/repo

   # Apply the patch
   git apply my_feature_changes.patch
Enter fullscreen mode Exit fullscreen mode

Now, all the changes you stashed on Device A are available in your working directory on Device B.

Additional Tips

  • You can create multiple patch files for different stashes by changing the stash reference (e.g., stash@{1}, stash@{2}).
  • After applying the patch, you might want to commit the changes or create a new stash on the new device.
  • Always ensure you're in the correct repository and branch before applying patches.

By following these steps, you can easily move your Git stashes between devices, maintaining your workflow continuity no matter where you're working.

Top comments (0)