Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在计算机之间复制git本地分支?_Git - Fatal编程技术网

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

在计算机之间复制git本地分支?,git,Git,好的,我在两台机器上跟踪远程回购,这样两台机器都有主分支。我还在笔记本电脑上建立了一个名为“开发”的本地分支。有没有办法将本地分支复制到我的桌面计算机上?我会用我的笔记本电脑,但由于某些原因,我在gdb和emacs上遇到了问题 编辑:这对我有用 git remote add laptop [username]@hostname:/path/to/repo git fetch laptop git checkout --track -b development laptop/development

好的,我在两台机器上跟踪远程回购,这样两台机器都有主分支。我还在笔记本电脑上建立了一个名为“开发”的本地分支。有没有办法将本地分支复制到我的桌面计算机上?我会用我的笔记本电脑,但由于某些原因,我在gdb和emacs上遇到了问题

编辑:这对我有用

git remote add laptop [username]@hostname:/path/to/repo
git fetch laptop
git checkout --track -b development laptop/development
git pull

你能不能不从你的笔记本电脑上拔出远程分支?Git将采用http、ssh等多种协议。我的git语法相当生疏,但有点像

编辑:翻阅内存和手册,您可能需要首先添加新的遥控器

git remote add ssh://remotestuff/
那你可以

git checkout --track -b localBranchName remote/remoteBranch

跟踪分支

假设“桌面”计算机上的存储库和“膝上型”计算机上的存储库都设置为可以在“桌面”上从“膝上型”获取数据,反之亦然(例如,通过SSH,或通过
git://
协议,即通过git守护进程,或可能通过简单的HTTP)

“台式机”和“笔记本电脑”都有“主”分支,“笔记本电脑”还有“开发”分支

首先使用以下方法设置远程快捷方式和远程跟踪分支

桌面$git远程添加笔记本电脑user@laptop:/path/to/repo 这将设置名为“笔记本电脑”的远程分支和远程跟踪分支:“笔记本电脑/主机”(或者更准确地说是“参考/远程/笔记本电脑/主机”),其位于“笔记本电脑”上的分支“主机”之后,而“笔记本电脑/开发”位于“笔记本电脑”上的分支“开发”之后

然后,您需要在“桌面”上创建本地分支机构“开发”,它将跟随(跟踪)远程跟踪分支机构“笔记本电脑/开发”(因为您不能在远程跟踪分支机构上开发):

桌面$git签出-b开发-跟踪笔记本电脑/开发 或者干脆(使用现代git)

台式机$git结账--跟踪笔记本电脑/开发 有关详细信息,请参阅手册页

此设置允许在“桌面”上的“开发”分支上使用简单的“git pull”,git会自动将“笔记本”存储库中的所有更改提取到“笔记本电脑/主机”和“笔记本电脑/开发”远程跟踪分支中,然后尝试将“笔记本电脑/开发”合并到“开发”(当前分支)中--这通常会导致快进,即简单地移动“发展”分支


然后,您可以在“笔记本电脑”上创建类似的设置(尽管在“笔记本电脑”上设置现有分支“开发”以跟踪“桌面/开发”可能需要直接或通过“git config”编辑配置文件)。

致命:git checkout:更新路径与切换分支/forcingther不兼容,希望有人能提供比这更好的分支答案。我确实发现git语法和手册在很大程度上是难以理解的,这催生了一个巨大的git“教程”行业,所有这些都略有不同。@gct:“更新路径不兼容…”错误通常意味着当前分支中有本地更改。在签出新回购协议之前,需要删除这些变更。如果您需要保留它们,您可以
git stash
然后
git checkout
最后
git stash apply
。不需要“--track”吗?文档说“当起始点是远程分支时,此行为是默认行为”。至少在第一种情况下(使用显式“-b”启动新分支),这可能是不必要的,具体取决于
分支。autosetupmerge
(默认为true).那么,有人能解释一下,为了实现从“台式机”到“笔记本电脑”的交互拉动,需要在“笔记本电脑”上做些什么吗。需要编辑什么配置文件,或者如何使用git-config来实现这一点? desktop$ git remote add laptop user@laptop:/path/to/repo desktop$ git checkout -b development --track laptop/development desktop$ git checkout --track laptop/development