Git入门图文教程⑩-Git常用指令集合

363 阅读8分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第36天,点击查看活动详情

🪧指令-查看状态信息

指令描述
git --version查看git版本
git status查看本地仓库状态,比较常用的指令,加参数-s简洁模式
git [指令] -h查看指令帮助信息
git [指令] --help打开指令详细帮助页面
git remote -v查看所有远程仓库,不带参数-v只显示名称
git branch查看分支列表,以及当前分支
git tag查看标签列表
git log -n20查看日志(最近20条),可省略n-20;参数--graph可视化显示分支关系
git log --follow [file]显示某个文件的版本历史,包括文件改名
git reflog查看所有可用的历史版本记录(实际是HEAD变更记录),包含被回退的记录,常用来撤销回退
git blame [file]以列表形式查看指定文件的历史修改记录
git config --list查看配置信息,包括系统(--system)+全局(--global)+项目(--local)配置
git config --list --system查看系统配置,全局(--global)、项目(--local)配置配置类似
cat [file]读取一个文件,展示其文件内容

🪧指令-代码/仓库管理

指令描述
git clone [git地址]从远程仓库克隆到本地(当前目录)
git init [文件目录]初始化创建Git仓库,如果不指定[文件目录],则在当前目录创建。
git add [file1] [file2]添加文件到暂存区,包括修改的文件、新增的文件
git add [dir]同上,添加目录到暂存区,包括子目录
git add .同上,添加所有修改、新增文件(未跟踪)到暂存区
git rm [file]删除工作区文件,并且将这次删除放入暂存区
git commit -m '说明'提交变更,参数-m设置提交的描述信息,应该正确提交,不带该参数会进入说明编辑模式
git commit -a参数-a,表示直接从工作区提交到版本库,略过了git add步骤,不包括新增的文件
git commit [file]提交暂存区的指定文件到仓库区
git commit --amend -m使用一次新的commit,替代上一次提交,会修改commithash值(id)
git cherry-pick [commit]拣选提交,复制一个特定的提交到当前分支,而不管这个提交在哪个分支
git log -n20查看日志(最近20条),不带参数-n则显示所有日志
git log -n20 --oneline参数“--oneline”可以让日志输出更简洁(一行)
git log -n20 --graph参数“--graph”可视化显示分支关系
git log --follow [file]显示某个文件的版本历史
git blame [file]以列表形式显示指定文件的修改记录
git reflog查看所有可用的历史版本记录(实际是HEAD变更记录),包含被回退的记录(重要

🪧指令-diff

指令描述
git diff查看暂存区和工作区的差异
git diff [file]同上,指定文件
git diff --cached查看已暂存的改动,就是暂存区与新版本HEAD进行比较
git diff --staged同上
git diff --cached [file]同上,指定文件
git diff HEAD查看已暂存的+未暂存的所有改动,就是与最新版本HEAD进行比较
git diff HEAD~同上,与上一个版本比较。HEAD~表示上一个版本,HEAD~10为最近第10个版本
git diff [id] [id]查看两次提交之间的差异
git diff [branch]查看工作区和分支直接的差异

🪧指令-远程仓库

指令描述
git clone [git地址]从远程仓库克隆到本地(当前目录)
git remote -v查看所有远程仓库,不带参数-v只显示名称
git remote show [remote]显示某个远程仓库的信息
git remote add [name] [url]增加一个新的远程仓库,并命名
git remote rename [old] [new]修改远程仓库名称
git pull [remote] [branch]取回远程仓库的变化,并与本地版本合并
git pull同上,针对当前分支
git fetch [remote]获取远程仓库的所有变动到本地仓库,不会自动合并!需要手动合并
git push推送当前分支到远程仓库
git push [remote] [branch]推送本地当前分支到远程仓库的指定分支
git push [remote] --force/-f强行推送当前分支到远程仓库,即使有冲突,⚠️很危险!
git push [remote] --all推送所有分支到远程仓库
git push –u参数–u表示与远程分支建立关联,第一次执行的时候用,后面就不需要了
git remote rm [remote-name]删除远程仓库
git pull --rebase使用rebase的模式进行合并

🪧指令-分支

指令描述
git branch列出所有本地分支,加参数-v显示详细列表,下同
git branch -r列出所有远程分支
git branch -a列出所有本地分支和远程分支,用不同颜色区分
git branch [branch-name]新建一个分支,但依然停留在当前分支
git branch -d dev删除dev分支,-D(大写)强制删除
git checkout -b dev从当前分支创建并切换到dev分支
git checkout -b feature1 dev从本地dev分支代码创建一个 feature1分支,并切换到新分支
git branch [branch] [commit]新建一个分支,指向指定commit id
git branch --track [branch] [remote-branch]新建一个分支,与指定的远程分支建立关联
git checkout -b hotfix remote hotfix从远端remotehotfix分支创建本地hotfix分支
git branch --set-upstream [branch] [remote-branch]在现有分支与指定的远程分支之间建立跟踪关联:
git branch --set-upstream hotfix remote/hotfix
git checkout [branch-name]切换到指定分支,并更新工作区
git checkout .撤销工作区的(未暂存)修改,把暂存区恢复到工作区。
git checkout HEAD .撤销工作区、暂存区的修改,用HEAD指向的当前分支最新版本替换
git merge [branch]合并指定分支到当前分支
git merge --no-ff dev合并dev分支到当前分支,参数--no-ff禁用快速合并模式
git push origin --delete [branch-name]删除远程分支
git rebase master将当前分支变基合并到master分支
✅switch:新的分支切换指令切换功能和checkout一样,switch只单纯的用于切换
git switch master切换到已有的master分支
git switch -c dev创建并切换到新的dev分支

🪧指令-标签管理

指令描述
git tag查看标签列表
git tag -l 'a*'查看名称是“a”开头的标签列表,带查询参数
git show [tagname]查看标签信息
git tag [tagname]创建一个标签,默认标签是打在最新提交的commit上的
git tag [tagname] [commit id]新建一个tag在指定commit上
git tag -a v5.1 -m'v5.1版本'创建标签v5.1.1039-a指定标签名,-m指定说明文字
git tag -d [tagname]删除本地标签
git checkout v5.1.1039切换标签,同切换分支
git push [remote] v5.1推送标签,标签不会默认随代码推送推送到服务端
git push [remote] --tags提交所有tag

🪧指令-撤销变更

指令描述
git checkout .撤销工作区的(未暂存)修改,把暂存区恢复到工作区。不影响暂存区,如果没暂存,则撤销所有工作区修改
git checkout [file]同上,file指定文件
git checkout HEAD .撤销工作区、暂存区的修改,用HEAD指向的当前分支最新版本替换工作区、暂存区
git checkout HEAD [file]同上,file指定文件
git reset撤销暂存区状态,同git reset HEAD,不影响工作区
git reset HEAD [file]同上,指定文件fileHEAD可省略
git reset [commit]回退到指定版本,清空暂存区,不影响工作区。工作区需要手动git checkout签出
git reset --soft [commit]移动分支masterHEAD到指定的版本,不影响暂存区、工作区,需手动git checkout签出更新
git reset --hard HEAD撤销工作区、暂存区的修改,用当前最新版
git reset --hard HEAD~回退到上一个版本,并重置工作区、暂存区内容。
git reset --hard [commit]回退到指定版本,并重置工作区、暂存区内容。
git revert [commit]撤销一个提交,会用一个新的提交(原提交的逆向操作)来完成撤销操作,如果已push则重新push即可

🪧指令-stash

指令描述
git stash把未提交内容隐藏起来,包括未暂存、已暂存。 等以后恢复现场后继续工作
git stash list查看所有被隐藏的内容列表
git stash pop恢复被隐藏的内容,同时删除隐藏记录
git stash save "message"git stash,可以备注说明message
git stash apply恢复被隐藏的文件,但是隐藏记录不删除
git stash drop删除隐藏记录

命令行的退出方式

有些git命令的执行并不是一次就完成了,会有连续的后续操作。 ① “git log”退出git log输出历史日志记录,比较多的时候先出现一部分,输入回车持续输出。

  • 退出方式:输入“q”。

② “git commit”退出git commit没有带-m参数时,会进入vim编辑模式,等待输入提交的描述信息。

  • 保存并退出:
    1. 按 Esc 键退出编辑模式,英文模式下输入 :wq ,然后回车。
    2. 按 Esc 键退出编辑模式,大写英文模式下输入 ZZ ,然后回车。
  • 不保存退出:
    1. 按 Esc 键退出编辑模式,英文模式下输入 :q! ,然后回车。
    2. 按 Esc 键退出编辑模式,英文模式下输入 :qa! ,然后回车。

参考资料


©️版权申明:版权所有@安木夕,本文内容仅供学习,欢迎指正、交流,转载请注明出处!原文编辑地址-语雀