如何处理这个简单的设置?
我尝试过以下方式:我有一个克隆体,它“知道”两个仓库,并存在于便携式硬盘上。
假设某人在“工作”上创建了一个新分支,并且我想将其传输到“家庭”仓库中。如何操作呢?
如果只执行
git pull
,我会在我的克隆体上得到以下结果:$ git branch --list --all
*master
origin/HEAD -> origin/master
origin/bugfix_component_condition_destruction_fail
origin/master
origin/remove_stoplist_copy_and_erase
问:这是否仅意味着我的本地克隆“知道”某处有这些列出的分支,而除了名为“主”的本地现有分支之外,我的克隆上没有真正的数据?
将主分支推送/拉取到两个存储库很容易。但是其他分支似乎在我的本地克隆中不存在。我必须将每个远程分支跟踪到我的克隆的本地分支,然后将其转移到另一个存储库吗?
问:是否有任何典型的方法来处理两个存储库,以使它们在提交将被推送到两个存储库时保持同步?
问:是否有技巧可以获取所有远程分支的信息和内容。
对于我来说,“克隆”存储库的含义有点神秘?它似乎不是真正的克隆,而只是一些元数据和主分支。这是正确的吗?
编辑:
如果我启动gitk --all
,我会看到在该分支中进行的所有更改。这看起来分支的内容在克隆中。
但是如果我执行:
$git checkout -b remove_stoplist_copy_and_erase --track remotes/origin/remove_stoplist_copy_and_erase
error: Not tracking: ambiguous information for ref refs/remotes/origin/remove_stoplist_copy_and_erase
Switched to a new branch 'remove_stoplist_copy_and_erase'
所以我就这样做了:
$git checkout origin/remove_stoplist_copy_and_erase
$git checkout -b remove_stoplist_copy_and_erase
现在推送它:
$git push --set-upstream ex remove_stoplist_copy_and_erase
我担心必须为两个远程分支手动执行所有操作,以使它们保持同步。是否有一些“最佳实践”来完成这项工作?
git fetch --all
,那么如何处理克隆(clone)呢?请查看我在问题中的编辑。你提供给 A2 的信息并不是很有帮助。“有几种方法”并不是回答如何做某事的问题。一种方法会对我有所帮助 :-) 在你的回答之前,我们已经知道有一种方法可以解决这个问题! - Klausgit fetch --all
和git push --all
命令。如果只针对特定分支,可以使用git fetch <remote/branch>
或者git push <remote/branch>
命令。 - TriskalJMgit fetch --all
会查找所有仓库。但我一次只能访问一个仓库。 - Klaus