目录
Git是什么,为什么要学这个工具?
Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理从小到大的项目的版本管理。Git是目前世界上最流行的版本控制系统,广泛应用于软件开发中,用于代码的版本控制和协同工作。
以下是Git的一些主要特性:
-
分布式架构:Git给予每个开发者一份完整的代码库,包括所有分支和标签,这意味着即使在无网络连接的情况下也能进行大部分操作。
-
速度:Git在合并、分支、切换等操作上非常快速,提供了高效的文件合并和代码对比。
-
数据完整性:Git通过SHA-1哈希算法保护代码和历史记录的完整性,确保代码不会在传输过程中损坏。
-
支持分支和合并:Git支持快速、简便的分支创建和合并操作,鼓励开发者使用分支进行开发。
-
支持离线操作:开发者可以在本地进行大部分Git操作,如提交、查看历史等,不需要网络连接。
-
基于变更的合并:Git合并操作是基于差异的,这使得合并过程更加高效和准确。
-
多用户支持:Git能够处理多用户协作,允许多个开发者同时工作在同一个项目上。
-
可扩展性:Git是一个可扩展的系统,提供了钩子(hooks)和API,允许和其他工具集成。
-
支持大型项目:Git能够高效地处理大型项目,如Linux内核,它能够快速地切换分支和合并代码。
-
兼容性:Git与其他版本控制系统(如SVN)兼容,可以导入或导出项目。
-
图形用户界面:虽然Git本身是一个命令行工具,但存在许多图形用户界面(GUI)客户端,如GitHub Desktop、SourceTree等,使得非命令行用户也能方便地使用Git。
-
社区支持:Git拥有一个活跃的社区,提供大量的文档、教程和工具。
Git是现代软件开发中不可或缺的工具之一,它帮助开发者管理代码变更、协作和追踪项目历史。
复杂了, 说白了git就是一套代码, 帮助我们管理项目代码的, 为什么要将项目代码等主要文件进行版本控制呢。比如有这样一个例子, 你在写一个项目代码, 成功了, 但是你觉得这个版本有点问题, 但是能用, 想要改进一下, 但是又害怕改不出来, 最开始能用的版本都没了, 这个时候就可以使用git, 就和我们在代码的时候version1, version2, 会给项目起很多个版本。git就是这样一个作用, 可以帮我们快速追溯代码, 进行版本控制。



码云注册并创建仓库





这个url就是我们仓库的网址, 或者说就是我们创建的仓库在网络服务器中的存储位置
Git安装

没有安装的按照下面的步骤安装一下
首先在虚拟机中安装应用: sudo apt-get install git (ubuntu要有网络)
安装完成应该我们去刚才的仓库的url复制一下, 需要输入账号名和密码, 自己输入一下就行。
git clone url(自己仓库的url)


这样我们刚才在码云上创建的仓库就被克隆到本地了
git初始化: git init
配置姓名: git config --global user.name "Your Name"
配置邮箱: git config --global user.email "you@example.com"
查看并管理目录下文件的状态: git status (新增的及修改的文件都是红色)
将指定文件或所有文件加到暂存区: git add 文件名 或 git add . (绿了)
生成版本: git commit -m "名字" (名字随便起,为了管理)
上交文件或者目录: git push
查看版本记录: git log
查看本地仓库状态


添加到暂存区


提交到本地库


修改文件


版本回退

创建、切换和删除分支

合并分支





克隆远端库到本地
生成密钥: ssh-keygen -t rsa -C "youremail" (直接按三次回车即可生成;虚拟 机输入cat /home/xxx/.ssh/id_rsa.pub查看公钥[xxx为自己的用户名], 将这个公钥添加到git仓库,即可下载clone该仓库的源码文件。) 然后将密钥加载到码云 即可克隆或上传


将本地库推送到远端库

命令设置别名
eg: git log ==> git ls (作用是查看log版本信息)
