簡體   English   中英

Git:更新文件夾(拉還是取?),保留本地更改(不覆蓋)

[英]Git: Update folder (pull or fetch?) keeping local changes (without overwriting)

我想要一種更簡便的方法來將文件夾更新為樹中的最新更改,但保留所有沖突版本。

我已經可以使用以下三種方法完成此操作。

方法A:

  • A1。 隱藏更改,包括未跟蹤的文件
  • A2。
  • A3。 藏匿流行
  • A4。 檢查存儲彈出錯誤消息以刪除未跟蹤的文件,以便存儲彈出可以覆蓋
  • A5。 藏匿再次流行
  • A6-N。 經歷每個沖突,告訴git使用我的副本並將沖突標記為已解決

方法B:

  • B1。 隱藏更改而沒有未跟蹤的文件
  • B2。
  • B3。 查看拉出錯誤日志,找出哪些未跟蹤的文件將被覆蓋以臨時重命名它們
  • B4。 再次拉
  • B5-N。 經歷每個沖突,告訴git使用我的副本並將沖突標記為已解決
  • BN + 1-N + X。 遍歷以前臨時重命名的每個文件,刪除舊文件,然后將臨時文件重命名回原始名稱

方法C:

  • C1。 將存儲庫克隆到新文件夾中
  • C2。 刪除所有文件和文件夾
  • C3。 從工作目錄復制或移動所有文件和文件夾

就時間而言,方法C是最快的。 但是,這似乎不是使用git的正確方法。 請告訴我,我可以運行一個簡單的命令來完成此操作!

謝謝!

我建議這樣做:

git pull --rebase --autostash

然后只需解決沖突,直到“ git status”看起來很高興(並且您的單元測試通過!)。

更多信息在這里(博客文章): git pull --rebase太多了

這是另一個想法:

方法D

  • 提交樹中的所有內容作為新提交。

  • git pull --rebase -X theirs

  • git reset --soft HEAD~1

rebase上的“ -X他們的”使它更喜歡您遇到沖突的大塊的版本。與常規合並相比,“他們/我們的”策略在重新定基時會被顛倒,因此盡管“我們的”是您想要保留的東西。

簡單地完成臨時工作呢?

然后,您可以簡單地做: git pull --strategy-option ours

暫無
暫無

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

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