我想迭代一本字典,每次修改字典而不是当前正在发生的字典,而是用新的字符重置旧值.
我目前的代码是:
while True:
grades = { raw_input('Please enter the module ID: '):raw_input('Please enter the grade for the module: ') }
Run Code Online (Sandbox Code Playgroud)
但是,这不会修改列表,而是删除以前的值.我该如何修改字典呢?
(另外,当我运行它时,它希望我在键之前输入值,为什么会发生这种情况?)
我已经成功地将提交消息弄糟,当我读回来时,即使我无法解决所说的内容!
此提交尚未推送,我知道可以使用以下命令更改消息:
git commit --amend -m "New commit message"
Run Code Online (Sandbox Code Playgroud)
(感谢这篇文章)
但是,我正在使用GitHub for Windows GUI.那么有没有办法让我在不跳进PowerShell的情况下更改提交消息?
前几天,我分支了github项目以创建静态页面,但搞砸了我的作者姓名
https://github.com/ronaldsuwandi/le-simplepage/commits/gh-pages
如何为分支的第一次提交重命名作者?
我试过了
但是没有运气-我对git还是很陌生。
编辑:如果我想更改第一个提交(例如,如果我的提交历史记录是并且我想更改我可以执行的提交历史记录,那么Amber给出的答案将无效)。想更改自身的提交历史。A-B-C-DBgit rebase -i AA
我知道它们存在git reflog,但如果我将提交推送到远程存储库,修改,那么git push --force(警告:pushing --force通常应该避免远程存储库),我覆盖的提交是否存在于某处?
我有一个远程'dev'分支,正在本地工作.
我使用提交消息"my_feature"对'dev'进行了第一次提交,通过1次提交将我的本地分支置于远程之前.
然后我开发了一些新的东西并制作了一个git add -u,准备好了.然后我意识到我想将之前的提交消息重写为"my_feature(1/2)",使我当前的提交消息为"my_feature(2/2)",将我的本地分支置于远程提前2次提交.
所以我做了一个git commit --amend(认为它只会编辑前一个提交的消息),将"my_feature"提交消息编辑为"my_feature(1/2)"并且...... 最终得到一个标记为"my_feature(1/2)"的提交 " 拥有我所有的更改(第一次提交+暂存文件差异) - 我的索引现在是干净的.
所以,如果我做对了,我的命令实际上做了提交,也提交了暂存文件,这产生了一个(合并的?)提交?
我没想到Git会做这样的事情.我只想编辑旧的提交消息,而不是将旧的提交消息与我当前的暂存文件合并.(现在我想起来rebase可能会更好.)
虽然我可以理解为什么git commit --amend可以提交(即使我只想编辑提交消息),但是我有一些问题需要理解Git如何将我的两个提交合并为一个commit命令.
有人可以向我澄清一下吗?
$ git --version
git version 1.7.10.4
Run Code Online (Sandbox Code Playgroud) 我已经在我的仓库中编辑了一些文件并将其推送。
在完成其他一些工作之后,我注意到我在一行中发表了评论。
因此,我不想为其创建一个新的提交,而我想在上一个提交中更改它(而不是最后一个提交)。
我认为我可以使用提交ID,但是我不知道Git怎么会容忍此功能。
经过审查,我需要更改一些代码并在远程分支上重新推送我的所有更改代码。
所以我想用别名(例如:)在 git 上自动化git repushall这些不同的命令:
git add .
git commit --amend (和 ctrl + x)
git push --force-with-lease
我知道它在.gitconfig文件中
你有什么主意吗 ?
我真的不明白如果我检查旧的提交,进行一些修改并使用git commit --amend.
该更改会自动传播到未来的提交吗?它是如何工作的?
我正在编写一个脚本,进行一些微不足道的更改然后将它们提交给git.因为这些都是微不足道的变化,git commit --amend每当我能逃脱它时我都想做- 特别是当修正不会"弄乱"任何其他分支的历史时.如果修改会弄乱另一个分支,我想做一个标准git commit.
例如,如果我的分支看起来像这样(在Git GUI中的"可视化所有分支历史记录"):
* [experimental branch] Added feature.
* [master branch] Trivial change from script
* ...
Run Code Online (Sandbox Code Playgroud)
我在主分支上运行这个脚本,然后我不想修改,因为我将替换实验分支的历史部分.从技术上讲,这实际上不会破坏任何东西 - 原始提交仍然是实验历史的一部分,并且仍将被引用,因此它不会被垃圾收集 - 但是在几乎但不完全相同的提交中当我后来想要改变或合并时,两个不同的分支使生活变得困难,所以这是我想要避免的情况.
如何让我的脚本自动检测提交是否有任何分支?
如果简化假设有帮助,我总是在master的头上运行这个脚本,我只使用git作为本地存储库 - 我不会在任何地方推送或拉动更改.
这个脚本是用Ruby编写的,所以我可以使用git命令行,或者我可以使用Ruby绑定git - 无论哪个都可以使这个任务更容易.