DEV Community

Cover image for 3 Ways to Backup Your Code (Even If You Don’t Know Git)

3 Ways to Backup Your Code (Even If You Don’t Know Git)

Rizèl Scarlett on December 06, 2021

Today, over 73 million software engineers around the globe use GitHub. While GitHub provides many benefits, including project management, open sour...
Collapse
 
aitor profile image
dragonDScript

I wouldn't use GitHub if you don't use Git properly. I'd rather use Dropbox, Drive, an HDD or even OneDrive.

Collapse
 
0vortex profile image
TED Vortex (Teodor Eugen Duțulescu)

This post is not incompatible with that flow, assuming you use GitHub it's quite likely you will eventually start using the gh cli command. Going back to the terminal, using only GitHub, one can backup all personal, org, or someone else's repos using the following script:

export GH_USER="0-vortex";

gh repo list $GH_USER --limit 99999 |
  while read -r repo _; do 
      if [[ $repo =~ "^($GH_USER/*)" ]]; then 
          gh repo clone $repo
      fi;
      sleep 0.3;
  done
Enter fullscreen mode Exit fullscreen mode

The above code clones the code with all its history, but manipulating the gh line one can fine tune that based on preferences, cloud provider, etc.

Don't forget to change the username!

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Just a small suggestion: you can rewrite this to have the command directly in the loop.

for repo in $(gh repo list $(whoami); do
   # Loop code here
done
Enter fullscreen mode Exit fullscreen mode

Also using whoami in the assumption that your linux username is the same as your github username :D

Thread Thread
 
0vortex profile image
TED Vortex (Teodor Eugen Duțulescu)

I like the one-line improvement but the username is definitely not a given for a lot of people :D

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Yep, that's just a suggestion for cases where it's the same; my username is the same everywhere so for me this would work :D

Collapse
 
blackgirlbytes profile image
Rizèl Scarlett

Thanks for seeing my point of view @0vortex !!! Also wow, I just tried out your script..pretty cool 😎

Thread Thread
 
0vortex profile image
TED Vortex (Teodor Eugen Duțulescu)

awlays welcome! it feels like the gh cli is the natural bridge between the desktop experience and full time terminal usage :D

Collapse
 
aitor profile image
dragonDScript

Wow! That script is great. I will start using it in GCP or my machine, probably. Thanks dude!

Thread Thread
 
0vortex profile image
TED Vortex (Teodor Eugen Duțulescu)

no worries, glad it helps you!

Collapse
 
blackgirlbytes profile image
Rizèl Scarlett • Edited

Thanks for your feedback and your perspective.
This blog post is based on my perspective and advice as someone who works at GitHub and teaches a group of people web development skills twice a year. Before we dive into Git and the terminal, I found that it's helpful to introduce them to GitHub via a GUI because they get to understand the difference concepts such as (push, pull, commit).
Then, when they learn Git they have more context around the workflow and commands.

Collapse
 
aitor profile image
dragonDScript

Oh! That's an interesting point of view. Yes, I agree.

Collapse
 
gmkng profile image
gmkng

How are you doing it ??

Collapse
 
mccurcio profile image
Matt Curcio

I use Dropbox box all the time. I keep most of my work there.

Even though I have a GitHub act. I feel like if my computer goes down (and they really shouldn't) I will have a record for backing up all my little piddly tasks. haha

Collapse
 
blackgirlbytes profile image
Rizèl Scarlett • Edited

Whatever works to ease your mind and help you get the job done! 😀 The only hard part about saving in Dropbox is it doesn’t really allow you to revert commits as easily or see who wrote each line of code besides yourself..but I guess you’re probably doing this for personal projects and you’re copying and pasting each version of your code!

Collapse
 
drdavemckay profile image
Dave McKay

Really useful post, thanks! I'm the software engineer in a project involving scientists. They're the experts when it comes to the algorithms they want to use and the scientific results they're looking for. I develop everything else.
I never leave the terminal, but they are not comfortable in that environment. I'm always looking for better ways we can work together, and before reading this I only knew GitHub desktop.
Thanks!

Collapse
 
blackgirlbytes profile image
Rizèl Scarlett

Awesome! I'm glad this post is useful to you and your project team. Also, it's quite validating to know that there ARE people who are collaborating with code, but don't feel comfortable working in the terminal.

Collapse
 
janet41537537 profile image
Janet

Useful information. Thanks

Collapse
 
blackgirlbytes profile image
Rizèl Scarlett

Glad that you found it useful!