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. 微言Netty:百万并发基石上的epoll之剑

    说道本章标题,相信很多人知道我在暗喻石中剑这个典故,在此典故中,天命注定的亚瑟很容易的就拔出了这把石中剑,但是由于资历不被其他人认可,所以他颇费了一番周折才成为了真正意义上的英格兰全境之王,亚瑟王.说 ...

  2. 基于深度学习的回声消除系统与Pytorch实现

    文章作者:凌逆战 文章代码(pytorch实现):https://github.com/LXP-Never/AEC_DeepModel 文章地址(转载请指明出处):https://www.cnblog ...

  3. [bug] conda:Segmentation fault (core dumped)

    参考 https://www.jianshu.com/p/5e230ef8a14d

  4. zabbix学习笔记:zabbix监控之短信报警

    zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...

  5. Linux_配置认证访问FTP服务

    [RHEL8]-FTPserver:[Centos8]-FTPclient !!!测试环境我们首关闭防火墙和selinux(FTPserver和FTPclient都需要) [root@localhos ...

  6. 回车与换行的区别:CRLF、CR、LF

    引言 以下是 MySQL 8 导出数据的窗口,导出数据时需要选择记录分隔符,这就需要你明白 CRLF.CR 和 LF 分别代表什么,有何区别,否则可能导出数据会出现莫名其米的问题. 名词解释 CR:C ...

  7. String、Stringbuilder、StringBuffer异同

    相同点: String.Stringbuilder.StringBuffer 都可以操作字符串 String 是被final修饰的,容量定长 Stringbuilder 和 Stringbuilder ...

  8. 技术干货 | 如何在 Library 中使用/依赖 mPaaS?

    使用场景 在使用 mPaaS 框架过程中,有时需要复用模块.复用时需要按照使用 Module 依赖的方式添加模块.本文以将复用 mPaaS 扫码组件的 Module 为例进行说明. 前提条件 已按照原 ...

  9. Go语言常用命令

    查看可用命令 直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些: ·build: 编译包和依赖 ·clean: 移除对象文件 ·doc: 显示包或者符号 ...

  10. Java | Stream流、泛型、多线程 | 整理自用

    1.lambda 表达式 lambda 的延迟执行 可以对程序进行优化,尤其是使用 if {} else {} 条件判断,先判断条件是否成立,再传入计算好的参数. functionName( para ...