簡體   English   中英

處理git的行結尾

[英]Handling line endings for git

這是我到目前為止搞砸了,

  1. 我將一個rails項目從windows復制(未克隆)到linux pc

  2. 然后創建了一個新分支並進行了大量更改

  3. 最后提交了兩次整個項目並將其推送到具有Windows行結尾的遠程存儲庫。

問題:所以我的問題是,因為我將項目從windows復制到linux,當我運行git status時整個項目顯示已修改。 我沒有看到我具體做出的改變。 由於我承諾並推動整個項目,我失去了文件更改的歷史。

需要什么:所以我想刪除我的最后兩個提交,但我想保留我所做的更改。 然后我想將行結尾從windows轉換為整個項目的unix,這樣當我運行git status時,我只看到我更改的文件,而不是整個項目。 然后我想提交並推送到遠程。

如果有這個混亂的解決方案將是很好的。

我不確定這是否有用,我正在開發一個rails項目,我的IDE是rubymine。

要撤消最后兩次提交,請運行以下命令:

  1. git reset --soft HEAD~2 這會將提交中涉及的文件放入您的工作目錄中。
  2. 運行git status ,它們將顯示為階段性更改(准備提交)。
  3. 編輯您的文件。
  4. 分階段並提交您的更改。 重要提示:不要推
  5. 運行git pull
  6. 運行git push

確保你提交你的更改並在git push之前執行git pull ,否則你的推送嘗試將導致沖突並被拒絕。

你可以使用git filter-branch 類似的問題在這里

暫無
暫無

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

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