标签: commit

Git:如何忽略快进并将原点[branch]恢复到之前的提交?

我用了

git reset --hard dc082bc... 
由于一些错误的提交,恢复到分支回到所需的先前状态.这让我当地的分公司很好.但是,我想将'origin'上的分支回滚到同一个commit,以便我可以重新开始.谁能告诉我如何将原始分支(非主人)恢复到此提交?

我已经尝试过git push origin master,但它给出了以下错误

 ! [rejected]        branch -> branch (non-fast-forward)
error: failed to push some refs to 'git@github.com:xxx/xxx.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

git commit reverting

8
推荐指数
2
解决办法
1万
查看次数

三阶段提交协议(3PC)如何保证原子性?

我目前正在探索像2PC和3PC这样的原子提交协议的最坏情况,并且我无法找到3PC可以保证原子性的原因.也就是说,它如何保证如果群组A提交,群组B也会提交?

这是维基百科文章中简化的3PC:

英语维基百科上描述的3PC提交协议

现在让我们假设以下情况:

  1. 两个队列参与交易(A和B)
  2. 两人都做他们的工作,然后投票支持
  3. 协调员现在发送预先提交的消息......
    • A接收预先提交消息,确认,然后长时间离线
    • B没有收到预先提交的消息(无论原因是什么),因此仍处于"不确定"状态

结果:

  • 协调器中止事务,因为并非所有预先提交的消息都已成功发送和确认
  • 处于预先通知状态的A仍然处于脱机状态,因此超时并提交
  • B在任何情况下都会中止:他要么保持离线状态,要么超时(导致中止)或者上线并从协调员那里接收中止命令

而且你有它:一个队列承诺,另一个队列流产.交易搞砸了.

那我在这里错过了什么?根据我的理解,如果超时(在预先提交状态下)的自动提交被无限等待协调器命令所取代,那么该情况应该可以正常工作.

transactions commit

7
推荐指数
1
解决办法
2289
查看次数

ExtJs Store.save()?

如何save()在后端处理数据存储的方法.(我的C#代码)?
我是否需要商店的任何额外配置设置才能启用该save()方法?如果有人能指出我正确的方向,这将是伟大的?

    var writer = new Ext.data.JsonWriter({
    encode: true
});

// create the Data Store
var store = new Ext.data.JsonStore({
    root: 'Data.items',
    idProperty: 'Empid',
    writer: writer,
    fields: ['Empid', 'Firstname', 'Surname', 'Username'],
    proxy: new Ext.data.HttpProxy({
        url: AppRootPath + 'EmployeeDetails/GetSAASUsers',
        method: 'POST'
    })//proxy
});//new Ext.data.JsonStore
Run Code Online (Sandbox Code Playgroud)

Hod我配置我的stiore以支持一个将更新数据库中的记录的保存方法?

extjs commit

7
推荐指数
1
解决办法
2万
查看次数

使用java进行Postgresql事务处理

我有两个使用preparedStatement的查询块.

这是第一个:

String sql = "update cikan_malzeme set miktar = ? where proje_id = ? and malzeme_id = ?";
PreparedStatement prep = dbConnect.connection.prepareStatement(sql);
prep.setFloat(1, toplam);
prep.setInt(2, pid);
prep.setInt(3, mid);
prep.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

这是第二个:

String sql2 = "update malzemeler set miktar = ? where malz_adi = ?";
PreparedStatement prep2 = dbConnect.connection.prepareStatement(sql2);
prep2.setFloat(1, fark);
prep2.setString(2, malzemeadi);
prep2.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

现在我想用事务BEGIN执行它们; 和COMMIT; 如何使用preparedStatement处理事务?

提前致谢.

java postgresql transactions commit prepared-statement

7
推荐指数
2
解决办法
2万
查看次数

mysql提交和事务

我有一个关于mysql提交和事务的问题.

我有几个执行mysql查询的php语句.

我只是说以下内容吗?

mysql_query("START TRANSACTION");
//more queries here
mysql_query("COMMIT");
Run Code Online (Sandbox Code Playgroud)

这到底是做什么的?它有什么用?对于更新,删除和插入,我还发现这可以阻止其他查询读取:

mysql_query("LOCK TABLES t1 WRITE, t2 WRITE");
//more queries here
mysql_query("UNLOCK TABLES t1, t2");
Run Code Online (Sandbox Code Playgroud)

这会阻止任何性质的其他查询或只写/选择吗?

另一个问题:假设一个查询正在运行并阻止其他查询.另一个查询尝试访问被阻止的数据 - 并且它看到它被阻止.它是如何进行的?是否等到数据再次被解除阻塞并重新执行查询?它是否失败并需要重复?如果是这样,我该怎么检查?

非常感谢!

丹尼斯

php mysql transactions commit

7
推荐指数
1
解决办法
2万
查看次数

Github 存储库未显示最新提交

出于某种原因,我的 Github 存储库没有显示最新的几次提交。我像往常一样执行了git add、git commit 和 git push。但是今晚它似乎没有在 repo 的提交历史中注册。

当我做一个 git log 时,我可以看到我最近的提交。当我执行 git pull 到一个新文件夹来测试它时,我的更改就在那里。当我手动获取提交 url 并将其放入浏览器时,我可以看到更改。它只是没有显示在提交历史中,并且项目的提交总数没有更新。为什么是这样?

git ssh commit github git-commit

7
推荐指数
1
解决办法
1万
查看次数

git 归档来自远程的特定哈希

我正在尝试从一个远程存储库获取一个目录,但我只想从特定的哈希中获取该文件。如果我使用带有 HEAD 的 git archive 一切正常,但是当我尝试使用特定的哈希时:

git archive -v --format tar --remote=ssh://....myrepo.git agitash afile > output.tgz

但我越来越

fatal: sent error to the client: git upload-archive: archiver died with error
remote: fatal: no such ref: 9a9c309
remote: git upload-archive: archiver died with error
Run Code Online (Sandbox Code Playgroud)

所以我读到我可以使用另一个上传存档,如下所示:

git archive -v --format tar --remote=ssh:.....myrepo.git --exec="/usr/local/bin/git upload-archive" ahash afile > output.tgz

它也不起作用。我认为是因为 BitBucket 不支持它https://confluence.atlassian.com/bitbucketserverkb/git-upload-archive-archiver-died-with-error-779171761.html

所以我想知道:还有另一种简单的方法可以做到这一点吗?

git hash commit bitbucket archive

7
推荐指数
1
解决办法
4325
查看次数

Docker 提交未保存我对图像的更改

我是 docker 世界的新手:我现在可以部署 docker 容器并做一些工作。

试图进入下一个级别,保存我的更改并将我的容器/图像移动到另一台 PC/服务器。

目前,我在 Windows 10 上使用 docker,但我可以访问 Ubuntu 16.04 服务器来测试我的工作。

这就是我卡住的地方:我在 Docker 上部署了 Wordpress 和 MariaDB 图像。
我的 WP 运行得很好。我安装了几个主题并创建了几个带有图像的页面。

在这一点上,我喜欢保存我的工作并将其发送给我的朋友,他将部署我的图像并在同一个 Wordpress 上做进一步的工作。

我在网上读到的是:我应该运行docker commit命令以.tar格式保存和创建我的 docker 图像,然后将此图像文件 ( .tar)发送给我的朋友。他将运行docker load -i我的文件,将其作为图像加载到他的 docker 中,然后从中创建容器,这应该给他我在 Wordpress 上的所有工作。

澄清一下,我同时提交 Wordpress 和 Mariadb 容器。
我没有安装任何外部卷,因此所有工作都保存在容器中。

我确实记得在 docker 设置中在驱动器 C 和 D 上打上复选标记,但我不知道这是否与卷有关。

我在提交和移动.tar文件过程中没有收到任何错误。一旦我的朋友从我提交的图像中创建了他的容器,他就会得到干净的 Wordpress(就像从 wp 设置页面开始新安装的 Wordpress)。

我注意到的另一件事是我创建的图像与我拉取的原始图像具有相同的文件大小。当我运行时docker images,我看到我的图像是 420MB,而 Wordpress 图像是 420MB。

我认为我的图像应该大一点,因为我已经安装了主题、插件并将图像上传到 Wordpress。至少它应该比原始图像多 3 到 5 …

commit docker

7
推荐指数
1
解决办法
1万
查看次数

无法访问无法解析主机

我正在使用 VMware 在 Ubuntu 上开发代码。一切都很好,我正在编码并将其提交到我的 Github 帐户,没有任何问题。但突然它停止工作,它会说: fatal: 无法访问 ' https://github.com/hm0ss/nst.git/ ': 无法解析主机:github.com

我做了什么?我在谷歌上搜索它并使用配置命令和其他建议,但无济于事。我还创建了另一个 git 存储库,但也失败了。我切换到 GitLab 并在那里创建了一个存储库,但这没有任何好处:“无法访问‘ https://gitlab.com/hma.globe/nst2.git/ ’:无法解析主机:gitlab.com”我需要说我正在使用代理(确实是袜子),但即使断开袜子服务器(或从谷歌浏览器中删除代理)也不起作用。顺便说一句,我什至切换到 Windows 并尝试提交,但遇到了同样的错误。尝试了大约两个小时后,我现在遇到了大麻烦。

git commit github repository gitlab

7
推荐指数
2
解决办法
4万
查看次数

如何 git rebase -i edit 并查看过去的提交更改

通常我会编辑旧的提交,并git rebase -i HEAD~<number of commits I added>添加edit我想要编辑的提交,进行更改,添加文件和git rebase --continue.

有没有办法使用 rebase 编辑提交但查看过去的提交更改?找到我想要修复的地方会更容易,VScode 会帮我标记这些行。

例如:假设我已经提交了commitA, commitB, commitC(HEAD at commitC)。现在我想编辑commitA. 我已经git rebase -i HEAD~3提交edit了 commitA。现在我正处于变基过程中,但我希望commitA 更改显示为更改,这种情况使我在commitA更改已经提交时编写修复程序。

如果有一种替代方法可以修复过去的提交并更改该提交,staged那就太好了。

提前致谢!

git commit rebase

7
推荐指数
1
解决办法
1996
查看次数