亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何強制“git拉”覆蓋本地文件?

如何強制“git拉”覆蓋本地文件?

Git
白衣非少年 2019-06-06 15:32:30
如何強制“git拉”覆蓋本地文件?如何強制將本地文件覆蓋到git pull?設想如下:一個團隊成員正在修改我們正在開發的網站的模板。他們正在將一些圖像添加到圖像目錄中(但忘記了在源代碼管理下添加它們)他們將把這些圖像郵寄給我,稍后再寄給我。我在源代碼管理下添加圖像,并將它們與其他更改一起推送到GitHub他們不能從GitHub中提取更新,因為Git不想覆蓋他們的文件。這就是我遇到的錯誤:錯誤:未跟蹤的工作樹文件‘public/imag.gif’將被Merge覆蓋我怎么才能強迫Git覆蓋它們呢?這個人是一個設計師-通常我用手解決所有的沖突,所以服務器有最新的版本,他們只需要在他們的電腦上更新。
查看完整描述

3 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

重要:如果您有任何本地更改,它們將丟失。有或沒有--hard選項,任何未被推送的本地提交都將丟失。[*]

如果您有任何文件通過Git跟蹤(例如上傳用戶內容),這些文件不會受到影響。


我認為這是正確的方法:

git fetch --all

然后,你有兩個選擇:

git reset --hard origin/master

或者如果你在其他分支機構:

git reset --hard origin/<branch_name>

說明:

git fetch從遠程下載最新版本,而不嘗試合并或重基任何內容。

然后git reset將主分支重置為您剛剛獲取的內容。這個--hard選項將工作樹中的所有文件更改為與origin/master


維護當前本地提交

[*]值得注意的是,可以通過創建一個分支來維護當前的本地提交master重置前:

git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master

在此之后,所有舊的提交都將保存在new-branch-to-save-current-commits.

未提交的更改

然而,未提交的更改(甚至是階段性的)將丟失。一定要藏起來,做任何你需要的事。為此,可以運行以下操作:

git stash

然后重新應用這些未提交的更改:

git stash pop


查看完整回答
反對 回復 2019-06-06
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

試試這個:

git reset --hard HEAD
git pull

它應該能做你想做的事。


查看完整回答
反對 回復 2019-06-06
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

警告:git clean刪除所有未跟蹤的文件/目錄,但無法撤消。


有時只是clean -f幫不上忙。如果您有未跟蹤的目錄,還需要-d選項:

# WARNING: this can't be undone!

git reset --hard HEAD
git clean -f -d
git pull

警告:git clean刪除所有未跟蹤的文件/目錄,但無法撤消。

考慮使用-n (--dry-run)旗子第一。這將向您展示哪些內容將被刪除,而不實際刪除任何內容:

git clean -n -f -d

示例輸出:

Would remove untracked-file-1.txt
Would remove untracked-file-2.txt
Would remove untracked/folder
...


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 2134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號