簡體   English   中英

為什么 git 刪除文件?

[英]Why is git deleting files?

我不確定這是否可能是一個原因,但前言。 我遇到了一個問題,我無法從遠程存儲庫中提取以解決此問題,我在新文件夾git init創建了新存儲庫,並在此之后從源中提取了git remote

關於當前問題:其他開發人員已將更改合並到主分支,現在我需要將其拉到我的開發分支。 合並后,我發現從 master 分支拉取后我得到了所有新文件,但我也看到合並刪除了我在本地創建的所有新文件......

我想到了一個可能的原因,即在我創建新的 repo 並設置get remote我沒有獲得歷史記錄,我不知道為什么,但也許這是一個原因。

我究竟做錯了什么? 如何解決?

編輯

我使用GitExentions作為 UI。

與master合並后,我解決了一些沖突。

EDIT2根據@RJFalconer 在評論中的建議,最好集中精力解決來自原始存儲庫的git clone問題,但無論如何我已經做了很多不在遠程存儲庫中的更改。 因此,即使我會修復get clone問題,我也需要以某種方式將我的更改從當前存儲庫中移出。

簡短的回答是“它不會刪除文件”。 除非您明確執行reset --hardclean -f否則 git 不會刪除本地結帳中未跟蹤的文件

我在一個新文件夾git init創建了新的 repo 並設置了git remote

聽起來您已經創建了一個新的存儲庫並為第一個存儲庫添加了一個遙控器。 我認為你真正想做的是git clone第一個倉庫。

我在本地創建的所有新文件

目前尚不清楚您的意思,但聽起來您可能在存儲庫中添加了一些文件(使用git init創建的空文件),可能會提交它們。 假設您提交了它們,就好像您沒有提交並且它們不在磁盤上,現在它們無論如何都丟失了。

我的理論

您的倉庫中可能有 2 棵樹; 您添加的文件,以及來自遠程的遠程主。 你檢查了遙控器,你的文件消失了。

如果您將原始樹變基到遙控器上,那么您的文件應該會回來。 你也可以做一個 baseless 合並(baseless 因為沒有共同的父級)。

找出您的遠程名稱:
git remote -v
應該返回如下內容:
your-remote-name https://my-url/something

然后變基:
git rebase --onto master --root your-remote-name/master

如果這不起作用,請閱讀有關git reflog以返回您最近的提交以找到包含您添加的文件的提交。 (假設您不再擁有要添加的文件的副本)

暫無
暫無

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

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