![](/img/trans.png)
[英]git checkout <branch> <file path> does not match what is on <branch>
[英]`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.py
和src/b.py
,並創建了新文件src/c.py
,
git checkout dev.featureA src/*.py
給了我src/a.py
和src/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.