簡體   English   中英

`git checkout [other-branch] path-to-file` 不會覆蓋當前分支上的文件

[英]`git checkout [other-branch] path-to-file` does not overwrite file on current branch

我正在嘗試從不同的分支簽出文件。

我正在使用命令

git checkout 其他分支路徑到文件

例如:

git checkout hiresnetworkbug Leaflet-Localized/SpeciesViewController.*

但是,這對我當前分支上的文件沒有任何影響。 我試圖用 -f 選項強制它,但這沒有用。

您顯示的命令對我有用。 所做的更改已簽出並添加到我當前的索引中,可以提交了。 我唯一的問題是,通配符只能拾取已經存在的文件,因為它是由Shell而不是Git擴展的。

因此,在一個假設的情況下,分支dev.featureA修改了src/a.pysrc/b.py ,並創建了新文件src/c.py

git checkout dev.featureA src/*.py

給了我src/a.pysrc/b.py修改並准備提交。

我也必須做

git checkout dev.featureA src/c.py

獲取src/c.py並准備提交。

罪魁禍首可能是通配符。 它甚至在 git 可執行文件啟動之前由您的 shell 擴展。 嘗試引用您的路徑(雙引號和單引號都應該有效;Windows 需要雙引號):

git checkout hiresnetworkbug -- 'Leaflet-Localized/SpeciesViewController.*'

這將更新工作樹索引中的文件 運行git diff不會顯示任何差異。 git diff --cached will 和git status也將顯示文件已修改並暫存以進行提交。

暫無
暫無

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

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