手把手教你使用Git

数据结
• 阅读 1002

前言

Git只是一个分布式版本控制系统,只要满足日常使用就可以了。所以本文只讲常用指令的。

Git安装

作者就window系统为例,window平台git下载地址
下载完之后根据提示安装就行了。安装完成后在屏幕空白处点击鼠标右键菜单栏

手把手教你使用Git

Git初次运行的一些配置

在屏幕空白处右击鼠标右键在菜单栏中选择Git Bash Here点击进入命令行如图所示!
手把手教你使用Git

命令行我们可以输入

git --version

查看当前git的版本号如图

手把手教你使用Git

用户信息配置:

$ git config --global user.name "用户名"
$ git config --global user.email 邮箱地址 

查看用户配置信息:

$ git config --list//全部配置信息
$ git config user.xxx//查看指定的配置信息

Git基本概念:

工作区:电脑中的文件目录
暂存区:一般存放在.get文件夹的index的文件
版本库:包含.git文件夹的工作区
手把手教你使用Git

创建和删除仓库

在你电脑上选择一个(空)文件夹,在该文件夹下打开git Bash Here,执行

$ git init 文件夹名(可选)//如果git init 在当前文件夹为仓库,如果git init fileName就会以fileName为仓库

创建前

手把手教你使用Git

创建后

手把手教你使用Git

删除本地仓库:

$ find . -name ".git" | xargs rm -Rf 

克隆项目:

$ git clone url(要克隆的地址)

如果克隆中遇到这种情况:

手把手教你使用Git

说明是被克隆的的项目没有公钥
解决方案:获取公钥

$ ssh-keygen -t rsa -C (注册时的邮箱 )

手把手教你使用Git

把获取的id_rsa.pub文件的内容粘贴到

手把手教你使用Git

克隆前后:

手把手教你使用Git

手把手教你使用Git

提交与修复

将文件上传到暂存区

$ git add file1 file2 ...//上传一个或多个指定文件
$ git add 文件夹 //上传整个文件夹
$ git add . //上传整个文件

查看文件提交状态

$ git status -s//加-s显示简短的输出结果,不加-s显示详细的输出结果
//参数说明(A提交成功;AM:文件在添加到缓存之后又有改动 ??没有添加到暂存区的)

手把手教你使用Git

比较文件不同(文件在暂存区和工作区的不同之处)

$ git diff 文件名//尚未缓存的改动和暂存区的不同
$ git diff --cached 文件名 || git diff --staged 文件名//查看暂存区和本地仓库的不同
$ git diff HEAD//查看已缓存的与未缓存的所有改动
$ git diff --stat//显示摘要而非整个 diff

手把手教你使用Git

将暂存区的文件提交到本地仓库

$ git commit 文件名 -m "提交的描述"//
$ git commit 文件名 -am "提交的描述"//跳过git add缓存环节

查看commit的id

$ git reflog

手把手教你使用Git

回退版本

$ git reset (commit id)//回退到指定版本=>commit id可以通过$ git reflog指令查看
$ git reset HEAD^//所有内容回头到上一个版本
$ git reset HEAD^ 文件名//指定文件回退到上一个版本
$ git reset --soft HEAD~3//回退到上上上个版本
$ git reset -hard HEAD || (commit id)//注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
$ git reset --hard origin/master(表示远程分支)//将本地的状态回退到和远程的一样(常用)

HEAD参数说明:

HEAD  || HEAD~0//表示当前版本
HEAD^ || HEAD~1//上一个版本
HEAD^^ || HEAD^2//上上一个版本
HEAD^^^ || HEAD^3//上上上一个版本
以此类推...

回退问题

手把手教你使用Git

解决方法

git reset --hard 

删除文件

$ git rm 文件名//从暂存区和工作区删除文件(如果删除文件夹下的文件=》文件夹名/文件名)
$ git rm -f 文件名//强行从暂存区和工作区中删除修改后的文件
$ git rm --cached 文件名//从暂存区删除文件工作区仍然保留
$ git rm -r 文件夹ming/*//递归删除删除整个目录中的所有子目录和文件

直接丢弃工作区的修改||误删版本库中还有可以恢复

$ git checkout -- 文件名

移动或重命名文件

$ git mv oldFile newFile || (文件夹)//文件重命名 ||(移动到文件夹内)
$ git mv -f oldFile newFile//强制文件重命名

远程仓库

添加远程库

$ git remote add 远程仓库名 仓库地址

查看远程库

$ git remote -v

删除远程库

$ git remote rm 远程库名

上传远程代码并合并

$ git push 远程主机名 本地分支名:远程分支名

手把手教你使用Git

解决方案:本地缺少README.md

git pull --rebase 远程主机 远程分支:本地分支名//把README.md拉到本地

下载远程代码并合并

$ git pull 远程主机 远程分支:本地分支名

分支管理

创建分支

$ git branch 分支名

切换分支

$ git checkout 分支名
$ git switch 分支名(更偏向此指令)

查看分支

$ git branch

创建并切换分支

$ git checkout -b 分支名
$ git switch -c 分支名

删除分支

$ git branch -d 分支名
$ git branch -D 分支名//如果要丢弃一个没有被合并过的分支,可以通过强行删除。

分支合并

$ git merge 要合并的分支

查看提交日志

$ git log //详细的日志
$ git log --oneline//列表形式显示日志
$ git log --reverse --oneline//逆向显示日志
$ git log --graph //查看历史中什么时候出现了分支、合并
$ git blame 文件名//以列表形式显示修改记录

结尾

以上就是作者在开发中常用的指令。
关于git更加全面详细的学习,请参考git官网

点赞
收藏
评论区
推荐文章
Stella981 Stella981
4年前
Nginx多进程高并发、低时延、高可靠机制在缓存(redis、memcache)twemproxy代理中的应用
_0\.手把手教你做中间件、高性能服务器、分布式存储技术交流群_手把手教你做中间件、高性能服务器、分布式存储等(redis、memcache、nginx、大容量redispika、rocksdb、mongodb、wiredtiger存储引擎、高性能代理中间件),git地址如下:git地址:https://github.com/y1234
Stella981 Stella981
4年前
Gitlab+Jenkins学习之路(一)之Git基础
1、GIT基础GIT是一个分布式版本管理系统,速度快,适合大规模,跨地区多人协同开。SVN是一个集中式版本管理系统。(1)GIT生态GIT分布式版本管理系统Gitlabgit私库解决方案Githubgit公有库解决方案(2)Git安装Centos:yuminstall
Stella981 Stella981
4年前
Linux上安装git并在gitlab上建立对应的项目
1.CentOS上面安装git我所用的CentOS为CentOS6.5,其他版本没有测试。yuminstallgit 安装之后查看git版本信息gitversion2.配置git信息gitconfigglobaluser.name"yourname"gitconfigglobaluser.em
Stella981 Stella981
4年前
Git设置分支保护实现CodeReview卡点
Git设置分支保护实现CodeReview卡点GIT是一个分布式版本控制系统的软件,主要用来控制代码的版本。所谓分布式也就是每一个git的客户端都有一份完成的代码库,这样如果中央服务器出现问题,代码也会在各个开发者的电脑上有备份。(本文以下内容以GitLab为例)GitFlow模式将代码和环境对应
Stella981 Stella981
4年前
Git 安装 on centos7
本文演示如何在CentOS7上安装和使用git。1准备工作1.1浏览器访问安装包下载地址:https://www.kernel.org/pub/software/scm/git/找到下载列表中需要安装的版本,以2.17.0版本为例,地址为:https://www.kernel.org
Stella981 Stella981
4年前
Git使用教程
Windows系统下GIT的使用1:Git简介:1.博客园上面找到的语言:Git是一种非常流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统(CVS,Subversion,Perforce,Bazaar等等)每次记录有哪些文件作了更新,以及
Stella981 Stella981
4年前
Git和GitHub的基本操作
GIT版本控制系统版本控制系统功能:1.记录版本历史信息(记录每一次修改的记录)2.方便团队之间相互协作开发3.远程开发......常用的版本控制系统cvs/svn:集中式分布系统git:分布式版本控制系统1.GIT工作原
Stella981 Stella981
4年前
Git基础命令篇
一、Git介绍(1)Git是一个开源(LinusTorvalds为了帮助管理Linux内核开发而开发)的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,与常用的版本控制工具CVS,SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持。(2)Git的工作区、暂存区和版本库:工作区:就
胖大海 胖大海
3年前
Git 原理
简介Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git与常用的版本控制工具CVS,
Damumu Damumu
3年前
Git安装详细教程
Git是一个开源的分布式版本控制系统Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。Git与SVN区别Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。Git与SV
小万哥 小万哥
2年前
Git安装和配置教程:Windows/Mac/Linux三平台详细图文教程,带你一次性搞定Git环境
Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发领域。随着开源和云计算的发展,Git已经成为了开发者必备的工具之一。本文将为大家介绍Git在Windows、Mac和Linux三个平台上的安装和配置方法,带你一次性搞定Git环境Windows平