git常用命令及其图解

Git常用命令及图解

在这里插入图片描述

本地操作命令

git add
命令
git add 文件名将工作区的某个文件添加到暂存区
git add -u添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件
git add -A添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件
git add *将当前工作区的所有文件都加入暂存区
git add -i进入交互界面模式,按需添加文件到缓存区
git status
命令
git status查看工作区与暂存区的当前情况
git status -s让结果以更简短的形式输出
git commit
命令
git commit -m “提交说明”将暂存区内容提交到本地仓库
git commit -a -m “提交说明”跳过缓存区操作,直接把工作区内容提交到本地仓库
git diff
命令
git diff工作区与缓存区的差异
git diff 分支名工作区与某分支的差异,远程分支这样写:remotes/origin/分支名
git diff HEAD工作区与HEAD指针指向的内容差异
git diff 提交id 文件路径工作区某文件当前版本与历史版本的差异
git diff --stage工作区文件与上次提交的差异(1.6 版本前用 --cached)
git diff 版本TAG查看从某个版本后都改动内容
git diff 分支A 分支B比较从分支A和分支B的差异(也支持比较两个TAG)
git diff 分支A…分支B比较两分支在分开后各自的改动
git log
命令
git log查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明)
git log -p -次数查看最近多少次的提交记录
git log --stat简略显示每次提交的内容更改
git log --name-only仅显示已修改的文件清单
git log --name-status显示新增,修改,删除的文件清单
git log --oneline让提交记录以精简的一行输出
git log –graph –all --online图形展示分支的合并历史
git log --author=作者查询作者的提交记录(和grep同时使用要加一个–all–match参数)
git log --grep=过滤信息列出提交信息中包含过滤信息的提交记录
git log -S查询内容和–grep类似,S和查询内容间没有空格
git log fileName查看某文件的修改记录,找背锅专用
git blame
命令
git blame 文件名查看某文件的每一行代码的作者,最新commit和提交时间

文件回复/版本回退

git checkout

未commit前想对文件进行恢复:

# 删除暂存区中的文件:
git rm 文件名
git commit -m "提交说明"
# 误删恢复文件
git checkout -- 文件名
# 另外注意:git checkout会抛弃当前工作区的更改!!!不可恢复!!!务必小心!!!
git reset HEAD

如果更改(commit)后add到了暂存区,想恢复原状,下述指令可以让文件恢复原状:

git reset HEAD 文件名   
git checkout 文件名
git reset --hard

文件已经commit了,想恢复成上次commit的版本或者上上次,可以:

git reset HEAD^ # 恢复成上次提交的版本
git reset HEAD^^ # 恢复成上上次提交的版本,就是多个^,以此类推或用~次数
git reset --hard 版本号 # git log查看到的SHA1值,取前七位即可,根据版本号回退
git reflog
命令
git blame 文件名查看某文件的每一行代码的作者,最新commit和提交时间
git revert
命令
git revert HEAD撤销最近的一个提交
git revert 版本号撤销某次commit
git show
命令
git show 提交id查看某次commit的修改内容
git rev-parse
命令
git rev-parse 分支名查看分支commit的版本号,可以写HEAD
git fsck

因为你的某次误操作导致commit丢失,如果git reflog都找不到,你可以考虑使用git fsck,找到丢失的对象的版本id,然后恢复即可。

命令
git fsck --lost-found找回丢失是版本对象id

本地分支

命令
git branch (branchname)创建分支命令
git branch列出分支
git checkout (branchname)切换分支命令
git merge (branchname)合并分支
git checkout -b (branchname)创建新分支并立即切换到该分支下
git branch -d (branchname)删除分支命令
git push推送本地仓库到远程仓库
git clone克隆远程仓库

Git fetch和pull的区别

Git中从远程的分支获取最新的版本到本地有这样2个命令:

git fetch:相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master
git log -p master…origin/master
git merge origin/master

以上命令的含义:

首先从远程的origin的master主分支下载最新的版本到origin/master分支上;然后比较本地的master分支和origin/master分支的差别;最后进行合并。上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的tmp分支上之后再进行比较合并

git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

上述命令其实相当于git fetch 和 git merge 在实际使用中,git fetch更安全一些。因为在merge前,我们可以查看更新情况,然后再决定是否合并结束。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值