git命令总结

834 阅读3分钟

git关联

删除文件夹 和git的关联

rm -rf .git

然后关联远程或push出现了错误,如下:

fatal: Not a git repository (or any of the parent directories): .git 

提示说没有.git这样一个目录
在命令行 输入 git init 然后回车就好了

git init

修改远程仓库地址

推荐先删除后添加

  1. 删除远程仓库地址
git remote rm origin

2. 添加新的git仓库地址

git remote add origin 仓库地址

解决代码库分叉问题

image.png

// 一般会选择分叉的前一个commitid
git rebase commitid
// 暴力提交需要管理员权限
git push --force

image.png

添加 & 删除tag

查看所有tag

git tag -l

添加tag

git tag -a tagName -m 'my tag'
git push origin tagName

删除tag

git tag -d tagName
git push origin :refs/tags/tagName

清空所有commit记录方法

场景:将代码提交到git仓库,需要删除提交记录以彻底清除提交信息,得到一个干净的仓库且代码不变

  1. 建立无根分支(通过--orphan创建的'latest_branch'分支没有父分支)
git checkout --orphan latest_branch

2. 添加所有文件

git add -A

3. 提交更改

git commit -am 'commit message'

4. 删除分支

git branch -D master

5. 将当前分支重命名为master

git branch -m master

6. 强制更新代码库(需要管理员权限)

git push -f origin master

分支管理

  1. 查看本地分支
git branch

2. 查看远程分支

git branch -a

3. 更新同步远程、本地分支

git fetch origin --prune
git remote update origin --prune
git remote prune origin

修改文件名大小写问题

  1. 首先,撤回刚刚的 commit (还没有 push 的话)
git reset –-soft HEAD^

2. 接着,将当前仓库改为大小写敏感(git 默认大小写不敏感)。

git config core.ignorecase false

此时若再次提交, git 将记录CREATE Index.vue,而原来的 index.vue 依然存在,并不是理想结果。

  1. 然后移除原文件在 git 中的记录。
git rm -r --cached index.vue

这样将原文件的删除和新文件的新增整合,可形成一次重命名操作。

  1. 最后,add 和 commit ,完成重新提交。

注意文件命名规范!

Git配置多个SSH key

场景:有时候我们的代码需要托管到多个平台,需要为每个托管平台设置SSH-Key

打开git bash:

  1. 生成一个公司用的SSH-Key
    $ ssh-keygen -t rsa -C "email@company.com" -f ~/.ssh/id_rsa

  2. 生成一个github用的SSH-Key
    $ ssh-keygen -t rsa -C "email@github.com" -f ~/.ssh/github_rsa
    此时,.ssh目录下应该有4个文件:github_rsa, github_rsa.pub, id_rsa, id_rsa.pub,分别将他们的公钥文件(github_rsa.pub,id_rsa.pub)内容配置到对应的code仓库上

    image.png

    配置公钥: 登录github或者其他代码托管平台。右上角你的账号登录个人信息,点击settings

    image.png

    点击SSH and GPG keys

    image.png

    image.png

    ssh-keygen -t rsa -C "email@github.com" -f ~/.ssh/github_rsa
    

    最后点击Add key 保存即可

  3. 添加私钥 sshadd /.ssh/idrsassh-add ~/.ssh/id_rsa ssh-add ~/.ssh/github_rsa 如果执行ssh-add时提示"Could not open a connection to your authentication agent" 可以先执行命令: sshagentbash然后再重新运行sshadd命令:ssh-agent bash 然后再重新运行ssh-add命令: ssh-add ~/.ssh/id_rsa sshadd /.ssh/githubrsa添加后我们可以通过sshaddl来确私钥列表ssh-add ~/.ssh/github_rsa 添加后我们可以通过 ssh-add -l 来确私钥列表 ssh-add -l 删除私钥列表,可以通过 ssh-add -D 来清空私钥列表 $ ssh-add -D

  4. 测试 $ ssh -T git@github.com

    1. 权限被拒绝 image.png
    ssh-keygen -t rsa -C "email@github.com" -f ~/.ssh/github_rsa
    ssh -v git@github.com
    ssh-agent -s 
    ssh-add ~/.ssh/github_rsa
    ssh -T git@github.com
    

    2. 重新尝试 身份验证通过 image.png