几个月前有人犯下了某件事。之后,还完成了多个其他提交。是否可以查看某人是否通过修改或变基更改了某个提交的内容?如果是,怎么办?
我想检查我是否有最新版本的程序。我已将我的程序共享到 bitbucket.org ,并且如果我需要提取最新版本,或者我已经拥有最新版本,我希望我的 C++ 代码可以写给我。
我想从某个提交开始创建一个新分支。但是,我希望之后提交的所有提交也成为该分支的一部分。
让我们假设这是branch-D所有提交。
> branch-D
commit-A ---- commit-B ---- commit-C ---- commit-D
Run Code Online (Sandbox Code Playgroud)
我想删除所有内容并commit-B创建一个新的branch,让我们命名它branch-C,然后只commit-A继续branch-D
> branch-D
commit-A
> branch-C
commit-B ---- commit-C ---- commit-D
Run Code Online (Sandbox Code Playgroud)
我还没有将任何内容推送到远程存储库。有没有办法做到这一点?
我正在尝试更新提交消息,但同时保持相同的哈希值。
我尝试了 --message-callback 和 --commit-callback 这两个选项,但无论我选择哪一个,它都会生成新的哈希值。我是这样做的:
python3 git-filter-repo.py --preserve-commit-hashes --message-callback (or --commit-callback) '
if b"blabla" not in message:
message = b"MyMessage " + message
return message' --force
Run Code Online (Sandbox Code Playgroud)
这是一种错误吗?或者我做了一些完全错误的事情?
任何帮助表示赞赏
我有一个学生班级,我们都在一个存储库中工作,并不断检查小的状态更新和代码等。
我们已经注意到,除了我们所做的提交之外,Git 似乎还创建了合并并检查了这些,见截图。
这些提交充满了来自其他团队成员的更改,因此只会让我们混淆 git 历史。
这些自动提交是什么,有什么方法可以配置 Git 不进行这些提交?
我问这个问题是因为我正在研究Pro Git书,有一章“重写历史”,解释了如何更改最后一次提交$ git commit --amend,更改多个提交消息$ git rebase -i HEAD~ 3 、使用$ git filter-branch --tree-filter删除所有提交中的特定文件或文件夹。
我的问题是:这本书没有提到通过沿着所有提交历史进行多次签出来完成这项工作的可能性。所以我移动我的 HEAD,逐个提交,然后用$ git commit --amend一项一项地更改这个特定的提交。
我知道这真的(真的!)就花费的时间而言非常昂贵,但是它真的有可能(即它有效)吗?
如果是,在什么情况下这可能有用?
我有一个很久以前从存储库中获取的文件。有没有办法知道这个文件与哪个提交相关?
我很清楚提交历史。这不是我要问的。我要求查找与该特定文件版本关联的提交。我不知道相对于之前的提交发生了什么变化,也不知道接下来的提交发生了什么变化,所以简单的历史记录并不能解决问题。
强力检查是系统地检查每个提交,并将存储库中的文件与我拥有的过时副本进行比较,直到找到匹配的提交。
在Oracle中,我正在调用以下查询(而不是来自sqlplus)作为安装脚本的一部分:
ALTER TABLE MYTABLE DISABLE CONSTRAINT PFTATTRS_ATTR_FK;
INSERT INTO MYTABLE (PTF_ID, ATTR_ID) VALUES (1, 5);
ALTER TABLE MYTABLE ENABLE CONSTRAINT PFTATTRS_ATTR_FK;
Run Code Online (Sandbox Code Playgroud)
如您所见,我将DML(需要COMMIT)与DDL(自动提交)交错.我的疑问是:我是否需要在每个DDL之前提交DML,或者在我的脚本结尾处进行一次大提交是否安全?
我试图让一个小的Flask应用程序工作,写入MySQL数据库,但似乎数据库提交不起作用,我不知道为什么.
from flaskext.mysql import MySQL
mysql = MySQL()
mysql.init_app(app)
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'eggsited'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
conn = mysql.connect()
cursor = mysql.connect().cursor()
cursor.execute('insert into user (id, first_name, last_name) values (%s, %s, %s)', ['324325', 'Kristoffer', 'Nielsen'])
conn.commit()
Run Code Online (Sandbox Code Playgroud)
这是处理将值插入表格的部分.我知道我的连接正在工作,因为我可以执行select语句并列出那些结果,并且execute语句也正常工作,因为当我在mysql中直接插入新行时,自动递增的id字段已递增.所以它必须是实际上没有提交execute语句的commit命令,但我不知道为什么.
我错过了一些明显的东西吗?