我正在学校的计算机上编写一个简单的脚本,并将更改提交给Git(在我的pendrive中的repo中,从我家里的计算机克隆).几次提交后,我意识到我正在以root用户身份提交东西.
有没有办法将这些提交的作者改成我的名字?
我已经接受并合并了github上的Pull Request,现在我不能再提交我的提交了.
消息是:
! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'git@github.com:FranckFreiburger/vue-resize-sensor.git'
git did not exit cleanly (exit code 1) (3838 ms @ 12/04/2017 21:23:11)
Run Code Online (Sandbox Code Playgroud)
我现在应该怎么做 ?
我对Github/VCS很新.
当我尝试在Github上共享我的项目时,我收到以下错误消息.
Can't finish GitHub sharing process
Successfully created project 'myproject' on GitHub, but initial push failed:
remote: error: GH007: Your push would publish a private email address.
failed to push some refs to 'https://github.com/me/myproject.git'
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了错误信息,没有点击.我也搜索过stackexchange,但没有雪茄.关于如何解决这个问题的任何想法?
通常,当您使用git重新定义另一位作者的提交时,git会添加一个Commit:包含您的姓名和电子邮件地址的标头.我有一种情况,我不希望这种情况发生.我希望重新提交的提交最终使用与原始作者自己完成相同的rebase时相同的SHA1.这可能吗?
所以我读了很多关于如何更改以前提交的电子邮件地址但由于某种原因我的更新没有.
我确实喜欢使用我的本地电子邮件(nameofMyComputer@kevin.local)对我的私人仓库进行了40次提交,这很糟糕,因为这封电子邮件与github没有关联(也不可能).
然后我记得我之前需要设置git.config,所以我做了:
git config user.email "newemail@example.com"
Run Code Online (Sandbox Code Playgroud)
并做了一个测试提交,它完美地工作.
有没有办法可以将我以前的所有提交还原到这封新邮件?
我在SO上阅读了这个问题.在Git中更改了作者和提交者名称以及多次提交的电子邮件并使用了它
git filter-branch -f --env-filter "
GIT_AUTHOR_EMAIL='kevin.cohen26@gmail.com';
GIT_COMMITTER_EMAIL='kevin.cohen26@gmail.com';
"
HEAD
Run Code Online (Sandbox Code Playgroud)
但它不起作用......我仍然可以看到我之前提交的电子邮件与.patch扩展名为.local电子邮件地址
我正在阅读关于git filter-repo可以做什么,因为我想用它做一个小实验......我有这个仓库,我只想从中获取一个目录的历史记录,比如说...... master......但我不想在master上工作。我想创建一个新的分支,比如说filter-repo-test让它git filter-repo单独在这个分支上运行它的魔法。我正在阅读手册,但没有看到仅指定给定分支的选项。是否可以?
我想git filter-repo为我的多提交拉取请求自动应用一些脚本化样式指南重构。
因此,我只想将这些操作应用于我正在推送的几个最新的新提交,而不是触及旧历史中的任何其他内容。
有办法吗?
为了具体起见,这里有一个测试存储库:https://github.com/cirosantilli/test-git-filter-repository和一个示例 blob 操作:
# Install git filter-repo.
# https://superuser.com/questions/1563034/how-do-you-install-git-filter-repo/1589985#1589985
python3 -m pip install --user git-filter-repo
# Usage.
git clone https://github.com/cirosantilli/test-git-filter-repository
cd test-git-filter-repository
printf 'd1==>asdf
d2==>qwer
' > replace.txt
git filter-repo --replace-text replace.txt --refs HEAD
Run Code Online (Sandbox Code Playgroud)
上述内容将影响测试存储库的所有 3 次提交。例如,有没有办法只影响最后两次提交?
Blob 操作应该非常适合我的用例,因为我只想触及我的提交修改的 Blob。
我在文档中找不到它。
我还询问了他们的问题跟踪器:https://github.com/newren/git-filter-repo/issues/157
在 git-filter-repo ac039ecc095d 上测试。
我浏览了您的以下文章https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/,因为该贡献未显示在我的个人资料中。
至少可以说。
它已经超过24小时,并且在多个目录中。不,我推送的存储库中没有一个是分叉的。
他们不是给定存储库的贡献者,因此我可以推送提交。
[问题:]有人可以告诉我我做错了什么吗?或如何解决?
我的git存储库是:https : //github.com/irohitb
示例:考虑这个存储库-> https://github.com/irohitb/Crypto,这里说最后一次提交是在4天前推送的,但是在我的贡献中,它没有显示我过去一周所做的任何贡献
git push失败,并显示以下消息:
remote: GitLab: Author '`SamLogan@logath-T460.mycompany.com`' is not a member of team
Run Code Online (Sandbox Code Playgroud)
我的#git config user.name和#git config user.email设置为:
#git config user.name
Sam Logan
#git config user.email
SamLogan@mycompany.com
Run Code Online (Sandbox Code Playgroud)
我的主机名是 logath-T460.
我不确定为什么git push将我的本地主机名与Author一起使用。任何线索如何解决这个问题?
在过去的几天里,我使用了另一台笔记本电脑,我设置了 git 并登录,但我不小心使用了错误的电子邮件地址的用户名。
今天,我注意到过去几天的提交没有显示在我的 github 个人资料仪表板上,所以检查了发生的情况,发现我使用了错误的电子邮件登录。
我尝试了几种不同的方法来修复它,但没有一个起作用。
1.
git rebase -i -p <The last commit with the good email>
然后对于每个提交。
git commit --amend --author="good name <good email>" --no-edit
git rebase --continue
Run Code Online (Sandbox Code Playgroud)
它不是仅仅更改提交的作者,而是使用我的好电子邮件进行了新的提交,但没有更改旧的提交。
2.
git filter-branch --env-filter 'if [ "$GIT_AUTHOR_EMAIL" = "incorrect@email" ]; then
GIT_AUTHOR_EMAIL=correct@email;
GIT_AUTHOR_NAME="Correct Name";
GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; fi' -- --all
Run Code Online (Sandbox Code Playgroud)
正如这里所看到的,但它没有做任何事情......
3. 在其中一个答案中,有人提到我应该使用与我使用的相同的命令。
git rebase -i -p <The last commit with the good email>
但没有“-p”。我尝试过,但它也进行了新的提交,并且没有将旧的提交与旧的日期一起保留。
因此,我需要帮助获取我历史记录中的所有新提交并修复旧提交以获得良好的电子邮件。