我現在有個檔案是a.js 但是本電腦上的a.js不是最新版,我想把他更新為最新版(不和我的這個版本合併,想得到純粹的最新版)
伊谢尔伦2017-04-24 09:14:58
我來給個可靠的答案吧,採納答案也沒有錯只不過不太切題,既沒有針對特定文件操作,也沒有使用 IDE。
由於我沒有 PHP Storm,所以用它的大哥 IntelliJ IDEA 來舉例。
其實你沒有必要刪除本地文件再去獲取最新版本,你要做的是:“通過歷史記錄更新指定文件的任意版本”,這其中當然也包括最新版本。那麼有一個前提是你已經取得了最新的歷史記錄,也就是 git fetch
,對應的 IDE 操作是:
接著我們來看如何對指定檔案進行版本更新。
第一步,查看目標檔案歷史記錄
第二步,找到你要的版本(無論是新版本還是舊版本都一樣)
另外,在此時你可以對文件內容進行比對,有助於精確定位你要的版本,如下圖(右鍵選單裡有 Compare...)
最後,使用 Get 選單項目取得指定版本,其對應的指令為 git checkout
如上所述,IDE 裡的整合操作還是很方便的,勝過命令列的方面就是圖形化指示相當清晰。但是——命令列更快,更靈活,只要你腦子夠清楚,還是命令列的效率更高一籌。
其實若流程順暢,一半是較少針對特定文件去取得特定版本的。多數情況下我們都是git pull
-> 工作-> commit -> 工作-> commit ... -> git pull
(maybe 解決衝突) -> git push
,每次你git pull
的時候,等於拿到了所有檔案的最新版本(等價於git pull
-> 干活 -> commit -> 干活 -> commit ... -> git pull
(maybe 解决冲突) -> git push
,每一次你 git pull
的时候,都等于拿到了所有文件的最新版本(等价于 git fetch
+ git merge/rebase
+ git merge/rebase
),所以上述操作往往都是為了回退版本而不是拿到最新版本,除非你就是不要所有版本都更新,那麼我這個答案就是你需要的。
阿神2017-04-24 09:14:58
你說的提交指的commit還是push?
如果只刪除某個檔案的話,直接刪除就好了,
如果是回退commit,則用revert到要更新前的版本,然後再pull就可以
怪我咯2017-04-24 09:14:58
跟PhpStorm沒啥關係,就是git基礎操作。
本地刪掉a文件,再把遠端的pull下來。
刪a.jsrm -rf a.js
更新本地git add .
git add .
git commit -m "deleted a.js"
git commit -m "deleted a.js"
合併遠端git fetch
git fetch
git checkout origin/master a.js
git checkout origin/master a.js
origin是遠端名稱
master是遠端分支