Git 基本操作以及遇到的问题记录

#Git 2024/11/05 13:57:32
目录
  1. Config 命令
  2. 设置账号
  3. 使用技巧
  4. 遇到的问题

Config 命令

# 查看git config
git config --global --list
# 配置一个config 项
git config --global proxy http://localhost:8080
# 取消配置项
git config --global --unset proxy

设置账号

git config --global user.name username
git config --global user.email email

#ssh 登录
ssh-keygen -t rsa #将公钥保存在git服务端

#http 登录
http://username:pass@domin #~/.git-credentials
git config --global credential.helper store #长期存放密码(另有cache缓存密码)

#带登录信息拉取
git clone http://username:pass@domin/*.git

使用技巧

  • 删除分支

    #删除 abc-*开头的分支
    git branch -D `git branch | grep abc-*`
    
    #删除所有已经合并的分支
    git branch --merged | egrep -v "(^\*|master|main|dev)" | xargs git branch -d (分支名称有特殊字符会报错)
    
    #删除所有已经合并的分支
    git branch --merged | grep -v "^\*\|master\|main\|dev" | while read branch; do git branch -d "$branch"; done
  • 连接本地与远程分支 git branch --set-upstream-to=origin/master master

  • 允许不同历史拉取 git pull --allow-unrelated-histories

  • 添加远程地址 git remote add origin url

  • 多个远程地址 (theme/origin) git pull theme master git pull origin master

  • 更新.gitignore

    git rm -r --cached . #清除缓存
    git add . #重新 trace file
    git commit -m "update .gitignore" #提交和注释
    git push origin master #可选,如果需要同步到 remote 上的话
  • 在.gitignore 中添加新的忽略内容后更新 gitignore (components.d.ts)

    git rm -r --cached components.d.ts
  • 添加被 .gitignore 忽略的文件

    git status --ignored # 显示被忽略的文件
    git add -f <file_name>  # 添加文件

遇到的问题

  • clone 代码‘The requested URL return error 403’

    如果有多个用户设置过 git 账号,有可能是以前用户的 git 账号信息未清除,在 windows 控制面板 > 账号控制 > 登陆凭证下检查 git 凭证信息

  • 提交代码时换行问题

    git config --global core.autocrlf [true | false | input]
    
    #true 提交时将所有 CRLF 转为 LF,拉取时将 CRLF 转为 LF,适合 windows
    
    #input 提交代码时将所有 CRLF 转为 LF,拉取时不作任何改变,适合 linux
    
    #false 不作任何改变
    
    #在项目里添加.gitattributes 配置文件设置格式,优先级高于 autocrlf
  • 拉取代码时报错

    fatal: bad object refs/remote/origin/fix-hotpot
    error: https://github.com/repo.git did not send all necessary objects
    # 删除路径 .git/refs/remote/origin/fix-hotpot
  • 之前 revert 撤销的合并,在后续合并时还是会被主分支移除。

    因为主分支记录中还有之前的 revert 记录,需要继续 revert 之前的 revert 记录,如之前的 revert 记录为 14a4039a32169ede2bc2d3f92fe88982ecca68b8,即 git revert 14a4039a32169ede2bc2d3f92fe88982ecca68b8