git相关操作命令

67 阅读4分钟

1. git整体操作流程

1.1 基础配置

  1. 下载安装git

    下载地址:https://git-scm.com/download/win
    
  2. 查看是否安装成功

    git --version
    
  3. git初始化配置

    • 配置本地仓库签名——用于识别代码仓库个人信息
    # 设置用户名
    git config --global user.name 名称
    # 是在用户邮箱
    git config --global user.email 邮箱
    

1.2 配置密钥 实现远程免密登录

  1. git bash中生成私钥

    ssh-keygen -m PEM -t rsa -C "邮箱"
    
  2. 路径下找到id_rsa.pub打开并复制其中内容

    C:\Users\sepy2.ssh
    
  3. 将复制的内容粘贴到源层仓库的密钥

  4. 点击add key完成

  5. 生成密钥的种类

    # 1. 设置自己的邮箱+三次回车确认
    # 1.1 私钥是open格式
    ssh-keygen -t rsa -C “配置自己邮箱”
    # 1.2 私钥是rsa形式
    ssh-keygen -m PEM -t rsa -C "邮箱"
    # 1.3 提示信息要求输入密码:可以不输入为空
    Enter passphrase (empty for no passphrase):
    # 1.4 完成提示
    Your identification has been saved in /c/Users/you/.ssh/id_rsa.
        # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
        # The key fingerprint is:
        # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
    # 2. 查看用户信息配置情况
    git config --list 
    

1.3 从远程仓库拉取代码

  1. 复制远程仓库链接

  2. 选取要防止仓库的路径,打开git bash

    git clone "链接"
    

1.4 将本地代码推送到远程仓库

  1. 一般步骤

    # 0.复制git远程仓库的地址
    # 1.git bash本地初始化版本库
    git init
    # 2.添加文件
    git add .
    # 3.提交版本库+备注
    git commit -m "first commit"
    # 4.远程库关联
    git remote add origin 你的远程库地址
    # 5.先拉去远程仓库的代码——冲突时候使用参数 --allow-unrelated-histories 强制合并
    git pull origin master
    git pull origin master --allow-unrelated-histories
    # 6.第一次推送
    ## 6.1可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push
    git push -u origin master
    # 7.之后推送
    git push origin master 
    

1.5 遇到的问题

1.5.1 Push to origin/master was rejected:推送时候被拒绝

  1. 解决

    git pull origin master --allow-unrelated-histories
    git push -u origin master -f
    

1.5.2 failed to push some refs to:推送失败

  1. 解决

    # 1.强制push
    ## 1.1这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候
    git push -u origin master -f 
    # 2.push前先将远程repository修改pull下来,在推送
    git pull origin master
    git push -u origin master
    # 3.若不想merge远程和本地修改,可以先创建新的分支,在推送
    git branch [name]
    git push -u origin [name]
    ​
    

1.5.3 分支冲突:fatal: refusing to merge unrelated histories

  1. 解决——强制推送

    git pull origin master  --allow-unrelated-histories
    git merge master --allow-unrelated-histories
    

1.5.4 拉取失败:error: failed to push some refs to

  1. 解决

    git pull --rebase origin master
    git push -u origin master
    

1.6 其他命令

1.6.1 查看本地git信息,同时修改对应信息

# 1.查看当前登录用户名:
git config user.name
# 2.查看当前登录邮箱:
git config user.email
# 3.修改用户名和邮箱:
git config --global user.name “xxx”
git config --global user.email “xxx”
# 4.查看用户配置信息
git config --list 

1.6.2 修改本地git密码

# 1. 获取当前登陆用户
# 1.1 获取当前登录的用户和邮箱
git config user.name   
git config user.email 
# 2. 修改登陆用户
git config --global user.name 'userName'    // 修改登陆账号,userName为你的git账号
git config --global user.email 'email'      // 修改登陆邮箱,email为你的git邮箱
git config --global user.password 'password'  // 修改登陆密码,password为你的git密码
# 3.清理本地缓存
git clean -df

1.6.3 切换git用户

# 1.查看当前用户
git config user.name
# 2.查看当前邮箱
git config user.email
# 3.修改用户
git config --global user.name "sepy"
# 4.修改邮箱
git config --global user.email "sepy236726@163.com"

1.6.4 分支操作

# 1.创建分支
git branch 分支名
# 2.查看分支
git branch -v
# 3.切换分支
git checkout 分支
# 4.指定分支合并到当前分支
git merge 分支名

1.6.4 索引指针移动

# 1.查看历史版本
git log     # 版本详细信息
git reflog # 版本信息
# 2.移动指针到指定版本
git reset --hard 版本号
git reset --hard 索引值局部
git reset --hard a6ace91
# 3.其他操作
git log --pretty=oneline  # 每个历史只显示一行(hash值和日志)
git log --oneline   # 每个历史只显示一行且显示hash的部分值
git reflog   # 显示历史只显示一行,并且显示指针(要移动到版本多少步)
# 4.