使用U盘和git在多个电脑上共享工作

翻译 2012年07月03日 19:37:55
译注:因为需要频繁的在各电脑上切换,例如在实验室电脑和自己的电脑上工作,工作代码又需要在同版本控制之下。要满足这样的需求,可以使用网上免费的Git托管服务器,例如GitHub,但是免费的托管项目,又需要开源。如果有一个可以可以移动的Git服务器,问题就解决了,本文就是一个把Git服务器版本库放到U盘里面的解决方案,当然你要保证你的U盘别丢了。(第一次翻译别人的博客,翻译不正确的地方请指出。)


以下是原文翻译,原文可以在这里找到:http://timwise.blogspot.com/2008/05/sharing-work-between-computers-with-usb.html.

===
因为我在网上没有找到正好符合这个目的(使用U盘和git在多个电脑上共享工作)的解决方案,所以我做了如下的方案。

此方法可以同远程的svn服务器同时使用,如果没有的话,也可以适用。

首先,在第一个电脑上,使用git-svn clone (或者 克隆一个git库,或者新建一个工作目录),从远程代码库获取你的工作的拷贝到本地:
mkdir ~/project.git
cd ~/project.git
git-svn clone svn://project-server/trunk
git repack #for good measure
然后插上U盘,我们假设U盘是vfat/fat32/fat16格式的,并且挂载的路径为/media/flash.在U盘上创建一个空版本库,我们创建一个bare库,因为我们并不需要在此库保存工作拷贝(译注:也就是说是服务器版本库,没有工作目录)。
mkdir /media/flash/project.git
git --bare init /media/flash/project.git
然后,把U盘上的git版本库作为远程分支加到本地的git版本库中。我这里使用"flash"作为远程版分支的名字,你可以使用任何你喜欢的名字:
git remote add flash /media/flash/project.git
到这里如果你立刻push,可能会出现错误。因为fat文件系统格式在文件上并不支持可执行标记,所以所有的hook都是自动激活状态的。因为我将来并不打算使用这些hook,所以我直接删除掉所有的hook,这样做可能会产生错误,但是对我来说并没有出错。所以使用如下命令删除所有的hook:
rm /media/flash/project.git/hooks/*
然后push你的当前工作目录内容到U盘:
git push flash
此命令会复制你所有提交了的工作到U盘,即使你还没有使用"git-svn dcommit"命令push到远程的svn服务器。你还可以指定提交分支:
git push flash mybranch
现在,假设你转换到另外一个电脑上工作,插入上面的那个U盘,我们这里假设路径和设备和上面的那台电脑一样。这里做和上面完全相同的操作来从svn上克隆版本库:
mkdir ~/project.git
cd ~/project.git
git-svn clone svn://project-server/trunk
git repack #for good measure
然后添加U盘的库作为远程库,并且pull下来所有的改变:
git remote add flash /media/flash/project.git
git pull flash master
git pull flash mybranch #if you like
当你在任意一台电脑上提交了一些改变到git,或者从svn上pull了最新的版本,都可以使用如下命令更新U盘的版本库:
git push flash
然后你可以在其他电脑上,从U盘里面pull最新的版本:
git pull flash master
如果没有在push到svn之前,先向U盘中push改变,事情就非常简单。如果你向U盘中push了一些改变,然后再向SVN服务器中push,你将需最做更多一些的工作。这是因为当你运行“git svn dcommit”来push你最新的git提交日志svn服务器的时候,删除了本地的提交日志,然后从服务器上获取回来这些日志。 这意味着git将不认识你本地的改变,因为本地改变与U盘中是一样的,而有不同的提交信息和SHA1值。但你试图push到U盘的时候,将会提示 "! [rejected] master -> master (non-fast forward)",因为老版本的提交信息还在那里。 为了解决这个问题,你需要扔掉U盘上匹配的那些改变。 如下面所示使用git reset命令, 其中HEAD~1应该是你需要扔掉的提交的个数(例如,HEAD~3将扔掉U盘上你最近的3个提交):
cd /media/flash/project.git
git --bare log #to see how many changes don't have svn information
git --bare reset HEAD~1
然后你就可以正常提交了:
cd ~/project.git
git push flash

把Git Repository建到U盘上去

前提条件 先把git给装好了…然后…我们有了两台git ready的电脑(测试时一台电脑其实也是可以的,找2个不同的目录),和一个U盘。 开始,1,初始化本地repository ...
  • xiaozaq
  • xiaozaq
  • 2016年07月14日 20:49
  • 905

保护电脑上的文件不被U盘拷贝走

首先我们要做的就是打开注册,选择开始菜单,然后选择运行选项, 在打开的运行选项对话窗口中,我们输入注册表命令,regedit, 输入注册表命令之后,单击确定按钮打开注册表编辑器, 我...
  • l1976135784
  • l1976135784
  • 2013年06月10日 21:47
  • 1621

利用FbinstTool+大白菜u盘工具,制作多系统启动U盘【转】

一般制作多系统启动盘的教程都会要用到rub4dos+grubinst+ultraiso+msgdiyerl等等工具,一大串的工具列表让人望而生畏。其实大白菜里已经对这些工具做了非常好的封装,利用大白菜...
  • Listener_ri
  • Listener_ri
  • 2014年12月15日 21:08
  • 2236

Mac上制作Linux U盘启动盘

最近干了件蠢事,在使用lvreduce缩减一个lv时,把文件系统给搞挂了。问题是这样的,之前系统的/var目录已经建立在lv上,由于没有使用resize2fs缩小文件系统的大小,就直接缩小lv的大小,...
  • scaleqiao
  • scaleqiao
  • 2015年06月04日 10:01
  • 3691

在一台电脑上使用多个git账号

步骤一:用ssh-keygen命令生成一组新的id_rsa_new和id_rsa_new.pub。  ? 1 ssh-keygen -t rs...
  • Jensen2015
  • Jensen2015
  • 2015年09月07日 13:00
  • 278

程序员修电脑必备: 使用Grub2制作一个多系统(WinPE与Linux, Android X86)启动的维护移动硬盘和U盘

说明 多台计算机安装了不同的系统(Windows, Linux, MacOS), 因为种种因素不得不对系统重新安装, 每一次都是重新制作启动和维护移动存储设备, 为了节省时间, 考虑制作一个即可启动和...
  • sy373466062
  • sy373466062
  • 2017年02月13日 18:46
  • 1948

怎么使用启动U盘给电脑装系统呢?——————【Badboy】

【以下经验】  怎么使用启动U盘给电脑ghost系统呢?安装ghost系统的步骤方法复杂吗?有些不懂安装系统的朋友会认为安装ghost系统非常复杂,一直都学不好。下面就看看小编为大家分享的ghost系...
  • qq_19522245
  • qq_19522245
  • 2014年08月15日 14:29
  • 522

Windows下Git多账号配置,同一电脑多个ssh-key的管理

本文以配置github.com账号和git.oschina.net账号来逐步演示在Windows环境下配置Git多账号支持即在同一个电脑上管理多个ssh-key,对git多一分了解。 备注:这篇...
  • u010688587
  • u010688587
  • 2016年08月17日 13:56
  • 1159

在同一台电脑上配置多个git账号

最近项目需要在同一台电脑上配置多个git账号,记录下具体配置过程。 主要包括以下两种情况 1:配置多个不同主机的git账号 假设是配置一个是oschina下的A账号,另一个是github的B账号...
  • hu_feng903
  • hu_feng903
  • 2016年07月12日 22:25
  • 2403

Windows下Git多账号配置,同一电脑多个ssh-key的管理

转载自:https://www.cnblogs.com/popfisher/p/5731232.html 这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展...
  • ayang1986
  • ayang1986
  • 2017年11月23日 15:18
  • 157
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用U盘和git在多个电脑上共享工作
举报原因:
原因补充:

(最多只允许输入30个字)