我有一些部署脚本可以自动将存储库克隆到本地目录.不幸的是,我还没有找到一个处理更新的好方法,所以我只是事先清除了本地目录.这显然非常浪费.
理想情况下,我想要一系列命令,这些命令将保证特定的本地目录成为指定仓库/分支的副本,并且需要最少量的数据传输.因此,如果dir已经在正确的repo/branch上,它将只是更新它.如果它在正确的仓库,而不是正确的分支,它将只切换到新的分支.
我确信有一种方法可以通过检查.git中的一些文件并根据找到的内容执行特定操作来实现这一点,但我希望有一种更简单的方法.
一个重要的注意事项是,本地目录中的任何更改都可以随时丢弃.
可能有一个问题已经回答了这个问题,但我找不到合适的措辞来找到它.
$ git fetch <url> <branch> # get the most up-to-date version of that branch
# (only downloads needed objects)
$ git checkout -f FETCH_HEAD # force the working tree to match fetched branch
Run Code Online (Sandbox Code Playgroud)
请注意,这确实会将旧对象留在repo中.如果您想要不可逆转地删除未引用的对象并清理存储库,则可以运行
$ git reflog expire --expire=now --all
$ git gc --prune=now
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
317 次 |
| 最近记录: |