git是一个分布式版本控制系统,得益于高效、协作和快速的项目代码管理特性几乎每一个软件开发团队都在深度使用。本篇是对git命令的介绍,涵盖了不低于95%的日常操作命令,对你有用话可以收藏一下哦。

一、初始化相关

初始化一个仓库

git init myrepo

克隆一个仓库到本地myrepo目录

git clone git://github.com/linux/linux.git myrepo
git remote add origin git://github.com/linux/linux.git #指定(关联)远程仓库地址,适用于从本地创建的仓库

二、配置相关

查看配置信息

git config --list
git config --list --global #全局的

配置.git文件

git config -e
git config -e --global 全局的

配置全局认证信息,去除--global 为当前仓库配置

git config --global user.name "user_git"
git config --global user.email git@github.com
git config --global user.password "mypasswd"

三、常规操作相关

git中数据在工作区暂存区本地仓库远程仓库 区域流转,下面图片可以比较清晰的呈现

任何时候查看文件git文件流转当前状态

git status

添加文件到暂存区

git add <file>
git add . #添加所有文件(改动文件)

从暂存区删除文件(添加了无用文件)

git restore --staged  <file>
git reset <file> #效果一样

删除或移动、重命名文件,并自动提交到暂存区。用于处理已提交到仓库的文件

git rm|mv <file>

提交修改到本地仓库

git commit -m "change to..."
git commit -am "change to ..." #用于直接提交修改文件,无法提交新增文件

撤销某次提交(会在分支上长生一次commit记录)

git revert <commit>

查看提交记录

git log
git log --graph #图形化查看
git blame <file> #列表的方式查看指定文件修改历史

查看文件修改或区别

git diff #暂存和工作区所有差别
git diff <file> #查看指定文件
git diff HEAD -- <file> #查看工作区和版本库里面最新版本的区别

反复横跳(版本回退)

git reset <commitid> #我们使用git log查询到需要回退版本的commitid
git reset HEAD~1 #回退到上一个版本
git rest HEAD~n #回退到前n个版本

提交修改到远程仓库

git push  #提交有冲突时需要拉取远程最新版本
git push orgin master #将本地master分支提交到远程master分支
git push -u orgin master #提交并关联(适用于从本地创建的仓库)

拉取远程仓库最新版本

git pull  #拉取合并

git fetch #拉取不合并

git pull --rebase  #不会产生merge记录,保持分支干净卫生
git add <conflict-file> #添加解决的冲突的文件
git rebase --continue #解决冲突后继续rebase

四、分支管理

查看本地分支

git branch

创建分支

git branch <branchName>

删除分支

git branch -d <branchName>  #-D 强制删除

切换分支

git checkout <branchName>
git checkout -b <branchName> #创建分支并切换 git switch <branchName>
git switch -c <branchName> #创建分支并切换

拉取远程分支

git checkout -b dev(本地分支名称) origin/develop(远程分支名称) #创建并切换
git fetch origin develop(develop为远程仓库的分支名 #创建

checkout回滚到某个commit id

git checkout <commitid>  #不会影响当前的工作区或分支(只读状态),修改不被保存
git checkout master #回到当前工作区(分支)

checkout回滚某个文件到commitid

git checkout <commit> <file> #会影响当前工作区文件

五、分支操作--合并分支

快速模式,head指针的移动(fast-forward),合并dev到当前分支

git merge dev #合并dev分支

普通模式(no ff),相当于head指针移动到新节点,保留合并历史分支。

git merge --no-ff -m "merge it" dev

六、标签的管理

查看标签列表

git tag

查看标签信息

git show v0.01
git show commit_id #查看某次提交的信息

打标

git tag v0.01

对某次commit打标

git tag v0.01 f45212545

git tag -a v0.01 -m "v0.01 release" f45212545 #包含文字说明

删除标签

git tag -d v0.01

将标签推送到远程,标签默认只存储到本地

git push origin <tagname>
git push origin --tags #推送所有标签

删除远程标签

git tag -d v0.01
git push origin :refs/tags/v0.01

七、其他

工作区暂存

git stash

查看暂存的工作区

git stash list

恢复暂存工作区,stash内容不删除

git stash apply
git stash apply <stash@{n}> #恢复到执行工作区 git stash drop #删除stash内容

恢复暂存工作区,stash内容自动删除

git stash pop
git stash pop <stash@{n}>

复制提交到当前分支,减少重复修改

git cherry-pick <commit>

同属必备系列文章:

vim命令:https://juejin.cn/post/6966772543919226887


文章有不足的地方欢迎在评论区指出。

欢迎收藏、点赞、提问。关注顶级饮水机管理员,除了管烧热水,有时还做点别的。

git命令使用(必备系列)的更多相关文章

  1. 转:【开源必备】常用git命令

    原文:https://zhuanlan.zhihu.com/p/25868120 [开源必备]常用git命令 [已重置]   如今在技术领域,码农们习惯了开源,也离不开免费开源的代码,轻松获取代码,不 ...

  2. 程序员必备基础:Git 命令全方位学习

    前言 掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~ https: ...

  3. Git入门到高级系列1-git安装与基础命令

    视频课程地址 腾讯课堂 为什么要进行项目文件的版本管理 代码备份和恢复 团队开发和协作流程 项目分支管理和备份 git 是什么? git是一个分布式的版本控制软件.版本控制是一种记录一个或若干文件内容 ...

  4. 【GIT】使用Git命令窗口将本地工程提交至远程GitHub

    目标: 1.解决的问题是如何通过Git命令窗口将本地工程提交至GitHub. 2.方便园友的同时也方便自己以后解决此类问题. 步骤: 1.首先登陆GitHub网站https://github.com/ ...

  5. 痞子衡嵌入式:第一本Git命令教程(0)- 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家讲的是Git命令汇编,共12篇文章,循序渐进地介绍Git操作的完整过程. 在开始Git课程之前,需要先跟大家普及2个重要概念(四度空间.四种状 ...

  6. 痞子衡嵌入式:第一本Git命令教程(4)- 转移(add/rm/mv)

    今天是Git系列课程第四课,上一课我们在Git空间里做了一些文件改动并且知道了如何利用Git查看这些变动,今天痞子衡要讲的是将这些变动提交到Git本地仓库前的准备工作. Git仓库目录下的文件改动操作 ...

  7. 痞子衡嵌入式:第一本Git命令教程(6)- 日志(log/reflog/gitk)

    今天是Git系列课程第六课,上一课我们学会了Git本地提交,今天痞子衡要讲的是如何查看Git本地历史提交. 当我们在仓库里做了很多次提交之后,免不了需要回看提交记录,看看自己之前的改动.有三种Git命 ...

  8. 常用Git命令清单。

    上期传送门:[清单]7个管理和优化网站资源的工具 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository: ...

  9. 常用git命令(一)

    git add 命令. 这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等. 将这个命令理解为“添加内容到下一次提交中”而不是“将一 ...

随机推荐

  1. k3d入门指南:在Docker中运行K3s

    在本文中,我们将简单了解k3d,这是一款可让您在安装了Docker的任何地方运行一次性Kubernetes集群的工具,此外在本文中我们还将探讨在使用k3d中可能会出现的一切问题. 什么是k3d? k3 ...

  2. Django(10)ORM模型介绍

    前言 随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了: 1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长.会出现很多相近的SQL语句. 2. ...

  3. Mac 搭建 Sentry

    Sentry 为我们提供应用程序的错误跟踪,使我们能够快速定位到错误所在的文件和行号. 以下是官网支持语言和框架的部分截图: 准备工作 自 2020 年 12 月 4 日起,Sentry 默认使用 P ...

  4. 三分钟了解B2B CRM系统的特点

    最近很多朋友想了解什么是B2B CRM系统,说到这里小Z先来给大家说说什么是B2B--B2B原本写作B to B,是Business-to-Business的缩写.正常来说就是企业与企业之间的生意往来 ...

  5. 关于__new__和__call__的想法

    __new__和__call__很像,两个都是用来产生对象的 __new__用来产生的对象是'类',class 时触发(不是) __call__用来产生的对象是'对象',这种对象无法继续产生对象,但是 ...

  6. [Qt] 事件机制(三)

    在主窗口Widget中增加几个小功能 1.点击左键,在左上角label中显示"haha",点击右键,显示"lala" 在widget.h中添加: 1 #incl ...

  7. Sqoop 安装部署

    1. 上传并解压 Sqoop 安装文件 将 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 安装包上传到 node-01 的 /root/ 目录下并将其解压 [root@no ...

  8. LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...

  9. IDEA 常用快捷键列表【建议收藏】

    编辑代码 快捷键 说明 Alt+Enter 导入包.自动变量命名等(万能快捷键) Ctrl+X 删除行 Ctrl+Y 删除当前行 Ctrl+D 复制行 Alt+Shift+Up/Down或Ctrl+S ...

  10. 10.20 host:域名查询工具

    host命令 是用于查询DNS的工具,它可以将指定主机名称转换为IP地址. host命令的参数选项及说明 -a 显示详细的DNS信息-t 指定查询的域名信息类型,可以是"A".&q ...