Git常用命令

标签: github

Git常用命令


GitHub是一个广泛使用的版本控制平台,平台上有许多非常多高质量的开源项目,个人或者公司在开发项目时,也首选使用Github进行项目协助和管理。Git是一种广泛使用的版本控制系统,下面就简单介绍如何使用Git进行项目管理和一些常用的命令。

1 本地用法

1.1 初始化和配置git

  • 初始化
#先创建一个本地工作目录,进行初始化;
#之后可以看到在当前目录下,多了一个.git 的隐藏文件夹
git init ##初始化本地库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KElLJkkl-1591682499362)(Git常用命令.assets/image-20200609115425589.png)]

  • 配置

    让Git知道是谁在编辑信息

    git config --global user.name xxx #设置 git 全局用户名 
    git config --global user.email xxx #设置 git 全局邮箱 
    git config core.autocrlf false #取消换行符转换的 warning 提醒
    #上述配置可以在用户家目录/.gitconfig 文件中查看配置结果
    

1.2 工作区-暂存区-本地库

在这里插入图片描述
在这里插入图片描述

  • 工作区(Working Directory):就是你电脑本地硬盘目录

  • 暂存区(stage):一般存放在"git 目录"下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  • 本地库(Repository):工作区有个隐藏目录.git,它就是 Git 的本地版本库

1.2.1 状态查看
git status #查看本地库的状态 
#红色状态代表在工作区,尚未添加到暂存区! 
#绿色状态代表当前文件已经添加到了暂存区,但是尚未添加到本地库! 
#暂存区空了,代表在所有文件已经添加到本地库;
1.2.2 提交
#提交
git add [file] #将文件添加到暂存区 
git commit –m “xxx” [file]  #将暂存区的文件提交到本地库,-m 后面为修改的说明
1.2.3 日志查看
#日志查看
git log  #以完整格式查看本地库状态 
git log --pretty=oneline  #以单行模式查看本地库状态 
git reflog  #查看所有操作的历史记录 
1.2.4 回撤
#回撤
git reset --hard HEAD^  #回退一个版本 
git reset --hard HEAD~n  #回退 N 个版本 
git reset --hard [具体版本号,例如:1f9a527]  #回到(回退和前进都行)指定版本号的版本, 
git checkout -- [file] #从本地库检出文件 
git reset [file] #从暂存区撤销文件 
git rm --cache [file] #从暂存区撤销文件
1.2.5 文件比较
#文件比较
git diff <file>  #将工作区中的文件和暂存区进行比较
git diff HEAD <file> #将工作区中的文件和本地库当前版本进行比较
git diff --cached <file>  #查看暂存区和本地库最新提交版本的差别

1.3 分支branch

分支是Git的最基本特征之一。分支使你可以处理master分支上存在的主要项目代码的新功能或错误修复。

分支就像对提交的引用。你可以对分支进行任何更改,即使你搞砸了这一分支,也请放心,因为它不会损害你的实际工作代码。

在这里插入图片描述

git branch [分支名] #创建分支 
git branch -v #查看分支,可以使用-v 参数查看详细信息 
git checkout [分支名] #切换分支 

git merge [分支名]  #合并分支; 将 merge 命令中指定的分支合并到当前分支上 
#例如:如果想将 dev 分支合并到 master 分支,那么必须在 master 分支上执行 merge 命令 

git branch –d[分支名]  #删除分支 
git checkout –b [分支名] #新建并切换到当前分支

2 Github与本地交互

GitHub 是一个 Git 项目托管网站,主要提供基于 Git 的版本托管服务。

2.1 本地库联通GitHub

只需要在第一次配置就可以了,如果存在就不需要额外生成**。具体可以参考连接:联通Github

2.2 创建远程库

  • 在github上创建库

在这里插入图片描述

  • 实现本地和远程的连接

在这里插入图片描述

  • 按照它所给出的代码进行操作即可

    git remote add <远端代号> <远端地址>  
    #<远端代号> 是指远程链接的代号,一般直接用 origin 作代号,也可以自定义;
    #<远端地址> 默认远程链接的 url;
    #在本例中,为:
    git remote add origin [email protected].com:fangzuliang/GitTest.git  
       
    git push -u <远端代号> <本地分支名称>  #<远端代号> 是指远程链接的代号;<分支名称> 是指要提交的分支名字,比如 master;
    #第一次推送 master 分支时,加上了-u 参数,Git 不但会把本地的 master 分支内容推送的远程新的 master 分支, 还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。
    #本例中为:
    git push -u origin master 
    
    git remote –v #查看远程分支
    #origin  [email protected]:fangzuliang/GitTest.git (fetch)
    #origin  [email protected]:fangzuliang/GitTest.git (push)
    
    git fetch <远端代号> <分支名称>  #查看远程库的更新,但不合并
    
    git pull <远端代号> <远端分支名> #从远程存储库中获取任何更新,并将其与本地存储库合并
    
    git clone <远端地址> <新项目目录名>  #获得此存储库在本地的副本
    #<远端地址> 是指远程链接的地址; 
    #<项目目录名> 是指为克隆的项目在本地新建的目录名称,可以不填,默认是 GitHub 的项目名;
    

3 参考链接

一文总结GitHub使用指南

git官网

尚硅谷Git

版权声明:本文为weixin_43718675原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43718675/article/details/106639888

智能推荐

Reflect反射的基础知识

写个父类: 写个子类: 利用反射获得该子类中的属性,方法,构造,父类及接口: 运行结果:...

spring cloud netflix (07) 服务的消费者(feign)

前言 完整知识点:spring cloud netflix 系列技术栈 Feign (同步通信 HTTP通信) feign是基于接口完成服务与服务之间的通信的 搭建Feign服务 项目结构 项目搭建 pom.xml application类 application.yml 使用feign完成服务与服务之间的通信 feign是基于接口完成服务与服务之间的通信的...

AtCoder Beginner Contest 174 E.Logs

AtCoder Beginner Contest 174 E.Logs 题目链接 到最后才发现是二分,菜菜的我/(ㄒoㄒ)/~~ 我们直接二分 [1,max{a[i]}][1,max\lbrace a[i]\rbrace][1,max{a[i]}] 即可,对每一个 midmidmid,每个数 a[i]a[i]a[i] 只需要切 a[i]−1mid\frac{a[i]-1}{mid}mi...

小程序基础与实战案例

小程序开发工具与基础 小程序开发准备: 申请小程序账号( appid ) 下载并安装微信开发者工具 具体步骤如下: 先进入 微信公众平台 ,下拉页面,把鼠标悬浮在小程序图标上 然后点击 小程序开发文档 照着里面给的步骤,就可以申请到小程序账号了。 然后就可以下载 开发者工具 了 下载完打开后的界面就是这个样子 下面让我们来新建一个小程序开发项目: 在AppID输入自己刚刚注册的AppID就可以,或...

VMware centOS7 下通过minikube部署Kubernetes

1、环境准备: VMware CentOS-7-x86_64 CPU:2*2core 内存:8G 宿主机和虚拟机需网络互通,虚拟机外网访问正常 Centos发行版版本查看:cat /etc/centos-release root用户操作 2、禁用swap分区 Kubernetes 1.8开始要求关闭系统的Swap,可暂时关闭或永久禁用, 使用 $ free -m 确认swap是否为开启状态 $ s...

猜你喜欢

逻辑回归与scikit-learn

欢迎关注本人的微信公众号AI_Engine LogisticRegression 算法原理 一句话概括:逻辑回归假设数据服从伯努利分布,通过极大化似然函数(损失函数)的方法,运用梯度下降或其他优化算法来求解参数,来达到将数据二分类的目的。 定义:逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性(不是概率)。比如某用户...

指针OR数组?用他们来表达字符串又有何不同?

cocowy的编程之旅 在学习C语言的过程中我们经常可以看到或者听到这样一句话:数组其实等价于指针,例如: 在这里可以轻松的看出输出后他们的值相等,其实在计算机内存里面,p为本地变量,有着他自己的作用域。而指针变量q保存着这个数组的首地址,通过*号指向这个地址保存的变量值。 然而我们再看一个例子: 这个时候计算机报错,这是为什么呢? 其实原因很简单,指针说指向的这个字符串的地址是位于计算机代码段地...

广度搜索

广度搜索的基本使用方法 广度搜索不同于深度搜索,是一种一步一步进行的过程,每一个点只记录一遍。需要用到队列记录每一步可以走到的位置,找到目标位置输出步数即可。 用到的知识:结构体、队列 如图 首先我们需要定义一个结构体来存储每个遍历到的点和步数 广搜不会用到递归,所以可以直接在主函数里写,这里需要定义一个结构体队列 初始化队列并将起始点入列 遍历 完整代码...

NIO Socket 编程实现tcp通信入门(二)

1、NIO简介 NIO面向通道和缓冲区进行工作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。可以双向传输数据,是同步非阻塞式IO。NIO还引入了选择器机制,从而实现了一个选择器监听多个底层通道,减少了线程并发数。用NIO实现socket的Tcp通信需要掌握下面三个知识点: Buffer 缓冲区 Channel 通道 Selector 选择器   2、java.nio.Buff...

[字节码系列]ObjectWeb ASM构建Method Monitor

      在前面的篇章中,我们看到Java Instrutment的强大能力,本篇,我们将介绍如何使用ObjectWeb ASM的字节码增强能力构建Method Monitor       1.什么是ObjectWeb ASM      ObjectWeb ...