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

相关推荐
ljh5746491195 小时前
git stash 和 git stash apply
git
慕容引刀10 小时前
告别Commit信息纠结:使用Git AI Commit插件实现规范化提交
人工智能·git·github·visual studio code·visual studio
敲代码的嘎仔1 天前
实习日志day6--实习日志day6--title命名规范化&businessType纠正&补充缺失的@Log注解&报警与通信模块补充&产出阶段总结文档
java·开发语言·人工智能·git·python·实习·大二
刘马想放假1 天前
Git 从入门到进阶:一篇吃透版本管理的实战指南
git·gitlab
开发者联盟league1 天前
git commit报错No .pre-commit-config.yaml file was found
git
猫老板的豆1 天前
git实战
git
风曦Kisaki1 天前
# Linux实战笔记-HIS项目实战Day01:版本控制与Git基础
linux·笔记·git
鲸~屿1 天前
Git上传本地文件到GitHub教学指南
git·github