我现在有个文件是a.js 但是本电脑上的a.js不是最新版,我想把他更新为最新版(不和我的这个版本合并,想得到纯粹的最新版)
学习是最好的投资!
我来给个靠谱的答案吧,采纳答案也没有错只不过不太切题,既没有针对特定文件操作,也没有使用 IDE。
由于我没有 PHP Storm,所以用它的大哥 IntelliJ IDEA 来举例。
其实你没有必要删除本地文件再去获取最新版本,你要做的是:“通过历史记录更新指定文件的任意版本”,这其中当然也包括最新版本。那么有一个前提是你已经获取了最新的历史记录,也就是 git fetch,对应的 IDE 操作是:
git fetch
接着我们来看如何对指定文件进行版本更新。
第一步,查看目标文件历史记录
第二步,找到你要的版本(无论是新版本还是旧版本都一样)
另外,在此时你可以对文件内容进行比对,有助于精确定位你要的版本,如下图(右键菜单里有 Compare...)
最后,使用 Get 菜单项获取指定版本,其对应的命令是 git checkout
git checkout
如上所述,IDE 里的集成操作还是很方便的,胜过命令行的方面就是图形化指示相当清晰。但是——命令行更快,更灵活,只要你脑子够清楚,还是命令行的效率更高一筹。
其实若流程顺畅,一半是较少针对特定文件去获取特定版本的。多数情况下我们都是 git pull -> 干活 -> commit -> 干活 -> commit ... -> git pull (maybe 解决冲突) -> git push,每一次你 git pull 的时候,都等于拿到了所有文件的最新版本(等价于 git fetch + git merge/rebase),所以上述操作往往都是为了回退版本而不是拿到最新版本,除非你就是不想要所有版本都更新,那么我这个答案就是你需要的。
git pull
git push
git merge/rebase
你说的提交指的commit还是push? 如果仅仅删除某个文件的话,直接删除就好了, 如果是回退commit,则用revert到你要更新前的版本,然后再次pull就可以
跟PhpStorm没啥关系,就是git基础操作。 本地删掉a文件,再把远程的pull下来。
删a.jsrm -rf a.js 更新本地git add .git commit -m "deleted a.js" 合并远程git fetchgit checkout origin/master a.js
rm -rf a.js
git add .
git commit -m "deleted a.js"
git checkout origin/master a.js
origin是远程名 master是远程分支
其实不用woody的那么复杂吧?? 直接git checkout a.js就可以了
git checkout a.js
我来给个靠谱的答案吧,采纳答案也没有错只不过不太切题,既没有针对特定文件操作,也没有使用 IDE。
由于我没有 PHP Storm,所以用它的大哥 IntelliJ IDEA 来举例。
其实你没有必要删除本地文件再去获取最新版本,你要做的是:“通过历史记录更新指定文件的任意版本”,这其中当然也包括最新版本。那么有一个前提是你已经获取了最新的历史记录,也就是
git fetch
,对应的 IDE 操作是:接着我们来看如何对指定文件进行版本更新。
第一步,查看目标文件历史记录
第二步,找到你要的版本(无论是新版本还是旧版本都一样)
最后,使用 Get 菜单项获取指定版本,其对应的命令是
git checkout
如上所述,IDE 里的集成操作还是很方便的,胜过命令行的方面就是图形化指示相当清晰。但是——命令行更快,更灵活,只要你脑子够清楚,还是命令行的效率更高一筹。
其实若流程顺畅,一半是较少针对特定文件去获取特定版本的。多数情况下我们都是
git pull
-> 干活 -> commit -> 干活 -> commit ... ->git pull
(maybe 解决冲突) ->git push
,每一次你git pull
的时候,都等于拿到了所有文件的最新版本(等价于git fetch
+git merge/rebase
),所以上述操作往往都是为了回退版本而不是拿到最新版本,除非你就是不想要所有版本都更新,那么我这个答案就是你需要的。你说的提交指的commit还是push?
如果仅仅删除某个文件的话,直接删除就好了,
如果是回退commit,则用revert到你要更新前的版本,然后再次pull就可以
跟PhpStorm没啥关系,就是git基础操作。
本地删掉a文件,再把远程的pull下来。
删a.js
rm -rf a.js
更新本地
git add .
git commit -m "deleted a.js"
合并远程
git fetch
git checkout origin/master a.js
origin是远程名
master是远程分支
其实不用woody的那么复杂吧??
直接
git checkout a.js
就可以了