相关疑难解决方法(0)

Git命令可以破坏/重写历史记录

你能提供一个(全部或最常见的)操作或命令列表,这些操作或命令会危害git中的历史记录吗?

什么应该绝对避免?

  1. 推送此提交后修改提交(git commit/ git push/ git commit --amend)
  2. 重新启动已经推动的东西

我希望这个问题(如果它还没有在其他地方之前提出过)成为关于git常见的可避免操作的某种参考.

此外,我使用git reset了很多,但我还没有完全意识到我可以对存储库(或其他贡献者副本)造成的损害.可能git reset有危险吗?

git github git-rewrite-history

6
推荐指数
3
解决办法
1472
查看次数

如何修复 git 存储库中的“错误日期”问题?

我最近尝试将存储库导入 GitHub(来自 Bitbucket),但导入失败。GitHub 技术支持通知我,他们在存储库中发现了“错误日期”问题,我应该git fsck在存储库上运行。所以我从 BitBucket 克隆它并运行git fsck,这就是我得到的:

git fsck Checking object directories: 100% (256/256), done. 
error in commit fda45b4b6b06f6b815341c1f26de827c769f48b6: badDate: invalid
 author/committer line - bad date error in commit
 636d259fd0ac343af2a5561ff799a54a6aeb9b1c: badDate: invalid
 author/committer line - bad date error in commit
 41dc786816992e3c42c904e8c848aa1078475386: badDate: invalid
 author/committer line - bad date error in commit
 c55a0fa0d98e02aa4621be202d7b7d21ed2ff2ab: badDate: invalid
 author/committer line - bad date error in commit
 e6ad8f5ea7cf6441b6ea6ab5583117113a8f49fb: badDate: invalid
 author/committer line - bad date error in commit
 4aea97fdd999484319a9fbbc4dc42b024e1eba80: badDate: …
Run Code Online (Sandbox Code Playgroud)

git corruption git-fsck

5
推荐指数
1
解决办法
1149
查看次数

如何正确更改 github 中过去几次提交的提交作者?

在过去的几天里,我使用了另一台笔记本电脑,我设置了 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”。我尝试过,但它也进行了新的提交,并且没有将旧的提交与旧的日期一起保留。


因此,我需要帮助获取我历史记录中的所有新提交并修复旧提交以获得良好的电子邮件。

git commit

-2
推荐指数
1
解决办法
7103
查看次数

标签 统计

git ×3

commit ×1

corruption ×1

git-fsck ×1

git-rewrite-history ×1

github ×1