git相关命令查阅

Git - Book (git-scm.com)

git 篇

1. 基础配置

修改用户名和邮箱

git config --global user.name "your_username"

git config --global user.email "your_email"

查看当前配置

git config --list

配置你熟悉的文本工具,git 默认为 nano,在代码提交 commit 时需要使用

git config --global core.editor vim

配置比较工具

git config --global merge.tool vimdiff

默认情况下,文件内容未修改,不过文件权限修改的话,git也会认为文件进行了改动,此时设置core.fileMode为false,则可以忽略文件的权限修改

git config --global core.fileMode false

在 windows 下修改文件的话,由于换行符的差异,在git diff检查本地修改时,会发现多了很多^M的情况,通过此配置取消换行符自动转换

git config --global core.autocrlf false

查看当前登陆账号和邮箱

git config user.name

git config user.email

2. 设置 SSH Keys

  1. 生成新的ssh key命令:ssh-keygen -t rsa -C "your_email"(默认回车即可)
  2. 会在~/.ssh/下生成 id_rsa 和 id_rsa.pub 两个文件
  3. 查看公钥内容并复制:cat ~/.ssh/id_rsa.pub
  4. 添加 ssh key 的位置:GitLab 里面点击右上角头像,选择 Edit profile -> SSH Keys,粘贴复制的ssh key,选择add key选项,如下图所示:

3. git 常用命令

git push origin main:main_hhf

本地分支关联远程分支

git branch --set-upstream-to=origin/<remote> <branch>

git切换到某个commit id

  1. git log //找到你的日志commit号为22dfbf1f907764c5ae70381b8191104f9af21d8c
  2. git checkout -b dev_2.0 22dfbf1f907764c5ae70381b8191104f9af21d8c //在本地新建一个dev_2.0分支
  3. git branch //查看分支
  4. git push --set-upstream origin dev_2.0 //将本地dev_2.0分支推到远程

当使用git clone下来的工程中带有submodule时,初始的时候submodule的内容不会自动下载下来,执行以下命令:

git submodule update --init --recursive,即可将子模块的内容下载下来

git如何添加空目录

在空目录下,添加.gitkeep文件

4. 创建与克隆

初始化本地仓库

git init

克隆远程仓库

git clone <url>

克隆到指定目录

git clone <url> <目录名>

5. 查看状态与差异

查看工作区状态

git status

查看未暂存的改动

git diff

查看已暂存的改动

git diff --staged

简洁图形化查看提交历史

git log --oneline --graph --all

6. 暂存与提交

暂存指定文件

git add <文件>

暂存所有改动

git add .

提交

git commit -m "提交说明"

暂存已跟踪文件并提交

git commit -am "提交说明"

7. 分支操作

查看本地分支

git branch

新建分支

git branch <分支名>

切换分支

git checkout <分支名>

新建并切换分支

git checkout -b <分支名>

切换分支(新语法)

git switch <分支名>

新建并切换(新语法)

git switch -c <分支名>

合并指定分支到当前分支

git merge <分支名>

删除分支

git branch -d <分支名>

8. 远程操作

查看远程仓库

git remote -v

添加远程仓库

git remote add origin <url>

拉取远程更新(不合并)

git fetch

拉取并合并

git pull

推送到远程

git push

首次推送并建立跟踪关系

git push -u origin <分支名>

9. 撤销与回退

撤销上次提交,保留改动

git reset --soft HEAD~1

撤销上次提交并丢弃改动(危险,慎用)

git reset --hard HEAD~1

生成一个反向提交来撤销(安全,保留历史)

git revert <commit>

丢弃工作区改动(新语法)

git restore <文件>

取消暂存(新语法)

git restore --staged <文件>

取消暂存(旧语法)

git reset HEAD <文件>

10. 暂存现场(stash)

暂存当前改动

git stash

git stash -m "msg"

查看 stash 列表

git stash list

恢复最近的 stash 并删除

git stash pop

恢复指定的 stash 并删除

git stash pop stash@{0}

git stash pop stash@{1}

git stash pop stash@{2}

恢复最近的 stash 但不删除

git stash apply

恢复指定的 stash 但不删除

git stash apply stash@{0}

git stash apply stash@{1}

git stash apply stash@{2}

删除最近的 stash

git stash drop

删除指定的 stash

git stash drop stash@{0}

git stash drop stash@{1}

git stash drop stash@{2}

11. 常用查看

查看某次提交详情

git show <commit>

查看每行由谁修改

git blame <文件>

查看所有操作记录(找回丢失的提交)

git reflog

相关推荐
nuisthou9 小时前
git常用命令总结
git
西邮彭于晏9 小时前
Git 标签(Tag)与版本发布完整指南|附全场景命令速查表
大数据·git·elasticsearch
潘正翔10 小时前
k8s进阶_Harbor镜像仓库
git·云原生·容器·kubernetes·gitee·github
InfinitePlus12 小时前
Git基本操作-命令行
git
茉莉玫瑰花茶12 小时前
TCP 全连接队列与 tcpdump 抓包
git·github·tcp·tcpdump
炸膛坦客13 小时前
Git 和 GitHub:(十四)rebase 到某个有新提交的远程仓库的分支
git·github
炸膛坦客1 天前
Git 和 GitHub:(十二)基于远程仓库的某一个分支的某一笔提交创建新分支
git·github
炸膛坦客1 天前
Git 和 GitHub:(十三)改分支名
git·github
他们叫我秃子1 天前
Git 使用指南笔记:从入门到团队协作
git
铁锚1 天前
Git设置自动推送到同名远端分支
git