Using GIT on USB stick for “travelling code”

2019-01-11 13:49发布

问题:

I have exhaustively searched for answers to my question here and on Google. I have found some great resources and learning tools for understanding Git and what it does, but I need to get some clarification, and assistance.

What I am doing is working on a side-project for work both at my office and at home. (I'm migrating C# code to Java to help me learn both languages.)

The setup:

  • Environment: Windows 7 (VS 2008 is on an XP virtual machine)
  • Git: msysgit 1.7.4
  • IDEs: VS 2008 and Eclipse
  • Git plugins:
    • Eclipse: I am using EGit.
    • VS 2008: I plan on using one mentioned here on SO, Git Extensions
  • Git repository: Located in \Repo on the USB stick - right now it just has a portion of the Java code as I fumble my way through learning Git.
  • C# code in a Virtual Machine with VS 2008 that gets copied out of the VM to the USB stick - this is not under version control, yet.
  • And yes, I have backup copies of all code for the "baseline". I had to since EGit, when you put the code under source control, moves it from my Eclipse workspace into the git repository on the USB drive. So if something goes crazy while learning, I can easily recover. I have not made major changes yet to the code, since I am still learning.

Note: Using Github is not an option.

Purpose/Goal:

What I am trying to do is keep the code as much in order, with version control, as possible by using Git, but in setting it up at work, for some reason I'm a bit afraid it won't work the same when I get home. (Side note: I sense a "This is of the beauty of git." type answer somewhere.)

My questions are:

  • Using Git as a version control system, what is a best practice for this type of setup?
    • Should I leave it on the USB stick just use that repository for everything?

Sorry for the length, but I wanted to provide as much information as possible. Thanks ahead of time for any information anyone can provide after wading through my novel.

回答1:

Try keeping a bare repo on the usb stick and clone it to the machines you are working on.

Before you pack up for the day or complete to remove your stick, push your changes back to the "origin" (which is the bare repo on the stick).

When you open up on your other workstation (home?) fetch your changes.



回答2:

Using the USB stick to keep the code and the repository on is one option - you get the advantages of portability and version control.

But, another way to do this is to keep a bare repo on the USB stick (or dropbox) and on each machine that you want to use the code, make a clone of this. When you finish doing what you are doing you can just push your changes upstream (to the USB stick or Dropbox or wherever).

Having a bare clone portable means that if you forget (or $DEITY forbid) lose the stick in it's travels, you won't be left holding your…without any code to work on. You can recreate a clone from any of the repositories if you've lost the key, and, if you forget the key at home or work or somewhere else, there is always something you can do on your project and merge the changes with the key when next they are together.



回答3:

One common solution is to keep a bare repo in dropbox and push/pull with that to keep your computers in sync.



回答4:

Just a suggestion:

I use Truecrypt with my USB sticks. My code goes into a tc volume. In case I lose the stick - which is fairly common with those things - the finder doesn't get my code.



回答5:

Another way is via bundles. This assumes you are using an independent machine, see how-to-use-git-in-a-sneakernet-environment