git学习与实践(入门)
一、git介绍
什么是git?
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
这是Git官网的介绍,Git 是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小到大的项目。
那什么是版本控制系统?
当我们用作业本区写作业时,可能会发生一些情况:如写错字,更改作业内容,复习之前已写过并修改过的内容等。而版本控制就相当于有一个自动帮你记录这些情况和操作的工具,你可以通过这个工具很快找到这些修改与变动的记录并执行一些操作如回滚,恢复,修改,合并等。其实顾名思义,就是用来控制“版本”的,而这个版本也就是你做出的一些操作导致文件发生的变动,用Git就能很好地管理这些变动。
集中式与分布式
其实版本控制系统在Git出现之前,几乎都是集中式的,如CVS及SVN都是集中式的版本控制系统。集中式版本控制系统,版本库是集中存放在中央服务器的,且需联网才能工作。而分布式版本控制系统是每个人电脑里都有一个版本库,且不需要联网就能工作,这样提高了工作效率与安全性,Git就是一个强大的分布式版本控制系统。
二、简单流程
- 首先得在操作系统中装上Git,这个直接去官网下载就好
- Linux用户用命令即可安装:
sudo apt-get install git
- MAC用户可以通过XCode安装
- 安装完成后,需要最在命令行输入进行设置:
git config --global user.name “Your Name”
git config --global user.email “email@example.com”
1、简单例子
其实最基础也是最重要的指令也就那几条,我们可以通过一个例子完成:
将本地的一个txt文件上传到远程仓库
(1)在代码托管平台创建一个仓库(以Github为例), 登录GitHub,点击页面右上角的加号图标,选择“New repository”创建一个新的仓库,并按照提示填写相关信息。
(2)在一个目录下创建一个Git版本库(仓库),这将把当前目录变为Git可以管理的仓库
git init
(3)在当前目录下编写一个readme.txt文件,然后用 git add 命令将文件添加到暂存区
git add readme.txt
(4)用 git commit 命令把文件提交到仓库
git commit -m “wrote a readme file”
(5)确认分支,现在默认是main
git branch -M main
(6)关联本地仓库和远程仓库: 在GitHub上创建的远程仓库有一个URL,复制该URL。然后,在命令行或终端中执行以下命令,将本地仓库与远程仓库关联起来
git remote add origin <远程仓库URL>
(7)推送到远程仓库: 最后,使用以下命令将本地仓库的内容推送到GitHub的远程仓库
git push -u origin main
如果按照以上操作执行的话,那么不出意外readme.txt文件将成功被传上Github上。
当然我们在执行这样一个流程操作时肯定会遇到各种各样的问题,我建议还是自己去试一试,把自己的项目,学习资源等东西试着传到Github上,然后这个过程中把遇到的问题解决并记录下来(也许会遇到各种问题,且解决起来可能比较耗时),但这样操作几遍过后其实就基本能掌握了。
2、基本理论
Git虽然常用到的命令并不复杂,但是我们了解一下这个东西的一些基本理论,那将有助于我们更好地使用这个工具。
四个工作分区
- 工作目录(Working Directory): 电脑中存放代码修改文件的地方。当我们执行命令git
- 暂存区(Stage/Index): 存放临时改动,前面的命令git add就是就是将内容添加到暂存区
- 仓库区(Repository或Git Directory): 安全存放数据的地方,里面有所有你提交的版本数据,指向最新放入仓库的指针叫HEAD。执行git commit命令后就是提交到这里
- 远程仓库(Remote Directory): 远程托管代码的服务器,其实就是一台一直开着的电脑,里面面也有同样一份仓库来存放你的代码数据。执行git push命令后就是推送到远程仓库
三、常见功能操作
1.时空穿梭
支持版本回滚,管理修改,撤销修改,删除文件等操作
- 查看历史提交
git log
- 回退到之前的版本
git reset --hard commit_id
- 查看状态
git status
- 撤销修改
git checkout – file
2.远程仓库
- 关联远程仓库
git remote add origin git@server-name:path/repo-name.git
- 远程提交
git push
- 远程克隆仓库(Git支持多种协议,包括https,但ssh协议速度最快。)
git clone url
3.分支操作
- 查看分支
git branch
- 创建分支
git branch name
- 切换分支
git checkout name
或者
git switch name
- 创建+切换分支
git checkout -b name
或者
git switch -c name
- 删除分支
git branch -d name
- 合并分支
git merge name
- 解决冲突
先查看有冲突内容的文件
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
然后手动修改保存后再提交即可
查看分支合并图:
git log --graph
4.自定义
- 忽略特殊文件
Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 - 配置文件
每个仓库的Git配置文件都放在.git/config文件中,可以在里面自己配置 - 搭建git服务器
四、小总结
其实Git就是用来管理控制工作的文件的,在多人合作团队任务中起到非常重要的作用,学会管理,学会协作,能够提高工作的效率,或许也能让一个团队、项目走得更远。