<细致>git是什么以及git的简单上手入门
我觉得 使用git命令 是身为一名计算机科班出身的人基本技能之一吧。这连能力都算不上。就像打穿越火线的都会摁R换弹夹但不是所有人都会二段跳。二段跳就是能力问题了。
1.git是什么?
git是目前世界上最先进的分布式版本控制系统。
2. git从何而来
众所周知,1991年linus编写并开源了Linux操作系统,一直到2002年,linux的前进发展都是世界各地的志愿者把源代码文件通过diff的方式发给linus,然后linus本人通过手工方式合并代码。
到了2002年linux社区采用了一个商业的分布式版本控制系统BitKeeper,BitKeeper给了linux社区免费使用权,linux社区中一些人试图破解BitKeeper的协议,2005年开发samba的andrew的"逾约"行为被BitKeeper公司发现了,BK公司要求收回linux社区免费使用权,哼老子免费给你用你还干这么不要脸的事老子不干了。此时linus没有向BK公司道歉,花了两周时间自己用c写了一个分布式版本控制系统,也就是Git。过了一个月,linux系统的源码就已经由git来管理了。
此后git迅速风靡世界,2008年github上线,为开源项目免费提供git存储,无数开源项目开始移到Github,包括jQuery,PHP,Ruby等等。
3.集中式版本管理系统 vs 分布式版本管理系统
https://www.liaoxuefeng.com/wiki/896043488029600/896202780297248
4.安装Git
在linux上安装Git
$sudo apt-get install git
在windows上安装Git
从Git官网下载安装程序进行安装,安装成功后需要进行初始化设置,因为git是分布式版本控制系统,每个机器都必须自报家门:你的名字和email地址。
$git config --global user.name "xxxxx"
$git config --global user.email "xxxxxxxxx"
在MacOS上安装Git
Xcode集成了Git,直接用Xcode的命令行就行。
5.版本库(仓库)创建
即repository的创建,repository里的所有文件都可以被git管理起来,每个文件的修改删除Git都能跟踪以便任何时刻都能追踪历史或者在将来某个时刻"还原"。
第一步,创建一个本地目录,如果已经有了可以忽略这一步。
$ mkdir git_test
$ cd git_test
$ pwd
/Users/Dynmi/git_test
ok,这个repository位于笔记本的 /Users/Dynmi/git_test
第二步,通过git init命令把这个本地目录变成git可以管理的repository。
$ git init Initialized empty Git repository in /Users/Dynmi/git_test/.git/
.git目录是git用来跟踪管理这个repository的。
上面说的是自己从零在本地创建一个新的版本库的方法。然而我们大多都是通过网络从远程把版本库clone到本地机器上,使用git clone命令。
6.添加文件与删除文件
这里我们编写一个readme.txt文件,内容如下:
Linus,who developed git,is a great developer.
I admire him.
首先把readme.txt文件,也就是我们要添加的文件放到repository中也就是/git_test目录下,然后告诉git,我们做了把文件添加到repository的操作。
$ git add readme.txt
$ git commit -m "wrote a readme file"
git add命令,后面输入的是添加的文件名,可以一次提交一个文件,也可以多个,如
$ git add file1.txt file2.txt
如果删除了一个文件,则使用与git add <file>完全相反的git rm <file>命令将工作区内容提交到暂存区,再git commit将暂存区修改提交到当前分支。
git commit命令,-m后面输入的是本次提交的说明。
至此,git入门成功。学到三个helloworld级别的命令,分别是
git init
git add <file> 所有文件无论是第一次添加还是后期修改,都要在操作完后使用git add入库
git commit -m <message> 提交做的修改操作
7.管理修改,撤销修改,删除文件
提交文件添加后如果再行修改这个文件,修改后需要提交更改,具体操作如下:(承接上文readme.txt)
$ git add readme.txt
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
$ git commit -m "readme.txt modified"
[master 5e92616] readme.txt modified.
1 file changed, 1 deletion(-)
$ git status
On branch master
nothing to commit, working tree clean
使用git status命令可以查看目前待提交的添加修改操作,上文我们做了git add命令之后如果git status可见git add命令后尚未提交的修改。
对于所有做过的commit提交,可以通过git log命令查看。
下图是一个全面的git命令总结
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步