计算机之间的git存储库同步时,移动?

假设我有台式电脑和笔记本电脑,有时我在台式机上工作,有时我在笔记本电脑上工作。

什么是最简单的方式来回移动git仓库?

我希望git仓库是相同的,这样我就可以继续离开另一台计算机。

我想确保在两台计算机上都有相同的分支和标签。

感谢Johan

注:我知道如何使用SubVersion做到这一点,但我很好奇这将如何与git工作。 如果更容易,我可以使用第三台PC作为经典的服务器,两台PC可以同步。

注意:两台电脑都在运行Linux。


更新

所以,让我们尝试一下XANI的想法:在服务器上使用git repo,使用KingCrunch的push命令语法。 在这个例子中有两个客户端和一个服务器。

所以让我们先创build服务器部分。

ssh user@server mkdir -p ~/git_test/workspace cd ~/git_test/workspace git --bare init 

那么,从其他计算机之一,我试图得到克隆的副本:

 git clone user@server:~/git_test/workspace/ Initialized empty Git repository in /home/user/git_test/repo1/workspace/.git/ warning: You appear to have cloned an empty repository. 

然后进入该回购并添加一个文件:

 cd workspace/ echo "test1" > testfile1.txt git add testfile1.txt git commit testfile1.txt -m "Added file testfile1.txt" git push origin master 

现在服务器用testfile1.txt更新。

无论如何,让我们看看我们是否可以从另一台电脑获取这个文件。

 mkdir -p ~/git_test/repo2 cd ~/git_test/repo2 git clone user@server:~/git_test/workspace/ cd workspace/ git pull 

现在我们可以看到testing文件了。

在这一点上,我们可以编辑更多的内容,并再次更新服务器。

 echo "test2" >> testfile1.txt git add testfile1.txt git commit -m "Test2" git push origin master 

然后我们回到第一个客户端,做一个git pull来查看更新的文件。 现在我可以在两台计算机之间来回移动,如果我愿意的话,还可以添加三分之一。

我认为,有多种方法。 我只会描述一下,我如何处理这个问题

我有一个上网本作为一个24/7的服务器,拥有多个git-repository。 从/到那里我通过SSH推拉更改。 从外部访问我使用dyndns.org。 它工作正常,特别是因为我有两个以上的系统,需要访问一些存储库。

更新:一个小例子。 可以说我的上网本被称为“上网本”。 我在那里创build一个存储库

 $ ssh username@netbook.local $ cd ~/git $ mkdir newThing $ cd newThing $ git init --bare 

在我的桌面上,我会创build一个克隆。 也许我会添加一些文件

 $ git clone username@netbook.local:/home/username/git/newThing $ git add . $ git commit -m "Initial" $ git push origin master 

在我的便携式计算机上,我将(首先)执行相同的操作,但是对于远程访问(从局域网之外),我还将添加外部地址。

 $ git clone username@netbook.local:/home/username/git/newThing $ git remote add externalName username@mydyndns.home-ip.org:/home/username/git/newThing $ git pull externalName master 

它只是git(/ git工作stream程)的工作方式。 您可以根据需要添加尽可能多的远程存储库。 如果两个或两个以上涉及相同的“物理”存储库,则无关紧要。 你不需要一个自己的本地“服务器”,你可以使用任何公共服务器,你有ssh访问。 当然,如果你不需要从外面访问,你根本不需要公共服务器。 裸存储库也可以在桌面系统上,然后可以在本地文件系统中创build工作副本存储库。

 $ mkdir myRepo; cd myRepo $ git init --bare $ cd /path/to/myProject $ git remote add origin /path/to/myRepo $ git add .; git commit -m "Initial"; git push origin master 

这就是我如何处理这个问题的方法,而且对于我来说,它的工作方式相当不错(如果不是完美的话)

东西看: http ://progit.org/真的好书。

我会将回购从一个箱子克隆到另一个箱子,然后设置两个回购,这样我就可以从另一个箱子中取货。

将远程从origin重命名为另一个框的名称使得远程分支更易于阅读。

请注意,通过使用git fetch (而不是git push ),这对于非裸存储库可以很好地工作:

 [user@foo repo]$ git fetch -v bar [user@bar repo]$ git fetch -v foo 

最简单的方法:使用–bare创build中央仓库(所以没有签出文件,只有.git的东西),或github

“分布式”将如下所示:安装程序:

  1. 在笔记本电脑上:git remote add desktop ssh:// user @ desktop / home / user / repo / path
  2. 在桌面上:git remote add laptop ssh:// user @ laptop / home / user / repo / path同步:

git拉笔记本电脑/桌面(推非工作会非常好,因为git不会修改签出文件,当推远程repo)

或者,在pendrive上进行回购;)

如何简单地使用rsync

难道你不能只在GitHub,BitBucket或GitLab上创build一个远程仓库吗? (后两家公司提供无限的免费私人存储库)。 当您完成工作的一天,只需使用git push将您的更改git push送到远程回购。 当你回家的时候,只要把你的改动从工作中拉到你的家里。 同样,当你在家里完成,做git push ,然后当你回到工作,做git pull

那么,你可以推(拉)(通过Git)到你可能设置的服务器。 或者你可以在GitHub上存储你的回购站,并用它作为同步桥。

你可以在任何一台计算机上build立存储库,可能是桌面计算机,从笔记本电脑和自己的计算机上推拉它。