这是我参与更文挑战的第2天,活动详情查看: 更文挑战
前言
本篇文章的环境是在Debian/Linux环境下编写。
在日常工作中git少不了,所以编写本篇文章教大家如何使用git,便于日后工作与学习。
同时本篇文章也积累了很多博主在工作开发中包括自己日常开发中都用到的一些git技巧,在本文的最后整理了一份关于git的常用命令表。
git命令很多,但是常用的只有十多个。
编写不易,喜欢可以关注点赞三连,谢谢!
发展过程
Git最初是由Linux开发者Linus用了仅仅两周时间纯C语言编写而成,在编写完成之后就立马上手接管Linux源代码,不过在此之前Linux是由BitMover公司开发的BitKeeper分布式版本控制系统所管理源代码,它是商业收费的分布式版本控制器,但BitMover公司看中Linux开源精神,免费授权给Linux社区使用,在2002年时,Linux开始使用BitKeeper分布式版本控制系统管理源代码,但好景不长,有一天Linux社区成员Andrew(samba(局域网共享文件c/s程序)的作者)试图破解BitKeeper共享给所有人使用,被BitMover公司发现并收回了免费使用的版权,随后Linus就用了两周时间开发出了git(两周时间包括测试),也就是目前为止最好用的分布式版本控制系统。
大名鼎鼎的github用的就是git系统来管理它们的网站,这里需要区分一下,github和git是两个东西,github是一个社区,git是一个服务系统,github只支持git分布式系统,所以故名成为github。
集中式与分布式的区别 除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式
集中式就是svn和csv这样的版本控制系统,分布式是git
区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。
分布式的区别在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。
像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。
Debian/Linux安装Git
sudo apt install git 如果找不到使用search命令检索一下
sudo apt search git
配置git环境:git config --global 参数讲解:
config:参数是用来配置git环境的
--global:长命令表示配置整个git环境
初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码
用户名配置
user代表用户,.name代表配置用户的名称
git config --global user.name "你的用户名"
邮箱配置
user代表用户,.email代表配置用户的邮箱
git config --global user.email "你的邮箱"
不配置也行,当遇到要求登录权限的远程仓库会让你在手动输入用户名、邮箱、以及密码
创建本地空仓库:git init init:初始化当前目录为仓库,初始化后会自动将当前仓库设置为master
创建本地仓库的条件是需要一个空目录,然后在空目录中初始化你的项目
如我想创建一个名为“test”的空项目
1.创建目录
mkdir test
2.进入目录
cd test
3.使用git init初始化当前仓库
git init
初始化后会生成git的配置文件目录,普通的"ls"命令是看不到的,我们需要使用ls -ah查看隐藏目录 进入目录后可以看到它的相关配置文件