小编vmj*_*vmj的帖子

资源已存在时POST的HTTP响应代码

我正在构建一个允许客户端存储对象的服务器.这些对象在客户端完全构造,完整的对象ID对于对象的整个生命周期是永久的.

我已经定义了API,以便客户端可以使用PUT创建或修改对象:

PUT /objects/{id} HTTP/1.1
...

{json representation of the object}
Run Code Online (Sandbox Code Playgroud)

{id}是对象ID,因此它是Request-URI的一部分.

现在,我也在考虑允许客户端使用POST创建对象:

POST /objects/ HTTP/1.1
...

{json representation of the object, including ID}
Run Code Online (Sandbox Code Playgroud)

由于POST意味着"附加"操作,我不知道如果对象已经存在该怎么做.我应该将请求视为修改请求还是应该返回一些错误代码(哪个)?

rest http

766
推荐指数
12
解决办法
31万
查看次数

使用git merge单独提交冲突解决方案

我正在尝试将一个大主题分支合并到主服务器中,但我想要一个单独的提交来显示冲突解决方案是如何发生的.目标是让一个提交显示"这些文件冲突以及它们如何冲突",下一个提交将显示"这就是解决冲突的方式".即第一次提交将包含冲突标记.

原因是大主题分支已经过审查和测试,主分支也是如此.在合并中,我们只想查看需要一些工作的部分(冲突和其他合并工作).

这是我到目前为止所做的:

git checkout master
git checkout -b merge-from-topic
git merge topic
Run Code Online (Sandbox Code Playgroud)

要记录有冲突的文件,我使用临时文件:

git diff --name-only --diff-filter=U >conflicts.txt
Run Code Online (Sandbox Code Playgroud)

首先,我只是将带有冲突标记的文件添加到提交中:

xargs git add <conflicts.txt
git commit
Run Code Online (Sandbox Code Playgroud)

然后我创建另一个分支(用于审查目的),我想在其中进行冲突解决:

git checkout -b resolve-merge-from-topic
Run Code Online (Sandbox Code Playgroud)

为了恢复冲突,我试过了

xargs git reset HEAD^ -- <conflicts.txt
Run Code Online (Sandbox Code Playgroud)

但是后来git mergetool说没有文件需要合并,尽管我工作树中的文件有冲突标记.

如何恢复conflict.txt中列出的文件,以便我可以在它们上使用git mergetool

我也对其他获得"单独提交冲突解决"效果的方式持开放态度.

git merge merge-conflict-resolution

13
推荐指数
1
解决办法
3773
查看次数

标签 统计

git ×1

http ×1

merge ×1

merge-conflict-resolution ×1

rest ×1