【Git】初始配置以及常用操作命令


前言

  • git安装好后,需要配置个人用户信息,其次配置ssh公钥,便于使用ssh连接克隆项目


一、git初始化配置

【Git配置多个SSH Key】 请点击此处查看

1、 初始化提交时的用户信息

  • 设置你的用户名称与邮件地址 ,git每一次操作都会使用这些信息作为标识,并且它会写入到你的每一次提交中,不可更改
  • 全局信息设置(所有的项目都会使用这个信息进行代码提交)
    • git config --global user.name "自己的github或gitte的用户名"
    • git config --global user.email "自己的github或gitte的绑定的主要邮箱"
  • 单个项目设置(会在项目里的.git/config文件中追加user配置,此时这个项目在提交代码时,不会使用全局的user信息)
    • git config user.name ""
    • git config user.email ""
  • 可以使用命令查看全局配置信息
    • git config --global -e 打开全局配置文件
    • git config --list 展示全局的配置,按上下键滚动查看
    • git config user.name 查看当前项目配置的name或email

2、 生成公钥并获取到github/gitte的授权 (Gitee帮助中心-生成/添加SSH公钥

  • 生成ssh key

    • ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
    • 注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱
    • 现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
  • 按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key

    • cat ~/.ssh/id_rsa.pub(也可以直接使用 clip 命令将文件内容复制到剪贴板中:clip < ~/.ssh/id_rsa.pub)
  • 复制生成后的 ssh key,通过仓库主页 「Settings」->「SSH and GPG keys」->「SSH keys」->「New SSH key」 ,添加生成的 public key 添加到仓库中。

  • 首次使用需要确认并添加主机到本机SSH可信列表。键入下方命令,提示Are you sure you want to continue connecting (yes/no/[fingerprint])?,键入yes完成认证

    • ssh -T git@github.com (如果是绑定gitee,则输入:ssh -T git@gitee.com)
    • 若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.,则证明添加成功

3、克隆远程仓库

  • 去远程仓库复制仓库ssh/https等任意链接
    • git clone 仓库地址
  • 如果想拉取指定分支,则使用 -b 命令
    • git clone -b 分支名称 仓库地址
    • git clone -b 分支名称 --single-branch 仓库地址
    • 使用--single-branch ,将只获取与下载的分支有关的更新。如果您在不关心的其他分支上有很多文件,这会更快,但是只会显示这一个分支,其他远程分支并不会展示。
  • 此时会在当前目录下创建新的目录并将远程仓库拉取到文件中,称之为本地仓库

二、 日常开发时git操作流程

1. 合并分支操作

  • 首先切换到主分支,更新到最新
    • git checkout master
    • git pull
  • 切换到分支,解决冲突
    • git checkout local
    • git rebase -i HEAD~2 //合并提交 --- 2表示合并两个
    • git rebase master---->解决冲突--->git rebase --continue
  • 分支合并,推送
    • git checkout master
    • git merge local
    • git push

2. 修改远程分支名称

  • 修改本地分支名称
    • git branch -m <old branch> <new branch>
  • 删除远程分支
    • git push --delete <origin> <olr branch>
  • 推送本地仓库的新分支到远程仓库
    • git push <origin> <new branch>
  • 将本地新分支与远程新分支建立联系
    • git branch --set-upstream-to <origin>/<new branch>

三、 git常用命令汇总

1. 基本命令

  • 初始化当前目录作为git仓库,并当前路径创建.git目录
    • git init
  • 添加文件到版本控制
    • git add .
    • git add README.md
  • 提交代码到本地仓库
    • git commit -m "初始化项目提交"
    • 注意:在 Linux 系统中,commit 信息使用单引号,Windows 系统,commit 信息使用双引号
  • 克隆仓库到本地或指定目录下
    • git clone
    • git clone

2. 分支操作 branch

  • 新建分支dev

    • git branch feature-test
  • 查看分支

    • git branch -r 查看本地所有分支

    • git branch -a 查看本地和远程的所有分支

  • 删除分支

    • 删除本地分支dev
      • git branch -d dev
      • git branch -D dev 强制删除分支
    • 方式1:删除远程分支origin:dev
      • git branch -d -r dev 先删除本地dev
      • git push origin:dev 然后推送远程dev分支删除
    • 方式2:删除远程分支origin:dev
      • git push --delete origin dev
  • 重命名本地分支

    • git branch -m old new
  • 查看各个分支的最后一次提交

    • git branch -v
  • 查看那些分支合并入当前分支

    • git branch –merged
  • 查看哪些分支未合并入当前分支

    • git branch –no-merged

3. 分支切换:checkout

  • 切换分支dev
    • git checkout dev
  • 创建并切换分支dev
    • git checkout -b dev
  • 拉取远程dev分支并分化一个新分支feature-dev
    • git checkout -b feature-dev origin/dev

4. 远程管理:remote

  • 查看本地仓库绑定的的远程仓库地址
    • git remote -v
  • 为本地仓库添加远程仓库地址
    • git remote add origin <remote-url>
  • 重命名远程名称
    • git remote rename <origin> <old branch>
  • 修改远程推送的地址
    • git remote set-url <origin> <remote-url>
  • 删除远程名称和地址
    • git remote rm <origin>

5. pull、fetch

  • 拉取远程仓库到本地仓库
    • git fetch origin 【合并前先询问】
    • git pull origin 【直接合并到本地】

6. push

  • 推送本地仓库到远程仓库
    • git push <origin>
  • 推送当前分支到远程仓库的分支
    • git push <origin> <branch>

7. stash

  • 暂存(可以指定暂存的描述名称文本)
    • git stash save ""
  • 查看所有暂存的记录
    • git stash list
  • 查看暂存和当前分支的差异
    • git stash show stash@
    • 加上-p可以看详细差异
  • 指定使用最新缓存创建分支
    • git stash branch <branch-name>
  • 恢复暂存的工作
    • pop命令恢复,恢复后,暂存区域会删除当前的记录
      • git stash pop stash@
    • apply命令恢复,恢复后,暂存区域会保留当前的记录
      • git stash apply stash@
  • 删除暂存
    • 删除某个暂存,暂存记录保存在list内,需要通过list索引index取出恢复
      • git stash drop stash@
    • 删除全部暂存
      • git stash clear

8. 其他命令

  • git clone --depth=1 克隆的深度为1,只克隆最新的一条commit记录的文件数据,避免克隆时下载到以往commit记录里的超大内容提交
  • git status 工作区的状态
  • git diff [--cached] 查看提交后的代码和add的区别
  • git log [--online] [--graph] 显示提交过的版本信息
  • git reflog 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
  • git reset HEAD^ 撤销暂存区所有的添加内容(idea选择mixed)
posted @ 2021-02-25 23:00  中国制造  阅读(389)  评论(0编辑  收藏  举报