相关疑难解决方法(0)

Git - 重复提交问题

我不小心在我的存储库中通过"unknown"创建了提交,并决定尝试从这里运行命令:

git filter-branch --commit-filter '
        if [ "$GIT_COMMITTER_NAME" = "unknown" ];
        then
                GIT_COMMITTER_NAME="..";
                GIT_AUTHOR_NAME="..";
                GIT_COMMITTER_EMAIL="...";
                GIT_AUTHOR_EMAIL="...";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD
Run Code Online (Sandbox Code Playgroud)

起初我觉得一切都很好,直到我在gitk中注意到,在运行之前的每个提交都是重复的,而不是像我原先想的那样简单地编辑.

有可能清理它吗?

编辑:好的,gitk显示旧的提交(混合了"未知"的提交者)和新提交(重写的提交),在中途分开一定点.想想一堆提交,然后复制(和编辑),并堆叠在原始提交之上.我想要做的就是尽可能删除原来的.

git

9
推荐指数
1
解决办法
3061
查看次数

删除第一个git commit

我第一次犯时犯了一个错误.我在另一个人的计算机上并用他们的user.name而不是我的推送了一个版本.我怎么能删除这个?

git github

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

Source Forge repo给出了"拒绝非快进refs/heads/master"错误

将树重写到我的git存储库以修复作者姓名和电子邮件地址中的错误.现在,我正在尝试将固定树推送到Source Forge上的repo.CharlesB告诉我如何更新Source Forge服务器上的配置文件.我的配置文件如下所示:

[codeguru@shell-24003 bbct]$ cat config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
        sharedrepository = 2
[receive]
        denyNonFastforwards = false
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试强制推送时,我收到以下错误:

$ git push -f
Password:
Counting objects: 464, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (148/148), done.
Writing objects: 100% (452/452), 470.65 KiB, done.
Total 452 (delta 268), reused 417 (delta 247)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To ssh://codeguru@git.code.sf.net/p/bbct/code
 ! [remote rejected] master …
Run Code Online (Sandbox Code Playgroud)

git version-control

8
推荐指数
2
解决办法
8151
查看次数

GitHub 是否考虑将 .mailmap 用于贡献图

有一个 git repo,其中包含不正确的贡献者及其贡献。Repo 很少有来自不同电子邮件和别名的提交,我们已添加.mailmap以解决此问题。

Shortlog 会相应地识别.mailmap和分组贡献,但它不会反映在 GitHub 上。GitHub 是否考虑.mailmap文件,或者我们应该等待 GitHub 重新运行图表。

git shortlog -sne
Run Code Online (Sandbox Code Playgroud)

注意:我们已经等了24小时

github mailmap

8
推荐指数
1
解决办法
680
查看次数

如何在不更改日期的情况下编辑提交作者?

我已经知道如何更改提交的作者(作者和提交字段),

git rebase --root --exec "git commit --amend --reset-author --no-edit"
Run Code Online (Sandbox Code Playgroud)

但随着作者的变化,日期(作者日期和提交日期)从当前日期开始发生变化。如何保存旧日期并同时更改作者?

git commit rebase

8
推荐指数
2
解决办法
3153
查看次数

如何在git存储库中重写提交者名称?

我使用git svn将Subversion存储库转换为Git,但遗憾的是现在只注意到一些作者信息是错误的.转换后的存储库尚未与任何人共享,因此我想重写其中的提交日志 - 如果可能的话.

如何重写git存储库,以便所有提交的日志显示,例如

Author: John Doe <john.doe@example.com>
Run Code Online (Sandbox Code Playgroud)

代替

Author: John Do <john.do@example.com>
Run Code Online (Sandbox Code Playgroud)

我自己尝试这样做,似乎git-filter-branch是我需要的.不过,我无法做到这一点.

git

7
推荐指数
1
解决办法
2046
查看次数

更改先前提交的作者姓名:快进推送被拒绝

我最近在GitHub上开了一个回购.我是Git的新手.和新手一样,我承诺使用默认名称和电子邮件,我在最好的noob传统中发现了五次提交为时已晚.现在开始有趣了,因为我开始搜索有关如何更改这些提交的作者和提交者名称的信息.精细.我基本上找到了以下信息和很多副本:

  1. http://help.github.com/change-author-info/

  2. 从Git中的分支中删除提交

  3. 如何在保持更改的同时从Git存储库中删除选定的提交日志条目?

  4. 在Git中更改多个提交的作者和提交者名称以及电子邮件

  5. 在一个特定的提交中更改提交作者

  6. 用Git更改项目的第一次提交?

  7. 我可以在之前的所有提交中更改我的姓名吗?

这个问题似乎并不少见.我只能说没有一个解决方案有效.其中一半是同一git filter-branch -f --env-filter剧本的变体.我尝试多次处理该脚本.问题是在应用脚本后,我无法推送."快进推动被拒绝"或类似的东西.好吧,唯一的方法就是拉.拉动后,所有旧信息再次出现+带有新信息的新分支.我已经坐在这里有四个分支,以最恶劣的方式合并,都包含不同作者姓名的相同信息,包括我想删除的那个.

可以简短地删除它,我也试图删除选定的提交,这会产生我无法解决的令人毛骨悚然的冲突(如何???),并使用正确的作者信息将一些提交压缩到更新的提交中,导致当前项目状态遭到破坏.更好的是,我在执行后有时会出现分段错误git rebase -i,我在此通知:http://lists-archives.org/git/729800-rebase-i-segmentation-fault-and-another-problem.html完全是逻辑.(谢天谢地)唯一有用的是git rebase --abort,它多次保存了我的屁股.

我希望我的挫折感不会被击退,而是逗你,激励你去帮助我.我想要:

  • 最后删除所述作者信息

  • 奖励:摆脱包含相同信息的所有分支.

但是我对第一个也很满意,如果在没有破坏当前状态的情况下删除过去的分支的障碍对于一个git新手来说太过分了.提前致谢.

git github

7
推荐指数
1
解决办法
9483
查看次数

Sourcetree和github

当我从windows github客户端推送提交到github repo时,我可以在历史记录中看到我的github用户名并链接到我的个人资料,如下所示:

初始提交[ 用户名 ]

但是,当我从SourceTree推送更改时,在提交历史记录中,它看起来像:

初始提交[mac_username]

我希望我在github.com上的历史看起来像第一个例子(使用github用户名和链接到配置文件)我应该在SourceTree中启用哪些设置来获取它?

github atlassian-sourcetree

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

如何更新git commit author,但在修改时保留原始日期?

如果提交已经完成并推送到存储库,并且如果想要为某个特定提交更改作者,我可以这样做:

git commit --amend --reset-author
Run Code Online (Sandbox Code Playgroud)

但是,这将改变原始的承诺日期.

如何重置作者,但保留原始提交者日期?

git

7
推荐指数
6
解决办法
2003
查看次数

gitlab:如何更改(重置)终端中的用户信息,以及 https 推送受限

如果我有 gitlab 帐户,\n用户名:account1\nemail:email1@outlook.con

\n\n

终端中的初始设置:

\n\n
git config --global user.name account1\ngit config --global user.email email1@outlook.con\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我有另一个 gitlab 帐户,\n用户名:account2\nemail:email2@outlook.con

\n\n

当我更改用户信息时:

\n\n
git config --global user.name account2\ngit config --global user.email email2@outlook.con\n
Run Code Online (Sandbox Code Playgroud)\n\n

我将文件推送到 gitlab ,“活动”信息仍然显示 account1。

\n\n
\n\n

我通过 https 路径通过 tortoisegit 推送文件。

\n\n

我发现即使删除了gitlab中的SSH KEY,仍然可以通过https路径推送文件。

\n\n
\n\n

我需要重置?\n我该怎么办?

\n\n

\xef\xbc\x8a我删除了git并重新安装,发现用户信息仍然存在...

\n

git gitlab

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