Git常用命令,终于知道reset怎么用了!

Git常用命令

Git命令含义
init将本地工程初始化为本地仓库,纳入版本控制
clone从远端克隆仓库
add将工作区修改保存到暂存区
status查看暂存区(green)和工作区(red)的修改
commit将修改提交到本地仓库
push将本地当前分支的提交推送到远端仓库
log查看提交的日志
reset将提交回退到某一次提交时的状态
branch分支的新增、浏览、删除等,不能切换分支
checkout查看当前分支状态,切换分支
merge合并分支
diff查看工作区的修改

普通命令含义
rm -rf [file/dir]删除文件或文件夹
rm -rf .git根目录执行,删除仓库
exit退出 git bash
clear清空 git bash 界面

init

将本地工程初始化为本地仓库,纳入版本控制

git init

clone

从远端克隆仓库

git clone URL

例:
git clone git@github.com:leiyu1997/Blogs.git

URL有两种形式:

  • http格式,如https://github.com/leiyu1997/Blogs.git
    • 在推送的时候,这种形式clone下来的仓库需要每次校验用户名和密码,不实用
  • ssh格式,如git@github.com:leiyu1997/Blogs.git
    • 在推送的时候,如果配置了ssh keys,就不需要验证用户名和密码了,比较方便

add

将工作区修改保存到暂存区

  • git add [file]
    • add指定文件,在git bash中可以用TAB键选择文件
  • git add .
    • add当前目录及其子目录的所有文件
  • git add --all
    • add所有文件(不管在哪个目录下执行,都会add整个仓库的所有修改)

在根目录下, git add .git add --all 没有区别,只有不是根目录的情况下有区别


status

查看暂存区(green)和工作区(red)的修改

git status
  • 绿色代表已经添加(add)到暂存区(index)
  • 而红色表示还在工作空间(workspace)中
  • 已经提交(commit)已经到repo里的,查看不到状态

20200708011253


commit

将修改提交到本地仓库

  • git commit -m [memo] 将暂存区的修改提交到本地仓库,memo为提交的备注
  • git commit -am [memo] 将暂存区的修改以及工作区已加入版本控制的文件修改提交到本地仓库,memo为提交的备注

push

将本地当前分支的提交推送到远端仓库

git push

log

查看提交的日志,按Q退出,可选择查看的分支

git log [branch]
命令含义
git log什么都不加默认查看本地当前分支的日志
git log [branch]加上分支名查看要查看的分支的日志
git log origin/HEAD查看远端当前分支的日志
git log origin/[branch]查看其他远程分支的日志
git log --oneline加上--oneline展示缩略日志

20200728163705


reset

重新设置head指针指向的commit记录,即可以将提交回退到某一次提交时的状态

git reset [--soft]|[--mixed]|[--hard] <commitID>

reset有三个参数:

命令影响暂存区影响工作区含义
git reset --soft <commitID>NN回到指定commit的状态,暂存区和工作区的修改都不会受到影响
git reset --mixed <commitID>YN回到指定commit的状态,暂存区的修改会回到工作区。
–mixed是默认参数,即不加参数就默认为–mixed
git reset --hard <commitID>YY回到指定commit的状态,暂存区和工作区的修改都会被删除

从之前的Git基本概念的理解中我们知道,head其实就是一个指向最新commit的指针,我们从git log的日志中也可以看到,最新的commit右边有(head->master)表示head当前是master分支,并且指向这个commit。

20200728210505

由此,我们也可以在使用commitID的地方用HEAD代替:

  • git reset head

    • 回退到最新的commitid,暂存区的修改会回到工作区
    • 既然是回到最新的commit,那么git reset --soft head便没什么意义了,因为他什么也没改
  • git reset head^回退到最新提交的上一次提交

  • git reset head^^回退到最新提交的上一次的上一次提交,往后以此类推

  • git reset head~0回退到最新提交

  • git reset head~1回退到最新提交的上一次提交,往下依次类推


branch

分支的新增、浏览、删除等,不能切换分支

  • git branch 浏览本地分支(被'*'标记的分支为当前本地主分支)

  • git branch <branch> 创建新的本地分支,本地主分支不变

    20200729173331

  • git branch <branch> <commitID> 基于某一分支的一个commitID创建新分支

  • git branch -a 浏览本地(green/white)和远端分支(red)

    20200730193833

  • git branch -d <branch> 删除本地分支

    20200730194054


checkout

查看当前分支状态,切换分支

注:工作区和暂存区的修改会随着分支的切换在不同分支间移动,而已提交的修改则不会随着分支移动

  • git checkout 查看当前分支状态

    20200805000155

  • git checkout <branch> 切换到branch分支

  • git checkout -b <branch> 创建branch分支并切换到该分支(如果branch分支已经被创建,那么该语句将报错)

  • git checkout -B <branch> 强制创建branch分支并切换到该分支(如果branch分支已经创建,该命令会将原来的分支强制覆盖)


merge

合并分支

要将B分支的代码合并到A分支上,要先将head指向A分支,然后执行合并B的操作,这样,B中的修改就合并到A上了

git checkout A
git merge B

diff

查看工作区的修改

git diff

20200811203604

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值