[英]Handling line endings for git
這是我到目前為止搞砸了,
我將一個rails項目從windows復制(未克隆)到linux pc
然后創建了一個新分支並進行了大量更改
最后提交了兩次整個項目並將其推送到具有Windows行結尾的遠程存儲庫。
問題:所以我的問題是,因為我將項目從windows復制到linux,當我運行git status時整個項目顯示已修改。 我沒有看到我具體做出的改變。 由於我承諾並推動整個項目,我失去了文件更改的歷史。
需要什么:所以我想刪除我的最后兩個提交,但我想保留我所做的更改。 然后我想將行結尾從windows轉換為整個項目的unix,這樣當我運行git status時,我只看到我更改的文件,而不是整個項目。 然后我想提交並推送到遠程。
如果有這個混亂的解決方案將是很好的。
我不確定這是否有用,我正在開發一個rails項目,我的IDE是rubymine。
要撤消最后兩次提交,請運行以下命令:
git reset --soft HEAD~2
。 這會將提交中涉及的文件放入您的工作目錄中。 git status
,它們將顯示為階段性更改(准備提交)。 git pull
。 git push
確保你提交你的更改並在git push
之前執行git pull
,否則你的推送嘗試將導致沖突並被拒絕。
你可以使用git filter-branch
。 類似的問題在這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.