在机器之间复制git本地分支?

gct*_*gct 14 git

好的,所以我在两台机器上跟踪远程仓库,因此两者都有主分支.我还在笔记本电脑上创建了一个名为development的本地分支.有没有办法让我将本地分支复制到我的台式计算机上?我会使用我的笔记本电脑,但出于某种原因我遇到了gdb和emacs的麻烦......

编辑:这对我有用

git remote add laptop [username]@hostname:/path/to/repo
git fetch laptop
git checkout --track -b development laptop/development
git pull
Run Code Online (Sandbox Code Playgroud)

Jak*_*ski 11

让我们假设您在"桌面"计算机上的存储库和"笔记本电脑"计算机上的存储库都设置为可以从"笔记本电脑"获取"桌面",反之亦然(例如通过SSH或通过git://协议,即通过git) -daemon,或者可能通过简单的HTTP).

"桌面"和"笔记本电脑"机器都有"主"分支,另外"笔记本电脑"机器也有"开发"分支.

首先使用git remote设置远程快捷方式和远程跟踪分支:

desktop$ git remote add laptop user@laptop:/path/to/repo

这将设置远程命名的"笔记本电脑"和远程跟踪分支:'laptop/master'(或更准确的'refs/remotes/laptop/master'),它跟随'laptop'上的分支'master'和'laptop'/development'跟随'笔记本电脑'上的分支'发展'.

然后你需要在'桌面'上创建本地分支 '开发',它将跟踪(跟踪)远程跟踪分支'laptop/development'(因为你无法在远程跟踪分支上开发):

desktop$ git checkout -b development --track laptop/development

或者只是简单地说(用现代的git)

desktop$ git checkout --track laptop/development

有关详细信息,请参阅git-branch联机帮助页.

这个设置允许在'桌面'上的分支'开发'时使用简单的"git pull",git会自动将'laptop'中存储库的所有更改提取到'laptop/master'和'laptop/development'远程跟踪分支,然后尝试将'laptop/development'合并到'development'(当前分支) - 这通常会导致快进,即简单地移动'开发'分支.

然后你可以在'笔记本电脑'上创建类似的设置(虽然在'笔记本电脑'上设置现有的分支'开发'来跟踪'桌面/开发'可能需要直接编辑配置文件或通过"git config").