我有一个repo,它是github repo的裸克隆:
git clone --bare git@github.com:PabloSerbo/maiden.git
许多开发人员克隆该回购并推回它。
另一位开发人员直接致力于github repo。
我想知道如何将github上的更改恢复到其他开发人员可以使用的裸仓库中。
我试过了:
git fetch origin
这似乎取决于:
remotes/origin/master
但是我无法让当地人知道改变。
我能找到的最接近的问题是:
这表明镜像,但我想知道是否有办法在不需要镜像的情况下实现这一点。
答案 0 :(得分:4)
自己克隆裸仓库。这将有源于此。现在将github repo添加为'github'remote。您现在可以从github获取分支和标记,然后将它们推送到原点。
git fetch github
git push origin github/yourbranchname:yourbranchname
希望这有帮助。
答案 1 :(得分:1)
这种方法对我有用:
git fetch origin master:master
然后
git update-server-info (I am using http to access bare repository, not sure that it has sense if you use another type ot transport )
但它只更新master分支。我仍然不知道如何更新所有分支
答案 2 :(得分:0)
我发现对裸/镜像回购执行git remote update
也是必要的。否则HEAD和主人就落后了。在验证提取的提交是否正常后,通常需要先移动HEAD。
marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git fetch geekisp
carnicer@login.geekisp.com's password:
remote: Counting objects: 19, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 14 (delta 10), reused 0 (delta 0)
Unpacking objects: 100% (14/14), done.
From login.geekisp.com:marc/tecsidel/git/mix/mIST_SE
* [new branch] master -> geekisp/master
marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git lol
* 835bede (geekisp/master) dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 (HEAD, master) v2.0.10
* 51c984e v2.0.8 : show CC in report (bugfix)
在执行提取之前,HEAD和master指向同一个提交。为了使它们指向最新的提交,有必要进行远程更新:
marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git remote update geekisp
Fetching geekisp
carnicer@login.geekisp.com's password:
marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git lol
* 835bede (HEAD, geekisp/master, master) dont crash
* 6de0db7 v2.0.11
现在所有引用(HEAD,master)都指向最新的提交。
编辑/升级:
在愉快地写下我的答案之后,我发现我的解决方案没有 工作了。我试着在另一台电脑上做同样的事情。
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git fetch geekisp
carnicer@login.geekisp.com's password:
Fetching geekisp
remote: Counting objects: 20, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 14 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (14/14), done.
From login.geekisp.com:marc/tecsidel/git/mix/mIST_SE
835bede..4e2e92e master -> geekisp/master
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git lol
* 4e2e92e (geekisp/master, geekisp/HEAD) best search type, finds something
* d16406a start to see search types for sweden
* 9809ccd v2.0.12
* 835bede dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 (HEAD, master) v2.0.10
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git remote update geekisp
carnicer@login.geekisp.com's password:
Fetching geekisp
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$
我被困在这里了。 HEAD和主人没有指着 按预期最新提交。
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git lol
* 4e2e92e (geekisp/master, geekisp/HEAD) best search type, finds something
* d16406a start to see search types for sweden
* 9809ccd v2.0.12
* 835bede dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 (HEAD, master) v2.0.10
看起来我的解决方案无效。谷歌搜索后我找到了解决方案。
fetch命令似乎还需要 refspec ,例如 master:master 就我而言。
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git fetch geekisp master:master
carnicer@login.geekisp.com's password:
From login.geekisp.com:marc/tecsidel/git/mix/mIST_SE
a08ca13..4e2e92e master -> master
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git lol
* 4e2e92e (HEAD, geekisp/master, geekisp/HEAD, master) best search type, finds somet
* d16406a start to see search types for sweden
* 9809ccd v2.0.12
* 835bede dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 v2.0.10
* 51c984e v2.0.8 : show CC in report (bugfix)
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$
所以这似乎就是它。