Git 操作常用命令详解

364 阅读4分钟

写在前面

本文介绍了git一些比较常用的操作命令。 在学习本文前, 请确认你当前计算机已经安装 git(点击下载) 工具。本文只会介绍一些常用或者是我自己用到过的, 并非git全部命令。

配置 用户名 & 邮箱
git config --global user.name "Your Name"
git config --global user.email "Email"
初始化
git init
关联 / 取消关联 GitHub远程仓库
git remote add origin '仓库地址'
git remote rm origin '解除错误关联' 
常用命令
git clone '仓库地址'                  拉取/克隆远程仓库到本地
git add . 或者 git add <file name>    添加到本地仓库
git commit -m '备注信息'              
git pull                              拉取代码(将远程仓库代码拉去到本地)
git branch <branch name>              创建 <branch name> 分支
git checkout <branch name>            切换 <branch name> 分支
git checkout -b <branch name>         创建并切换到对应 <branch name> 分支
git switch -c <branch name>           创建并切换到对应 <branch name> 分支
git merge <branch name><branch name> 分支代码合并到当前分支
git push -u origin <branch name>      将当前本地分支推送到远程仓库 <branch name> (第一次往远程仓库提交)
git checkout <file name>              还原当前文件更改

有时候会出现执行 git pull/push 时报错: fatal: unable to access ‘https://github.com/…我们只需要执行下面命令即可:

git config --global --unset http.proxy
git config --global --unset https.proxy
查看分支
1. git branch                            查看本地仓库所有分支
2. git branch -rv                        查看远程仓库所有分支
3. git branch -r                         查看远程仓库所有分支
4. git branch -a                         查看远程仓库和本地仓库所有分支

针对 2、3两种查看远程仓库分支的方法区别如下图:

微信图片_20220702234908.png

查看状态、本地和远程仓库内容对比
git status        查看提交状态
git status -s     文件状态信息, 常见状态: A: 新增、M: 文件变更、?: 未trackD: 删除
git diff [file]   显示暂存区和工作区的差异
git diff --cached [file]  显示暂存区和上一次提交(commit)的差异
git diff [first-branch]...[second-branch]  显示两次提交之间的差异
git diff HEAD -- [file]    查看工作区和版本库里面最新版本的区别
git diff --check [file]    检查是否有空白错误(regex:' {1,}$')
git diff --cached [file]   查看已add的内容(绿M)
历史版本 / 操作

对于 git log 相关的命令只介绍了一部分, 后续可能会将所有log 相关的命令补全。

git log        提交日志(用于查询版本的所有历史记录)
git log -n     最近 n 条的提交历史
git log <branch_name> -n   branch_name分支最近 n 条的提交历史
git log --stat             历次commit的文件变化
git log --shortstat        对比--stat只显示最后的总文件和行数变化统计(n file changed, n insertions(+), n deletion(-))
git log --name-status      显示新增、修改、删除的文件清单
git log lhs_hash..rhs_hash 对比两次commit的变化(增删的主语为lhs, 如git log HEAD~2..HEAD == git log HEAD -3)
git log -p                 历次commit的内容增删
git log -p -W              历次commit的内容增删, 同时显示变更内容的上下文
git log origin/id -1 --stat -p -W 查看远端分支/(id)前一次修改的详细内容
git log origin/master..dev --stat -p -W 查看本地dev分支比远端master分支变化(修改)的详细内容
git log <branch_name> --oneline   对提交历史单行排列
git log <branch_name> --graph     对提交历史图形化排列
git log <branch_name> --decorate  对提交历史关联相关引用, 如tag, 本地远程分支等
git log <branch_name> --oneline --graph --decorate 拼接一下, 树形化显示历史
版本回退: 撤销并舍弃指定的版本号之后的所有提交记录。使用需要谨慎。
git reset --hard HEAD^      回退到上个版本
git reset --hard HEAD~n     回退到上 n 个版本
git reset --hard id         回退到对应 id 记录版本
撤销: 撤销。但是保留了提交记录。并且他是移除指定的提交。

操作方式: 键盘i、进入编辑状态, 改一下提交的名称, 键盘Esc、冒号wq、回车、即可

git revert id               撤销到对应 id 记录版本
分支删除
删除本地仓库分支
    git branch -d '分支名称'              删除本地分支 --> 会在删除前检查merge状态(其与上游分支或者与head)
    git branch -D '分支名称'              是git branch --delete --force的简写,它会直接删除。

都是删除本地分支的方法(与删除远程分支命令相独立,要想本地和远程都删除,必须得运行两个命令)。

删除远程仓库分支
    git push origin --delete '分支名称'   删除远程仓库分支

以上就是我对git的部分总结, 虽然不全, 但是够用!
个人建议: 关于技术, 只有不断重复学习, 才方能如扎如稳前行!
创作不易, 希望给个三连!