簡體   English   中英

從兩個現有存儲庫創建一個git bare repo

[英]Create a git bare repo from two existing repository

我正在與另一個程序員開發代碼。 從一開始我不得不在不修改現有代碼的情況下添加新模塊,我復制了另一個程序員的源代碼,我開始開發我的。 由於我總是使用git,因此我設置了一個git存儲庫並執行了一些提交。

現在另一個程序員修改了部分代碼,我還必須修改一些我不應該在開頭修改的部分。 現在情況如下:

  • 我有一個本地git倉庫與修改過的文件和新文件
  • 另一個程序員有一個文件夾(沒有git)和修改過的文件

我們想合並我們的修改並開始使用git。 我嘗試使用他的代碼作為起始點在共享文件夾中創建一個裸git --bare (即git --bare在他之前未跟蹤的文件夾中)。 然后我使用git remote add origin /path/to/local/bare/repo將這個repo添加到我的遠程命令中。 然后我嘗試用push origin master推送我的更改(可能包含沖突),但我發現以下消息:

Everything up-to-date

但是,如果我查看我的源代碼和裸倉庫中的源代碼,我的更改就不存在了。

我如何將兩個代碼(一個沒有git,另一個用git跟蹤)放到同一個裸存儲庫中以啟動共享版本控制?

你可能會從@VonC或@torek那里得到一個精彩的答案,但是我可以從你的Git版本代碼中創建一個新的分支,然后將其用於合並。 在這個新分支中,您可以使用您的朋友修改過的文件覆蓋您的文件。 因此,如果您當前的分支是master分支,則可以執行以下步驟:

git checkout master                     # switch to 'master' branch
git checkout -b merge_branch            # create 'merge_branch' from 'master'
cp -r /path/to/friend/ /path/to/you/    # copy friend's files into merge branch
git commit -m 'changes from friend'     # commit this friend's work
git checkout master                     # back to the 'master' branch
git merge merge_branch                  # merge with friend's work

你現在可能會遇到很多沖突,但至少可以在Git中處理。 我還應該提一下,只有當你的朋友擁有相同或幾乎相同的項目文件結構時,這才有效。 如果您的朋友的文件位於不同的位置,或稱為不同的東西,那么這種方法將無效。

第1步:假設你的朋友做了git init --bare打算創建一個裸git init --bare 在此處復制朋友的更改。 此目錄在此處充當共享中央存儲。

第2步:一旦確定步驟1是否完成,請在完成本地提交后執行以下操作:

1. git pull origin <branch>  --> At this point you must see if there are new files/changes
2. git merge <branch>   --> At this point you must see conflicts and modifications
3. git push origin <branch>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM