Redbattle
踩坑
环境
项目
配置
知识点
踩坑
环境
项目
配置
知识点
  • 项目礼仪(Worktile版本)
  • Git 常用命令
    • 单元测试
    • Github Pages 前端自动化部署
    • 前端开发规范
    • 创建VUE项目
    • project
    2021-09-22

    Git 常用命令

    # 基本命令

    • 生成 ssh key
      ssh-keygen -t rsa -C "<邮箱>" 
      
    • 设置用户
      git config --global user.name "Your Name"
      git config --global user.email "email@example.com"
      // 编辑配置文件
      git config --global --edit
      
    • git init 初始化
      git init
      
      git remote add origin <仓库地址>
      
    • git clone 直接克隆
      git clone <仓库地址>
      
    • 创建分支
      # 基于远程分支来创建分支
      git checkout -b <branchName> origin/develop
      
      # 设置本地master分支关联远程master分支
      git branch --set-upstream-to=origin/master master
      
    • 查看远程仓库信息
      git remote -v
      
    • 修改远程仓库地址
      git remote set-url origin <仓库地址>
      
    • 查看记录
      git log
      
      # 查看历史变更记录
      git reflog
      
    • 回滚操作
      # 回退指定版本,回退后目标版本后面的提交消失。使用 `git push -f` 强制推送(不建议使用)
      git reset --hard <版本号>
      
      # 撤销某版本的修改提交,撤销后目标版本后面的提交不会消失,会生成一个新版本,可能会出现冲突,需要手动解决。使用 `git push` 推送(建议使用)
      git revert -n <版本号>
      
      # 撤销pull
      git reflog
      git reset --hard HEAD@{n}
      
    • 标签tag
      # 查看标签
      git tag
      
      # 新建标签
      git tag <标签>
      
      # 删除标签
      git tag -d <标签>
      
      # push 标签
      git push origin <标签>
      
      # 推送所有标签
      git push origin --tags
      

    # 删除

    • 删除本地分支
      git branch -D <分支>
      
    • 精简分支列表里已远程被删除的分支
      git fetch -p
      

    # pull拉取

    • pull
      # 拉取关联分支
      git pull
      
      # 拉取远程master分支
      git pull origin master
      
    • 强制pull,远程master分支覆盖本地文件
      git fetch --all
      
      git reset --hard origin/master
      

    # push推送

    • push
      # 推送关联分支
      git push
      
    • 强制push,覆盖远程master文件
      git push -u origin master -f
      
    • 指定的提交(commit)应用于其他分支
      # 将指定的提交应用于当前分支
      git cherry-pick <commitId>
      
      # 将两个提交应用到当前分支
      git cherry-pick <commitA> <commitB>
      
      # 将从 A 到 B 的所有提交应用到当前分支
      git cherry-pick A..B
      

    # 合并

    • 合并分支
      # 切换到A分支
      git checkout A_branch
      
      # 合并B分支到A分支
      git merge B_branch
      
    • 合并指定文件
      # 切换到A分支
      git checkout A_branch
      
      # 合并B分支上f文件到A分支上,将B分支上 f 文件追加补丁到A分支上 f文件。你可以接受或者拒绝补丁内容。
      git checkout --patch B_branch f.txt
      
    • 解决合并冲突
      # dev-202201分支合并到dev分支出现合并冲突
      
      git pull dev-202201
      
      git checkout dev
      
      git pull dev
      
      git merge --no-ff dev-202201 # merge后手动解决冲突
      
      git push origin dev
      

    # 重新弹出输入密码

    ```bash
    # fatal: Authentication failed for
    
    # 执行
    git config --system --unset credential.helper
    
    #或者在git的配置文件删除
    [credential]
        helper = manager
    ```
    

    # 实现本地多个ssh-key

    ```bash
    # 在新增私钥的时候,通过指定不同的文件名来生成不同的私钥文件
    ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "zhaiyu@126.com"
    ssh-keygen -t ed25519 -f ~/.ssh/id_rsa.github -C "zhaiyu@126.com"
    
    # 新增ssh的配置文件,并修改权限
    touch ~/.ssh/config
    chmod 600 ~/.ssh/config
    
    # 修改config文件的内容:
    Host github.com
        IdentityFile ~/.ssh/id_rsa.github
        User git # 计算机用户
    
    Host gitlab.blogcore.cn
        IdentityFile ~/.ssh/id_rsa.gitlab
        User git # 计算机用户
        RSAAuthentication yes
    ```
    

    # 报错处理

    • 拉取代码报错error: cannot lock ref 'refs/remotes/origin/xxx':ref xxx is at OOO expected XXX
      # 有些分支在远程其实早就被删除了,但是在你本地依然可以看见这些被删除的分支,在根目录下运行 
      git remote prune origin
      # 刷新本地仓库与远程仓库的保持这些改动的同步,这样就不会报错了
      
    • github拉取代码提示密码权限,可能是网络没有配置dns
      8.8.8.8
      
    #Git#版本管理
    最近更新
    01
    烧虾球
    05-13
    02
    二次开发
    12-20
    03
    文字展开收起
    10-17
    更多文章>
    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式