GIT常用命令大全——赶紧收藏

2023-11-03

史上最全的GIT常用命令都在这里啦!

全是干货!建议收藏起来,反复观看!

一、git安装后-指定名称和邮箱

$ git config --global user.name "Your Name"

$ git config --global user.email "email@example.com"

二、创建版本库

$ mkdir learngit	//创建
$ cd learngit	//使用
$ pwd	//查看当前目录
$ git init	//初始化,生成.git文件(若该文件隐藏,则使用ls -ah)

*三、把文件添加add和提交commit到版本库

$ git add test.txt	//添加
$ git commit -m "wrote a test file"	//提交
$ git commit -m "add 3 files."		//一次性提交多个文件

注意:必须在当前版本库和当前目录下

*四、版本控制

$ git log	//查看提交历史记录,从最近到最远,可以看到3次
$ git log --pretty=oneline	//加参,简洁查看
$ git reflog	//查看每一次修改历史
$ cat test.txt	//查看文件内容
$ git status	//查看工作区中文件当前状态
$ git reset --hard HEAD^(HEAD~100)(commit id)	//回退版本
$ git checkout -- test.txt	//丢弃工作区的修改,即撤销修改
$ git reset HEAD test.txt	//丢弃暂存区的修改(若已提交,则回退)

五、删除文件

$ rm test.txt
//直接删除
$ git rm test.txt
$ git commit -m "remove test.txt"
//删错了,恢复
$ git checkout -- test.txt

*六、远程仓库

$ ssh-keygen -t rsa -C "youremail@example.com"	//创建SSH Key
$ git remote add origin git@github.com:Daisy/AKgit.git	//关联
$ git push -u origin master	//将本地内容推送到远程仓库(第一次)
$ git push origin master	//将本地内容推送到远程仓库(之后)
$ git remote -v        //查看远程仓库信息
$ git remote rm origin	//删除远程仓库(解绑)
$ git clone git@github.com: Daisy/AKgit.git	//克隆远程仓库
//克隆之后使用和查看
$ cd gitskills
$ ls
$ git remote	//查看远程库的信息
$ git remote -v	//查看远程库的详细信息

*七、多人协作

$ git checkout -b dev	//创建并切换到分支dev
//创建并切换到分支dev,同上
$ git branch dev	//创建
$ git checkout dev	//切换
//新版本
$ git switch -c dev	//创建并切换到分支dev
$ git switch master	//直接切换分支
$ git branch		//查看当前分支
$ git merge dev	(--no-ff)(-m)//合并,把dev分支的工作成果合并到master分支上
$ git branch -d dev	//删除dev分支 
$ git stash	//将现场储藏起来
$ git stash list	//查看储存的工作现场
//恢复和删除
$ git stash apply
$ git stash drop
//恢复并删除
$ git stash pop
$ git cherry-pick 4c805e2	//复制修改
$ git push origin master(dev)	//推送分支
$ git checkout -b dev origin/dev	//创建远程origin的dev分支到本地
$ git pull	//抓取分支(解决冲突)
$ git branch --set-upstream-to=origin/dev dev//指定本地与远程dev的链接
$ git rebase	//把本地未push的分叉提交历史整理成直线

八、标签管理

$ git tag v1.0	//打标签
$ git tag -a v0.1 -m "version 0.1 released" 1094adb //指定标签名和说明文字
$ git tag	//查看所有标签
//若是忘记打,则查找历史提交commit id ,再打上
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.9 f52c633
$ git show v0.9		//查看标签详细信息
$ git tag -d v0.1	//删除标签
$ git push origin v1.0	//推送标签到远程
$ git push origin –tags	//一次性推送全部本地标签
//删除标签,(若已推送到远程,先从本地删除,从远程删除)
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9 

九、自定义git

$ git config --global color.ui true	//让git显示颜色
//忽略特殊文件
//.gitignore文件
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
//把该文件也提交到git
$ git add -f App.class		//强制添加被忽略的特殊文件
$ git check-ignore -v App.class	//检查哪个规则出错
# 排除所有.开头的隐藏文件:
.*
# 排除所有.class文件:
*.class
# 不排除.gitignore和App.class:
!.gitignore
!App.class
$ git config --global alias.st status	//配置别名
$ git config --global alias.unstage 'reset HEAD'  //配置操作别名
$ git config --global alias.last 'log -1'	//显示最后一次提交信息
$ git last	//显示最近一次的提交
$git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"  //颜色
$ cat .git/config //查看每个仓库的git配置文件
$ cat .gitconfig  //查看当前用户的git配置文件

如果大家觉得这些命令太多,可以只记带红色星号*的,其他命令等需要用到的时候,再从收藏夹里找出来看。

既然宝子都看到这里了,点个赞应该不过分叭,别逼我……!!跪下来求你~~宝~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GIT常用命令大全——赶紧收藏 的相关文章

  • 致命:Jenkins IIS ID 无效

    我正在尝试设置 Jenkins 从 bitbucket 中提取并构建一个项目 我在 IIS 8 5 Server 2012 r2 上使用它 我已经设置了 Git 和 Bitbucket 插件 我已经建立了一个包含以下内容的项目 Branch
  • 通过 http 的私有 git 存储库

    你能推荐任何简单的解决方案来设置可通过http s cleutus建议的 访问的git存储库吗 我有自己的 http 服务器 我想用它来托管一些小型私人项目 在家里我可以通过 ssh 连接 但在工作中防火墙阻止我这样做 有没有免费的方法来设
  • 如何在 Windows 上更新 GIT_SSH 环境变量

    我正在使用 TortoiseGit 并且刚刚将 Windows 版 Git 从旧版本升级到 2 7 2 在此过程中 位置ssh exe已移至C Program Files x86 Git bin ssh exe to C Program F
  • Git 每次提交和拉取时都要求输入密码

    我正在使用带有 Git 扩展的 Visual Studio 2012 我正在使用位桶来存储项目 每次 每当我想要推送或拉取 Git 时 都会询问我帐户密码 在 Windows 8 中 Thanks 您可以使用gitcredentials h
  • git 分叉是如何工作的?

    所以我登录了 github 并 fork 了一个项目 每次原始存储库更新时 我的分叉存储库都会更新吗 或者我应该每次都从原始存储库进行分叉 这样我就不会错过对原始存储库所做的任何新更改 分叉是存储库的副本 分叉存储库允许您自由地尝试更改 而
  • GitLab CI - 添加标签时避免构建

    添加 git 标签时如何防止触发 gitlab ci 管道 我在本地运行此命令 而不是在 gitlab ci 作业中运行 git tag a xyz 然后推送标签 这会触发各种管道 我想排除其中一些管道的运行 我正在尝试对诸如以下问题的想法
  • `git add --patch` 和 `--word-diff`

    git add patch提供了一个很好的界面 用于检查未暂存的更改 然后仅暂存下一次提交中需要的更改 很好 除了一件事 没有明显的方法来选择哪个diff视图来使用 特别是 我希望能够配置git add patch以同样的方式向我呈现差异g
  • Github 版本如何生成存档文件名?

    我刚刚在 github 上为我的 NFQL 软件创建了版本 这是发布页面 https github com vbajpai nfql releases https github com vbajpai nfql releases 对于最新版
  • .gitignore 文件夹内容[重复]

    这个问题在这里已经有答案了 可能的重复 在 Windows 上忽略 Git 存储库中的目录 https stackoverflow com questions 343646 ignoring directories in git repos
  • 恢复 git reset --soft

    我修改了我的分支中的一些文件并做了一个 git add all 但这添加了一些我不打算为提交添加的文件 所以我做了一个 git reset soft HEAD 2 instead of doing git reset HEAD 但之前的提交
  • 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

    我现在真的很沮丧 我有一个现有的 hg 存储库 其中有几个月的编码历史 我想将其放入私有 Github 存储库中 以便我可以从那里对其进行处理 不幸的是我使用的是 Windows 我似乎找不到any转换我实际上可以正常工作的存储库的方法 实
  • 在 git 提交消息中使用任何 utf-8 字符是否安全?

    我发现使用 UTF8 字符 例如 很有用 请参阅here http www utf8icons com subsets dingbats 在提交消息中 重构 NewService 添加了更好的服务 OldServiceA 据我所见 它see
  • 如何避免开发人员将凭证推送到 bitbucket?

    我们有一个应用程序 它使用 JSON 文件来定义数据库和其他 API 的连接字符串和凭据 理想情况下 这些凭证作为变量添加到 bitbucket 存储库中 并在 Jenkins 的构建期间进行替换 开发商在当地与他们合作时更换了他们 我们需
  • 如何使用 libgit2 创建空提交?

    我一直在寻找libgit2 C API 参考 https libgit2 org libgit2 但我不知道如何模仿git commit allow empty libgit2 是否有内置方法来创建空提交 如果没有 git 如何在底层创建一
  • Git refs/remotes/origin/master 没有指向有效的对象

    在上次合并到 Git 存储库的 master 分支后 我失去了克隆存储库的能力 Cloning into test repository remote Counting objects 126084 done remote Compress
  • git 命令显示所有(轻量级)标签创建日期

    是否有一个衬垫可以向我显示所有 git 轻量级标签的创建日期 就像是 git show tags format date 我在这个发现link http osdir com ml git 2009 05 msg01404 html适合我需求
  • 从 master 更改为新的默认分支 git

    这是一个场景 我们有一个默认的分支 Master 我们以此为基础 创建分支并向上推等等 我们现在创建了一个Develop分支Master并将其设置为默认开发分支 我想知道的是 我现在如何知道我的 git pull 命令是否通过命令行请求默认
  • 在 GitHub 上执行拉取请求时避免不需要的合并提交和其他提交

    我在 Github 上分叉了一个项目 令远程上游为upstream我的远程存储库是origin 我当地的master分支设置为跟踪远程master分支 然后我在本地添加了一些东西master 时不时与上游汇合 直到今天我想发出pull re
  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • 当出现错误时如何删除远程分支?

    我尝试过以下命令 但失败了 git push origin next remote error denying ref deletion for refs heads next To blah git remote rejected nex

随机推荐

  • Hadoop3.2.1版本的环境搭建

    最近有人提出能不能发一些大数据相关的知识 No problem 今天先从安装环境说起 搭建起自己的学习环境 Hadoop的三种搭建方式以及使用环境 单机版适合开发调试 伪分布式适合模拟集群学习 完全分布式适用生产环境 这篇文件介绍如何搭建完
  • java xrunjdwp_Java远程断点调式 -Xdebug

    前言 我们在开发的过程中 难免会遇到调用别人机器上的代码 或者测试服务器上的代码 再调用过程中 难免会用到断点调式的功能 但是运行的不是本地的代码怎么办呢 现在我们就来了解下Java远程断点调用 需要 本地必须有源码 才能进行远程断点 一
  • Instant-ngp Windows11安装、使用记录

    Instant NeRF Study Debug 本机配置 Y9000P RTX3060 Win11 Instant NeRF Study Debug 1 Git 2 Cmake 3 instant ngp 示例数据 自定义数据 注意事项
  • 一次composer错误使用引发的思考

    一次composer错误使用引发的思考 2019 03 05 12 19 by 轩脉刃 阅读 评论 收藏 编辑 一次composer错误使用引发的思考 这个思考源自于一个事故 让我对版本依赖重新思考了一下 事故现象 一个线上的管理后台 一个
  • LeetCode题解——42.连续子数组的最大和(动态规划思想)

    题目地址 剑指 Offer 42 连续子数组的最大和 力扣 LeetCode 一 解题思路 在这道题中 数组连续是一个很重要的信息 我们可以创建一个数组用于记录每一位对应的最大值 所谓每一位的最大值 意思就是以这一位为结尾的数组的最大值 那
  • 面试过程中会遇到的机器学习教科书中 7 大经典问题

    如果希望了解机器学习 或者已经决定投身机器学习 你会第一时间找到各种教材进行充电 同时在心中默认 书里讲的是牛人大神的毕生智慧 是正确无误的行动指南 认真学习就能获得快速提升 但实际情况是 你很可能已经在走弯路 科技发展很快 数据在指数级增
  • SQL Server 基础语法2(超详细!)

    文章目录 选择数据库school 查询所有学生的学号 姓名和年龄 查询结果列项是中文名 查询 计算机 系的所有学生的基本信息 查询所有女同学的姓名及所在的系 显示结果不允许重复出现 查询课程号不为 1 4 或 7 的课程的信息 查询课程号不
  • 处理Matlab Coder之后, Compiler can't find "tmwtypes.h"问题

    作为一个强大的科学计算软件 matlab广泛应用于较多领域 以其简单的编程风格 便利的调试环境等众多优点 在编写算法与测试的时候通常用到 然而很多的实际运用上matlab毕竟还不是很普及 相反还是c与c 更多 同时正版matlab这样一个昂
  • Hive表的分区与分桶

    1 Hive分区表 Hive使用select语句进行查询的时候一般会扫描整个表内容 会消耗很多时间做没必要的工作 Hive可以在创建表的时候指定分区空间 这样在做查询的时候就可以很好的提高查询的效率 创建分区表的语法 create tabl
  • 论文阅读记录: Automatic Image Colorization sig16

    sig论文阅读记录 Let there be Color Joint End to end Learning of Global and Local Image Priorsfor Automatic Image Colorization
  • JSP、servlet运行原理

    一 jsp和servlet的区别 servlet是用Java编写的服务器端程序 其主要功能在于交互式地浏览和修改数据 生成动态Web内容 狭义的Servlet是指Java语言实现的一个接口 广义的Servlet是指任何实现了这个Servle
  • es-5数据同步

    向ES里面添加数据 logstash kabina javaapi restful api 重点介绍一下logstash 是一个数据同步工具 可以动态地将来自不同数据源的数据统一起来 并将数据标准化到其他任何数据源 其实最常见的使用场景是将
  • 思考::战略藐视:RTOS 高级多任务调度器 (***)

    战略藐视 RTOS 高级任务调度器 压力大 将 RTOS 视为操作系统 则似乎有很大的学习心里压力 复杂 耗时 有难度 减压 将它们视为是 某种 高级多任务调度器 来学习 就好了 这样似乎就简单了 心里压力也就小了 或者 将它们视为是 某种
  • 基于Python生成Markdown的标题序号

    import sys import os import time import re headline title sign list 用于判断标题产生环境 titles added number 保存嵌入了编号的标题 用于产生新编号 is
  • Java的内部类

    学习笔记 内部类 内部类访问特点 1 内部类可以直接访问外部类中的成员 2 外部类要访问内部类 必须建立内部类的对象 一般用于类的设计 分析事物时 发现该事物描述中还有事物 而且这个事物还在访问被描述事物的内容 这时就是 还有的事物 定义成
  • iOS进阶_多线程(二.线程间的状态)

    ViewController m 004 NSThread状态 Created by mac on 2018 4 27 Copyright 2018年 mac All rights reserved import ViewControlle
  • TencentOS-tiny 时间管理(十 六)- 时间片轮转机制

    一 时间管理 时间片轮转机制 概述 TencentOS tiny操作系统内核是一个抢占式内核 抢占式内核的特点是 如果最高优先级的任务不放弃CPU 调用tos task delay tos task yeild等主动放权 或者任务间同步通信
  • 深度学习:不平衡的二分类,precise与recall

    在不平衡的二分类问题中 一般数量较少的样本标签为1 precise 预测为正样本中真实为正样本的比例 recall 真实为正样本中预测为正样本的比例 f1 score precise与recall的调和平均 两者中较小值的起决定性作用
  • 配置防火墙,开启80端口、3306端口 & iptables 使用详解

    1 配置防火墙 开启80端口 3306端口 vi etc sysconfig iptables A INPUT m state state NEW m tcp p tcp dport 80 j ACCEPT 允许80端口通过防火墙 A IN
  • GIT常用命令大全——赶紧收藏

    史上最全的GIT常用命令都在这里啦 全是干货 建议收藏起来 反复观看 一 git安装后 指定名称和邮箱 git config global user name Your Name git config global user email e