我們有兩個git軟件庫a
和b
。兩者都是本地存儲庫。我如何推回購b
回購a
和回購a
回購b
?如何安全地推送到本地git存儲庫?
# remove and create new '/tmp/repos'
rm -rf /tmp/repos
mkdir -p /tmp/repos
# create (init) and config repo 'a'
git init /tmp/repos/a
git -C /tmp/repos/a config user.email "[email protected]"
git -C /tmp/repos/a config user.name "name_a"
# clone and config repo 'a' to repo 'b'
git clone /tmp/repos/a /tmp/repos/b
git -C /tmp/repos/b config user.email "[email protected]"
git -C /tmp/repos/b config user.name "name_b"
# create file './text.txt' in repo 'b', add it, and commit it
echo "first line" > /tmp/repos/b/test.txt
git -C /tmp/repos/b add ./test.txt
git -C /tmp/repos/b commit ./test.txt -m "add first line"
我到目前爲止已經試過是設置a
爲純倉庫,從推到b
a
,並重置a
到非純倉庫:
git -C /tmp/repos/a config --bool core.bare true
git -C /tmp/repos/b push origin master
git -C /tmp/repos/a config --bool core.bare false
但這不是一個解決方案,因爲這兩個存儲庫必須有一個工作目錄,我們不能依賴於其他存儲庫的狀態。
請注意,我希望從回購b
推回購買a
(或類似的東西)。我知道我可以從回購a
拉回購b
。但這是而不是我所需要的。
git -C /tmp/repos/a pull /tmp/repos/b
順便說一句,目前我們正在使用中間本地回購c
。 我們正在尋找一種方法來避免這樣的第三個(公共)存儲庫。 沒有中央存儲庫的實際分佈類型。 我知道使用公共存儲庫是安全,健壯和簡單的。 我感興趣的是瞭解它如何在沒有它的情況下工作, 並瞭解兩個存儲庫與工作樹直接通信時的問題所在。換句話說:如果它不安全,健壯和簡單,我想真正明白爲什麼。
你的意思是像git submodule的東西? https://git-scm.com/book/en/v2/Git-Tools-Submodules – McLemore
你想做什麼?爲什麼這兩個存儲庫必須有一個工作樹?你應該考慮讓他們彼此相處嗎? – eis
@McLemore:不完全。 AFIK子模塊不打算以對稱方式工作。即A作爲B和B的子模塊作爲A的子模塊。 – wolfrevo