我有一个提交,我已经存储在一个分支中,因为这应该只发送到一个特定的框.
我已将它合并到分支主服务器,但不是我在本地使用的分支dev.
现在,我错误地将master合并到dev,并将此提交引入了dev.
我知道可以git revert sha,to branch dev; 但是因为这将引入一个撤消提交的提交(我猜,我还没有完全尝试过这个),当我合并master时,这个提交也会撤消吗?
如果是这样,我如何仅从分支dev撤消此提交.
哦, - git reset HEAD^1hard不是一个选项,因为在不需要的提交之后,master上还有其他提交.
如果再次重置并且apply是唯一的选项,那么除了不需要的提交之外,我如何仅从master合并那些额外的提交.
更新:
这是提交树.看起来很复杂 我已经指出了我在开发中不需要的提交.(我也删除了任何个人身份信息,感谢理解.截图gitk比ascii艺术要简单得多.)

提前致谢!
我已经将一些源文件提交到我的git存储库并将其标记为我的软件的新版本.但我看到我刚刚犯了一个错误,并使用"修改"功能提交更正的文件.
现在,我看到标签没有转移到新的提交(使用"修改"功能制作的提交).但我也可以看到标签仍然存在......
我想知道标签发生了什么.这种行为是个错误吗?标签是否链接到不再存在的提交?
我知道我可以强制在新提交中创建相同的标记,但我相信应该有更好的方法(比如使用"修改"提交的命令行参数).
Django中的create()方法创建一个模型实例,然后调用save(),据说触发提交.因此触发事务的提交应该没有任何区别.
但实际上,在Postgresql上使用create()创建一组模型实例的方法我得到了transaction aborted, commands ignored until end of transaction异常.该方法适用于非事务性数据库后端.另外,当我用以下内容替换create()时:
m = Model(attr1=..., attr2=...)
m.save()
Run Code Online (Sandbox Code Playgroud)
它也可以在Postgresql上运行.
使用save()和create()交易意义上有区别吗?
edit: create()也在self._for_write = True调用save()之前设置,但我无法跟踪它以查看它是否对事务行为有任何影响.
编辑:示例代码可以在这里找到.
我正在使用git-svn.我怎样才能获得我已经提交到git中的内容列表,但是自上次以来还没有提交到SVN存储库git svn dcommit?也就是说,如果我进行dcommit,如何验证即将发送的内容?
所以我试图从github中删除一个提交.
这是3次提交之前,如果所有的更改都丢失了我就可以了.
所以基于这里的问题,我做了一个
git reset --hard <sha-commit-name-to-go-back-to>
git push -f origin HEAD^:master
Run Code Online (Sandbox Code Playgroud)
现在它已经从github以及git log中消失了.
然后我重新修改了我的修改
git add <file I changed>
git commit
git log
Run Code Online (Sandbox Code Playgroud)
一切都很好看.没有旧提交的痕迹.所以我终于做了一个:
git push
Run Code Online (Sandbox Code Playgroud)
现在突然github有我删除的那三个提交.
我究竟做错了什么?如何保持提交不返回?
我commit在selectDB2和MySQL语句之后可能需要时阅读了解释:
我的问题是在使用Oracle commit执行select语句后何时以及为什么重要?
如何重写已经推送到私有远程的旧提交的消息?我想保留时间戳和标签.
我在这里找到了这个命令:
git filter-branch -f --msg-filter \
'sed "s/<old message>/<new message>/g"' -- --all
Run Code Online (Sandbox Code Playgroud)
为了保持我添加的标签: --tag-name-filter cat
执行命令时git告诉我:msg过滤失败
我要更改的消息是合并消息"合并分支'发布/ ...'"这是问题吗?
如果我修复了分支中的文件中的错误,该错误branch_a应该应用于所有分支.有没有办法将更改应用于所有分支,而无需单独检出分支.
git commit -m 'commit msg' # on branch a
git checkout branch_b
git cherry-pick branch_a
git checkout branch_c
git cherry-pick branch_a
Run Code Online (Sandbox Code Playgroud)
我希望有一个 git commit --to-all-branches尝试将更改传播到所有分支的可能性.
编辑
为了澄清我的情况,我编写代码来解决计算问题.通常情况下,我不知道哪种方法最能解决特定问题.所以我创建了一个分支.这些分支往往发散,更像是叉子.但是为了保留所有文件,我只使用一个带有多个分支的git存储库.在与所有分支/分支相关的错误的情况下,我正在寻找自动更新所有分支.
我正在开发一个git项目(托管在GitHub上)并使用GitHub for Windows.昨天,我得到了很多成就,但是GitHub for Windows赐予了我(说它无法提交)并且我无法提交.
我不想丢失我的GitHub提交条款,所以我想知道是否有任何方法在过去的日期提交并与我的GitHub同步(如果这是可能的).
另外:我已经在git-bash中提交了我的提交但尚未提交.
实际上,我试图获得有关合并冲突的报告.我使用'git blame'来查看谁更改了哪一行,但我找不到分支和存储库名称信息.
有没有办法从'git blame'或commit ids'中找到文件的存储库名称,分支名称和作者名称,这样每当发生合并冲突时,我都可以向触及该文件/行的作者发送电子邮件解决它.