Git清理历史提交记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 1. Checkout

git checkout --orphan latest_branch

# 2. Add all the files

git add -A

# 3. Commit the changes

git commit -am "commit message"

# 4. Delete the branch

git branch -D master

# 5. Rename the current branch to master

git branch -m master

# 6. Finally, force update your repository

git push -f origin master

Git删除远程tag

删除本地tag很简单,直接:git tag -d tagname 但是我们这样删除之后远程标签其实并未删除,通过以下方式可以删除远程标签。

1
2
3
4
5
6
7
8
# 假设标签名称为:v1.0.0

# 删除本地标签
git tag -d v1.0.0

# 删除远程标签
git push origin :refs/tags/v1.0.0

多个Github账号时,怎么配置sshkey

我有两个Github账号,在配置sshkey的时候是会提示Key is already in use。因为github无法将相同的sshkey配置到不同的账号下,那么就要考虑同一台机器如何配置两个sshkey了。

生成第二个sshkey

因为之前已经存在~/.ssh/id_rsa文件,所以这次生成的时候我们指定输出的文件名为id_rsa2

1
ssh-keygen -t rsa -C "example@example.com" -f ~/.ssh/id_rsa2

创建config配置文件

~/.ssh/目录下创建config配置文件,内容如下,里面有详细的解释。

1
2
3
4
5
6
7
8
9
10
11
# 原有的配置
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

# 第二个配置
Host github_2.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa2 # 这里指定下所使用的公钥文件名,就是我们上一步新生成的那个。

使用第二个sshkey配置

假如我们的仓库地址为:git@github.com:name/project.git ,那么按照上面config文件中Host的配置,需要将仓库地址修改为:git@github_2.com:name/project.git,修改git沧湖远程url的命令如下:

1
git remote set-url origin git@github_2.com:name/project.git

Git清空所有commit记录方法

说明:例如将代码提交到git仓库,将一些敏感信息提交,所以需要删除提交记录以彻底清除提交信息,以得到一个干净的仓库且代码不变

  1. Checkout
1
git checkout –-orphan latest_branch
  1. Add all the files
1
git add -A
  1. Commit the changes
1
git commit -am "commit message"
  1. Delete the branch
1
git branch -D master
  1. Rename the current branch to master
1
git branch -m master
  1. Finally, force update your repository
1
git push -f origin master