git常用的操作记录一下

代码仓库

创建仓库

  1. 进入需要创建代码库的文件夹-----cd 文件路径
  2. 创建初始化仓库-----git init
  3. 拉取远程仓库到本地-----git clone 仓库路径

添加文件到仓库

  1. 添加文件到暂存区

    • 添加单个文件-----git add 文件名
    • 添加所有文件-----git add .
    • .gitignore文件中指定的文件会被忽略
    • 空目录也会被忽略
  2. 提交到本地仓库

    • git commit -----填写mssage
    • 不建议使用git commit -m 'message'
    • 提交遵循commit message规范
  3. 查看工作区状态-----git status

  4. 对比工作区变化-----git diff

  5. 建议将beyond compare配置为diff工具,用于diff以及merge冲突

仓库配置

  1. 全局配置用户名和邮箱
    • git config --global user.name 'name'
    • git config --global user.email 'email'
  2. 配置当前仓库用户名和邮箱
    • git config user.name ''
    • git config user.email ''

代码版本/提交切换

查看过去版本/提交

  1. 提交详情-----git log
  2. 提交简介-----git log --pretty=oneline

回退版本/提交

  1. 回退到当前最新提交-----git reset --hard HEAD
  2. 回退到上次提交-----git reset --hard HEAD^
  3. 回退到上n次提交-----git reset --hard HEAD~n
  4. 回退到某次提交-----git reset --hard commitid

重返未来版本

  1. 查看历史提交以及被回退的提交-----git reflog(有时间限制且只能本地)
  2. 回到未来版本-----git reset --hard commiyid

撤销修改

  1. 没有提交到暂存区/没有add的-----撤销修改-----git checkout 文件名

  2. 暂存区文件修改

    1. 先将暂存区文件撤回到工作区-----git reset HEAD 文件(不带--hard)
    2. 撤销修改-----git checkout 文件名
  3. 提交到了版本库-----回退版本

删除文件

  1. 从版本库中删除文件-----git rm 文件名
  2. 恢复删除-----撤销修改
  3. 从版本库中删除文件但是本地不删除文件-----git rm --cached 文件名

分支

创建与合并分支

  1. 创建分支
    1. 仅创建-----git branch 分支名
    2. 创建并切换-----git checkout -b 分支名
    3. 本地仓库操作,创建的都是本地的分支
  2. 切换分支-----git checkout 分支名
  3. 合并分支
    • 合并某分支到当前分支-----git merge
  4. 删除分支
    • 删除本地未合并分支-----git branch -D 分支名
    • 删除本地已合并分支-----git branch -d 分支名
    • 删除远程分支-----git push origin -d 分支名
    • 删除远程分支-----git push <远程仓库名> -d 分支名
  5. 查看分支
    • 查看本地分支-----git branch
    • 查看本地远程所有的分支----- git branch -a
  6. 合并分支,解决分支冲突
    1. 将要合并的分支更新到最新,切换到主分支,合并分支,解决合并时的confict,提交到版本库,合并成功
    2. 查看分支状态-----git log --graph
    3. 查看分支状态-----git log --graph --pretty=oneline --abbrey-commit
  7. 开发完需要提交PR/MR

暂存修改

  1. 暂存工作现场-----git stash
  2. 恢复工作现场-----git stash apply
  3. 删除工作现场-----git stash drop
  4. 恢复+删除-----git stash pop

多人协作

  1. 查看远程库信息

    1. 详细-----git remote -V
    2. 不详细-----git remote
  2. 更新推送远程库

    1. 更新远程库信息-----git fetch
    2. 将远程库最新修改更新到本地-----git pull(git pull可以认为是git fetch+git merge)
    3. 将本地修改推送到远程库-----git push origin 分支名
  3. 本地分支与远程分支交互

    1. 使用远程分支A创建本地分支-----git checkout -b A origin/A (origin是远程仓库名,若名字一样origin/A可以省略)
    2. 将本地分支与远程分支关联-----git branch --set-upstream A origin/A

代码版本

查看tag

  1. 查看本地tag-----git tag
  2. 查看远程tag-----git tag -r

操作tag

  1. 给当前版本添加tag-----git tag 标签名
  2. 给历史版本添加tag-----git tag 标签名 commitid
  3. 删除本地标签-----git tag -d 标签名
  4. 删除远程标签-----git push origin -d 标签名
  5. 推送到远端仓库-----git push origin 标签名
  6. 推送所有未提交的tag-----git push origin --tags
  7. 更新到本地-----git pull origin --tags

其他

使用git help查看git常用的命令,使用git help -a 查看git可用的所有命令

git常用的操作记录一下