我对 Git 还很陌生,如果我听起来像个菜鸟,我很抱歉。
我最初运行了以下命令:
git clone https://github.com/userx/projecty.git
Run Code Online (Sandbox Code Playgroud)
我一直在我的工作站上进行更改,但都没有上传。github 上有一个已更新的文件,我想将其同步到我的工作站:
https://github.com/userx/projecty/blob/master/whatever/whatever.py
Run Code Online (Sandbox Code Playgroud)
我在本地对其进行了一些修改,但它们可以/应该被覆盖。我只希望在我的工作站上刷新一个文件,而不触及我所做的任何其他操作。任何关于如何做到这一点的想法将不胜感激。
谢谢!
假设您只想覆盖工作副本中该文件的内容(以便它将在 的输出中显示为“已修改” git status,那么您可以这样做:
使用 更新本地存储库的远程跟踪分支git fetch。这不会修改任何本地分支,也不会修改您的工作副本:
git fetch --all
用于git show从远程分支获取文件的副本,并通过重定向标准输出将其写入磁盘:
git show origin/master:whatever/whatever.py > whatever/whatever.py
通过指定origin/master您要从远程跟踪分支复制文件,这将是该文件截至git fetch. 当然,您可以重定向标准输出以覆盖现有文件(如上所示),或将输出写入其他地方。
该git show命令也接受其他格式:请参阅 中的“指定修订版本” man gitrevisions。
请注意,正如 @bluefeet 在他们的答案中评论的那样,如果您将此文件提交到本地分支,并且您的本地分支打算稍后与远程主分支合并,那么您本地复制的文件将与whatever/whatever.py远程的更改发生冲突跟踪分支。因此,一般来说,您只会将其作为测试某些内容的临时措施,或者如果您无意稍后将本地分支与远程主分支合并。
| 归档时间: |
|
| 查看次数: |
10902 次 |
| 最近记录: |