2016-12-06 60 views
0

如果這是一個愚蠢的問題,請踢我,但我需要衆包的經驗。如何在兩個不同來源的同一個存儲庫上創建兩個Git分支?

我有兩個不同的服務器上的代碼 - 基本上是相同應用程序的生產和開發源,但不完全相同,並沒有相同的歷史 - 我從編碼標準/實踐的人繼承基本不存在。我爲生產代碼(master分支)創建了一個Git倉庫並上傳了一切。快樂的日子,美好的時光,一切都很好。

現在我想添加開發代碼(從開發服務器)到同一個存儲庫,但作爲一個單獨的分支。我已閱讀git checkout --orphan <branch>,似乎這可能是我的選擇,但我不確定。我是否將當前回購庫的遠程(主分支已提交,更新等)添加到我在開發服務器上初始化的「新」git回購庫,檢出一個孤立分支,然後只需git add -all並推送回購?以任何方式將現有混亂中的origin與dev服務器上的文件相加?

我對Git很滿意,但從未遇到過這個問題,我的Google-foo讓我失望了。

您的幫助/鄙視將不勝感激。

+0

'git branch'沒有'--orphan';你的意思是'git checkout --orphan'?在任何情況下,'--orphan'只是部分關於分支*名稱*(在它必須是的範圍內),主要是關於Git添加下一個* new * commit的方式。如果您打算「融合」兩個獨立的存儲庫,「--orphan」是無用的。當你從現有的倉庫提交git fetch時,你會得到那些提交。提交*是*歷史記錄(它們不具有*歷史記錄,它們* *歷史記錄),並且您現在不提交* new *提交,而只是從另一個Git中檢索現有歷史記錄。 – torek

回答

2

是的,您可以使用git checkout --orphan dev來實現它,然後使用git add .git push

而且,還有另一種方式,爲您的信息(創建用於開發代碼Dev分支dev的回購,然後把它推到生產回購):

  1. 創建用於開發一個混帳回購協議代碼(develop分支)在生產回購
  2. 擊,添加dev的回購爲遠程,使用git remote add -f origin2 <URL for dev repo>
  3. git checkout origin2/dev
  4. git checkout –b dev
  5. git push origin dev
+0

我覺得自己像沒有想到那樣愚蠢的笨蛋。謝謝@ marina-msft – Francois

+0

對於您建議的另一種方式,這是將文件夾合併到現有回購的新分支中的更簡潔的方式。 – Tyler

0

因此,據我所知,你有一個分支有生產代碼(主分支)。現在,您想要將開發代碼添加到同一個存儲庫中。如果您使用--orphan,那麼第一次提交將會有一個全新的歷史記錄,並且不會與您在主分支上的任何提交相關聯。你仍然可以繼續這個,但它可能會讓人困惑。

我會建議只在您的回購中創建一個新的分支,並將開發代碼添加到該分支。它仍然存在於您的存儲庫中,但也與主分支分離。這應該使事情組織起來。

相關問題