标签: commit

PHP和mySQL:实现事务的简单代码 - 提交和回滚

我的平台:

PHP和mySQL

我的情况:

我正在尝试在我的代码中实现事务.我试图按照例子,但它没有多大帮助.我正在运行3个查询,我想以这样的方式编写事务,这样如果任何查询失败,整个事务就应该回滚.我非常感谢一个简单,高效且非面向对象的PHP代码来实现这一目标.先感谢您.

我的PHP代码:

//db_res calls a custom function that performs a mysql_query on the query
$res1 = db_res("SELECT c1, c2 FROM t1 WHERE c5 = 3");
$res2 = db_res("UPDATE t2 SET c1 = 5 WHERE c2 = 10");
$res3 = db_res("DELETE FROM t3 WHERE c1 = 20");

if( $res1 && $res2 && $res3 )
{
 //commit --- but how?
}
else
{
 //rollback --- but how?
}
Run Code Online (Sandbox Code Playgroud)

php mysql transactions commit rollback

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

Git:无法理解为什么分支(主题)提交/合并正在主分支上发生

注意:我不确定是否已经提出过这个问题,因为我找不到适合我的背景的任何问题(或者我无法理解现有问题'背景')

这些天我很喜欢Git.特别是,主题分支.我正在开发一个小代码共享应用程序.我有(本地)分支,如"主","认证","书签","评论","鼻子"等...

我的(预期)工作流程如下所示:创建主题分支==>在主题分支上工作==>将文件提交到分支==>将主题分支更改合并到"主"分支.(后来删除主题分支)

我试过为几个分支做同样的事情.它工作正常.但后来当我检查git图时,即使我遵循相同的工作流程,所有机会都发生在"主人"上.没有树线分叉和会聚!它显示了一条带有多个提交的单线.我不知道为什么?我的印象是,我用HEAD指针搞砸了什么?

为了给出实用的观点,这是我的git图:http://github.com/none-da/zeshare/network

以下是我使用的命令:

>> git branch authentication_feature
>> git checkout authentication_feature
>> # I work with all the files here in "authentication_feature" branch
>> git commit -m "Authentication_feature is up" # commiting to the branch
>> git branch # just to confirm, which branch I am working on
>> git checkout master # trying to shift to master branch
>> git merge --no-commit authentication_feature # I merge in two steps. This is step 1 …
Run Code Online (Sandbox Code Playgroud)

git merge branch commit github

6
推荐指数
2
解决办法
1220
查看次数

Git:只从另一个分支添加文件的某些部分的最佳方法?

假设您有一个分支master和另一个分支production,它们都包含该文件的一个版本prog.py,以及许多其他文件.想象一下,您修改了生产分支中的许多文件,包括prog.py.现在,只有在分支中进行一些更改的最佳方法是应用于分支中的版本?prog.pyproductionmaster

我开始转移到master分支并从production分支导入文件:

git checkout master
git checkout production -- prog.py
Run Code Online (Sandbox Code Playgroud)

因为我希望能够做到git add -p并手动选择更改.问题在于prog.py工作树和索引中都存在问题.如何在不触及工作树的情况下将其从索引中删除?

或者是否有更好的方法来选择prog.py应该从production分支导入到master分支的哪些更改?

git branch commit git-checkout

6
推荐指数
1
解决办法
2077
查看次数

如何找出要提交的文件的空间要求?

我要归档一个包含大量垃圾的旧项目.我希望我再也不需要它,但我想把所有重要的东西都置于版本控制之下.由于项目中的混乱,不容易说出什么是来源和什么可以消失(没有makefile,没有make clean,没有).所以我想把几乎所有的东西放在那里,只考虑最大的文件进行排除.

如何列出要提交(或暂存)的文件及其大小?

我可以写一个脚本或其他什么,但希望有一个更简单的解决方案.我在Cygwin下工作,唯一可用的gui是git gui不显示文件大小.否则它对我需要的东西来说是完美的.

git size commit

6
推荐指数
1
解决办法
1265
查看次数

Mercurial关键字扩展可在每次提交时进行扩展

我需要使用hg关键字扩展将构建日期和修订嵌入到源文件中.撇开整个"你真的不想做那个"的论点,我怎么能这样做呢?

这是我的源文件(lib/foo/version.rb)看起来像什么(恰好是Ruby,但从我的构建中我没有"编译"步骤的观点来看,这只是相关的,我可以做-DREVISION ="$( hg id)"in):

module Foo
  VERSION = {
    :date => "$Date$",
    :changeset => "$Revision$"
  }
end
Run Code Online (Sandbox Code Playgroud)

问题是$ Revision $和$ Date $随着该文件的变更集和提交日期而扩展,而我需要的是整个存储库的tip更改集和提交日期.

我没有看到可以使用的明显模板hg help templates,关键字扩展也没有提到具有全局范围的任何内容.我正在尝试做什么?

mercurial commit keyword

6
推荐指数
1
解决办法
1124
查看次数

如何将文件夹提交到gitHub

我是GitHub的新手,能够创建一个README文本文件并提交(从我的本地机器到github网站),但现在我的问题是,我有一个文件夹,我需要将该文件夹提交到git hub,你们中的任何一个人都可以帮助我.

commit github

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

git commit和git commit-tree有什么区别

我正在阅读git对象:blob,tree,commit,tag.为了更好地理解git是如何工作的,我尝试了一些低级命令,比如write-treecommit-tree.

  1. mkdir test; cd test - > git init
  2. 我创建了一个文件git add file.我可以看到生成blob和树对象.git/objects
  3. git write-tree 打印当前的treeID
  4. git commit-tree treeID -m "commit a tree"提交这棵树.在此操作之后,生成一个提交对象,我可以看到它确实包含作者,日期等.但是,我无法检查我的提交使用git log,错误是:fatal: bad default revision 'HEAD'.

经过上面的操作,当我运行时git status,我看到文件仍然在索引中等待提交.什么是和'commit' commit-tree之间有什么区别commit-tree

git commit

6
推荐指数
1
解决办法
1857
查看次数

Git中的提交是否代表存储库的状态?

正如我所理解的那样,当您在Git中进行提交时,会创建存储库的整个状态的快照,并允许我在必要时返回到该状态.所以,对我来说,提交不代表变更,而是存储库的状态.当你想回到旧州时,你可以做到git checkout commit-hash

但是,我不明白当你这样做时会发生什么cherry-pick,因为它只获得该提交所做的更改.

cherry-pick如果一个提交代表整个存储库的状态,Git如何在两个提交之间获得差异?

git commit

6
推荐指数
1
解决办法
191
查看次数

项目提交的文件太多

我刚刚使用git克隆了一个项目并打开了一个新的分支.在更改了只有1个文件之后,我尝试提交更改,但它向我显示我提交了3000多个文件.点击任何文件以查看差异后,phpstorm说"没有差异".

我听说这可能是与行结尾有关的错误,但我现在不知道该怎么做.请你帮助我好吗?现在无法验证3000个文件,我不想通过推送疯狂的东西来破坏项目.

我尝试将phpstorm中的行结尾更改为LF(unix)和CRLF(windows),但它根本没有帮助.我听说可能有必要在git中更改它,所以我尝试运行一些随机推荐的命令,但根本没有结果.

编辑:增加了100个声望赏金.我无法解决这个问题

解决方案:好的,看起来这是特权问题.我在所有目录上都给了chmod 777,这太过分了.

git commit bitbucket phpstorm

6
推荐指数
2
解决办法
1382
查看次数

如何从gitlab中完全删除提交?

我在git repo中提交了一个提交,并推送了它,但是不小心它包含了我们生产机器的一些密码。所以我删除了提交:

git reset --hard HEAD~1
git push --force
Run Code Online (Sandbox Code Playgroud)

确实确实从提交列表中删除了提交,但是gitlab上的提交网址仍然显示了提交的来源。

我不确定这是git仍将提交内容保存在gitlab服务器上,还是gitlab数据库以某种方式存储提交内容,但是我确实需要从gitlab服务器中完全删除该提交。

有谁知道从gitlab完全删除提交及其内容的方法吗?

git commit git-reset gitlab

6
推荐指数
1
解决办法
2753
查看次数