Git常用命令总结

摘要:本文旨在总结在工作中常用的一些git操作。如有错误,欢迎指正。

Git简介

Git是开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git下载安装

下载网址:http://git-scm.com/downloads
官网下载很慢,可直接百度去其他网址下载会比较快。
安装步骤很简单,此处不介绍
在这里插入图片描述

Git常用区域介绍

在这里插入图片描述

Git常用命令

学会使用help命令

对于不熟悉的命令,可使用help命令查看
在这里插入图片描述

1) 拉取远程仓库到本地仓库和工作区

  • git pull –rebase

2) 将工作区的修改添加到暂存区

  • git add [file] 暂存单个文件
  • git add . 暂存工作区所有的文件
  • git add -u 暂存工作区中的已跟踪的文件

3) 查看仓库修改的文件

  • git status
    在这里插入图片描述

4) 提交暂存区的修改到本地仓库

  • git commit –sm “修改信息”
  • git commit –amend 针对提交打补丁使用

5) 将本地修改的内容提交到Gerrit

  • git push

6) 取消已暂存的文件

  • git rm --cache [file] 会取消已暂存的文件,且会使得文件变成untracked file
    在这里插入图片描述
  • git reset HEAD [file] 会取消指定已暂存的文件,但依然是tracked file
  • git reset HEAD 取消所有已暂存的文件

untracked file (未监控/跟踪的文件)和tracked file 的区别:
untracked 文件是重来没被add过,但在工作区存在,修改untracked文件后,用git status 查看不到。
tracked文件,被add过,修改之后,用git status能查看到修改的状态

在这里插入图片描述
这三个之间的相同点:取消已暂存的修改,但是工作区的修改还在。

7)撤销修改

撤销工作区的修改

  • git reset --hard [commit ID]
  • git reset --hard HEAD^
  • git reset --hard HEAD~n
  • git reset --hard origin

git reset --hard 回退到最新的版本。工作区的修改全部没了。
在这里插入图片描述
撤销已提交的状态(保留工作区的更改)

  • git reset --soft [commit ID]
  • git reset --soft HEAD^
  • git reset --soft HEAD~n
  • git reset --soft origin
    soft参数,只删除commit,但不删除实际更改,将更改放入暂存区;
    hard参数,将commit及相关更改全部删除

8) checkout本地仓库到工作区

git checkout [file]
git checkout .

可以通过git checkout的方式,将本地工作区回滚到任意你想查看的版本/提交点

  • git checkout [tag name]
  • git checkout [commit ID]
  • git checkout [commit ID][file name]
  • git checkout [branch name] 切换分支
    标记部分为你所需要回滚的版本号/提交点
    本地的修改都不要了,返回最新代码,直接 git checkout [分支名];如 git checkout master

9) 查看文件修改记录

①查看单个文件的提交记录
  • git log 查看所有的提交记录
  • git log –n 查看最近n次提交
  • git log [file name]
    查看单个文件的提交记录,详细列出提交记录,包括commit ID、提交者、提交时间、task名等;
  • git log --author=“[name]” [file name] 查看某人的提交
  • git log --pretty=oneline [file name] 单行模式列出提交记录,只包含commit ID和task名;
②查看单个文件的详细修改记录

通过git blame命令,可以查看到该文件所有代码行的最新更改记录

  • git blame [file name]
    你也可以通过-L参数,指定查看特定的数行
  • git blame -L [start line],[end line] [file name]
    note:输出格式 [commit ID][提交者和时间][行数][实际文本内容]
③查看详细修改点

通过git diff命令,可以查看修改点,查看还未push的更改点

  • git diff HEAD [file name]
    查看对应commit与最新提交的差异
  • git diff [commit ID] [file name]
    查看两个commit之间的差异
  • git diff [commit ID 1] [commit ID 2] [file name]
    PS: [file name]可选。如果不带该参数,则查看所有文件的修改记录

除了git diff之外,git show也可以查看到具体的修改前后比

  • git show [commit ID] [file name]

10) 分支操作

  • git branch -a 查看所有分支,你当前所在的分支前面会标记一个*
  • git branch [branch name] 创建一个新的分支
  • git checkout -b [branch name] 切换到分支branch name
  • git branch -d [branch name] 删除分支,大写D为强制删除,可以删除未merged的分支
  • git checkout master
    git merge testing 将testing分支合并到主分支上
  • git branch -vv 查看本地分支与远程分支的对应关系
  • git config --list 查看本地一些配置,包括分支的对应关系
  • git push origin --delete test 删除远程的test分支
    在这里插入图片描述

11) git stash使用

适用场景:临时去改一个bug,不想将半成品提交上去,改完还要继续之前的工作

  • git stash
    备份当前工作区的修改与暂存区到堆栈区(未完结变更区,不是暂存区)中,将工作区恢复到上一次提交时的状态,
  • git stash pop
    将上一次存到暂存区的文件读取回工作区,git stash apply stash@{1}回到第几个暂存的状态
  • git stash list
    查看暂存区暂存的状况
  • git stash clear
    清空暂存区

12) 删除git库中untracked file(未监控)的文件

在编译git库拉下来的代码时,往往会产生一些中间文件,这些文件我们根本不需要,尤其是在成产环节做预编译,检查代码提交是否能编译通过这种case时,我们往往需要编译完成后不管正确与否,还原现场,以方便下次sync代码时不受上一次的编译影响。

  • git clean -f
    删除 untracked files
    在这里插入图片描述

  • git clean -fd
    连untracked 的目录也一起删掉
    在这里插入图片描述

  • git clean -xfd
    连 git ignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
    PS:在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
    git clean -nxfd
    git clean -nf
    git clean -nfd

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值