Js Http

Response

https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API/Using_Fetch
Request() 和 fetch() 接受同样的参数。你甚至可以传入一个已存在的 request 对象来创造一个拷贝:

  1. var anotherRequest = new Request(myRequest,myInit);

因为 request 和 response bodies 只能被使用一次(译者注:这里的意思是因为设计成了 stream 的方式,所以它们只能被读取一次)。创建一个拷贝就可以再次使用 request/response 了,当然也可以使用不同的 init 参数。

注意clone() 方法也可以用于创建一个拷贝。它和上述方法一样,如果 request 或 response 的 body 已经被读取过,那么将执行失败。区别在于, clone() 出的 body 被读取不会导致原 body 被标记为已读取。

Response 对象为请求返回的内容,在对请求统一做处理是不可以用类似 .json,.formData 这类方法直接读取,这样会导致后续对 response 对的读取失败。如需处理,使用 .clone 拷贝流后进行操作,此时源流不会受到影响
https://developer.mozilla.org/zh-CN/docs/Web/API/Response
Response.clone(): 创建一个 Response 对象的克隆。

git

auto rebase

由于pull时已经有修改的情况下,默认会做 merge 处理,这时会有一个 merge 的 commit,这个 merge 的commit 是可以通过 rebase 来省去的,git config pull.rebase true 则是相当于自动 rebase。
image.png
pull 的默认行为就是,fetch 后 merge,所以如果是无冲突的 merge,是可以直接进行 rebase 操作的,所以也可以通过 git pull —rebase 来操作。git config pull.rebase true 则是相当于每次都传递—rebase 参数。
如果设置为 git config pull.ff only,则只会 fetch,不会进行默认的 merge 了,有新的内容,需要手动进行 merge/rebase。
image.png
所以其实 pull 的默认行为,不是个特别好的行为,会留下多余的信息,最好的方式还是 fetch 后 rebase。