2013-02-01 64 views
4

是否有可能以某種方式建立一個git存儲庫,作爲一個平常的工作 - 鏡像拉進去,但沒有強迫時推動它到另一個回購?沒有強制推Git鏡像

+0

http://superuser.com/questions/276079/disable-specific-git-commands-in-a-particular-repository - 可能爲你工作? – sjakubowski

+0

什麼是 - 推鏡頭,你想推?如果你正在尋找標籤和遙控器,你應該能夠通過refspec推送這些標籤和遙控器。 – andygavin

回答

3

我想做一個git push --mirror,如果需要進行非快速轉發更新,將會失敗。

一個git推如果上游回購具有其配置設置爲receive.denyNonFastForwards true --mirror應失敗:

git config man page

receive.denyNonFastForwards 

如果設置爲truegit-receive-pack將拒絕一個裁判更新不是快進。
即使推送被強制,也可以通過推送使用此選項來阻止此類更新,即
初始化共享存儲庫時會設置此配置變量。

這意味着你不會告發「噸要‘重現什麼--mirror’呢:你可以簡單地使用它,還有如果任何非快進合併涉及的是推失敗

+0

這是一個好主意;不幸的是,我想以這種方式推向github,這不支持這一點。 – miracle2k

+1

@ miracle2k它可以,如果你要求GitHub支持以這種方式保護你的回購。 – VonC

+0

@ miracle2k更多詳細信息,請參閱http://stackoverflow.com/a/13016552/6309 – VonC

0

有也許方式重現什麼--mirror不與其他選項

有些什麼鏡子也可以使用一些推的情況下進行:

git push <remote> --all # push all branches 
git push <remote> --tags # push all tags 
git push <remote> refs/remotes/* #push the remote refs 
3

你可以只添加--no力禁用,像這樣的強迫行爲:

git push --mirror --no-force 

這將禁用非快速向前更新(使用Git 1.8.0.2測試)。

+0

在'1.8.4'中沒有看到這種行爲,也沒有在'git-push'手冊頁中記錄'--no-force' 。另外,在'1.8.0.2'和'1.8.4'之間的版本說明中沒有提到刪除'--no-force'選項。 – bloudermilk

+0

有趣的是,如果遠程在本地配置中將「mirror」選項設置爲true,那麼--no-force選項不起作用。一旦我從配置中刪除了「鏡像」選項並從命令行設置了「--mirror」,如上所示,一切都按照廣告方式工作。我的git版本是'1.8.4'。 – bloudermilk