![](/img/trans.png)
[英]How can I remove all files in my git repo and update/push from my local git repo?
[英]how to avoid conflict when I want to remove all files from git repo and then add new files
(編輯問題:)
我在github中有2個存儲庫,這些存儲庫是http://github.com/abc.git和http://github.com/xyz.git 。
現在,存儲庫“abc.git”是該項目的主要回購。 經過大約一個月的開發,我們發現通過制作可重復使用的代碼可以做得更好。 所以我們決定為一個可重用的通用代碼庫創建一個新的repo,即xyz.git。 所以現在我們有了
現在我們重新使用的代碼基本上是我們添加了一些新文件,刪除了一些舊文件並在xyz.git中進行了修改。 此代碼最初來自abc.git中的“我們要重寫”代碼。
到目前為止,我希望:)
現在我們有2個選項
創建一個新的repo說project.git,添加一個新的遠程倉庫,即xyz.git,並合並並從abc.git中選擇我們需要的文件。 所以在命令方面如下
現在我們使用xyz.git + README填充project.git並開始從abc.git中挑選櫻桃的辛勤工作(我想避免,我也錯過了所有舊歷史)
我認為我能做的是刪除abc.git中的所有文件並帶回xyz.git。 在代碼方面有以下方式。
git push origin master(現在abc.git沒有文件,但它有.gitmodules和.git)
git remote add xyz git@github.com:xyz.git
這是沖突開始的地方..有兩種類型的沖突(外部模塊,因為一些常見的外部模塊和一些文件)。
我想到了第三個選項,即只需執行git log -l並將其轉儲到文本文件中,然后使用一些查看器來獲取歷史記錄。
坦率地說,我只是想盡可能地保存歷史,櫻桃采摘很無聊,但它是可行的。 另一個問題是,如果您需要刪除回購,如何保存回購日志? 唯一的理由是我希望保持一個已經廢棄的回購活動是為了歷史和變化。
謝謝。
我完全猜測,因為你很難准確地說出你在做什么。 但我的猜測是你的刪除與遠程repo的更改歷史沖突。 線路在遙控器中被修改並在您的線路中被刪除。 Git不知道該怎么做,所以它把它標記為沖突。
如果我們知道你的目標是什么,我認為你的問題會更容易回答。
你的編輯使它變得更好,但很難知道你想做什么。 例如:我仍然不清楚為什么你要挑選,如果xyz是一個有效的(完全功能)進化而不是abc。
如果您想要的是合並兩個存儲庫,那么沒有歷史丟失,那么......就這樣做。 你可以在那里住兩個獨立的分支,而不會在另一個腳上留下任何標記。 例如(考慮到這兩個因為它們位於github的repo頁面之上):
$ git clone git://github.com/rails/rails.git monster
$ cd monster
$ git fetch git://github.com/madrobby/scriptaculous.git master:old
$ git branch
* master
old
$ ls
[ looks like rails ]
$ git checkout old
$ ls
[ looks like scriptaculous ]
$ git checkout master
[ looks like rails again ]
如果你想要的是合並歷史基線,即使xyz成為abc的后代,它在git filter-branch
手冊頁(搜索--parent-filter
)中具體記錄,你只想使用你的abc“old”分支作為一個嫁接點。
談到嫁接點,看起來他們可能會直接用它來做這件事,但我對這個概念並不熟悉。 請查看此討論以獲取更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.