目录
一.Git的简介
1.1 Git与SVN的区别(优势与劣势)
1.2 Git的工作流程
二.Git的安装及常用命令
2.1 使用前准备
编辑
编辑
2.2 在Windows中安装Git
官网链接
Git - Downloadshttps://git-scm.com/downloads
2.3 Git的常用命令
三、Git命令的理论
分布式版本控制: Git 是分布式的,这意味着每个开发人员都拥有完整的代码库的副本,而不是依赖于集中式服务器。这使得开发人员能够独立工作,并在没有网络连接的情况下进行版本控制操作。
代码仓库: Git 使用仓库来存储代码和版本历史。一个仓库包含所有的代码、分支、提交历史以及配置信息。
提交(Commit): 提交是 Git 中的基本操作,它代表了代码库的一个快照,包括一组修改和相关的提交信息。提交是不可更改的,每个提交都有一个唯一的哈希标识。
分支(Branch): 分支是指代码库中的不同开发线,允许开发人员在不影响主要代码线的情况下进行独立的开发。Git 的分支操作非常高效,允许轻松创建、合并和删除分支。
合并(Merge): 合并是将一个分支的更改合并到另一个分支的操作。Git 提供了多种合并策略,以确保代码被合并到目标分支时不会引入冲突。
远程仓库(Remote Repository): 远程仓库是分布式团队协作的关键,它允许开发人员协同工作、共享代码,并在不同的位置之间同步代码。
克隆(Clone): 克隆是从远程仓库创建一个本地副本的过程。通过克隆,开发人员可以开始在自己的计算机上工作。
拉(Pull)和推(Push): 拉操作用于将远程仓库的更改同步到本地仓库,而推操作用于将本地更改上传到远程仓库。
标签(Tag): 标签是对特定提交的符号引用,通常用于标识版本或重要的里程碑。
Git:
分布式版本控制: Git 是分布式版本控制系统,每个开发人员都拥有完整的代码库的副本。这允许离线工作、灵活的分支和合并,以及更好的协作。
速度: Git 在性能方面表现出色,因为它本地存储数据并使用快速的算法来处理操作。这使得 Git 在操作大型代码库时更加高效。
分支和合并: Git 的分支和合并操作非常轻松,允许开发人员创建、切换和合并分支,促进并行开发和实验性工作。
完整的历史记录: Git 记录每个提交的完整历史记录,包括修改的文件内容。这提供了更丰富的信息,有助于问题追踪和代码审查。
稳定性: Git 非常稳定,广泛用于许多大型开源项目和企业项目。
Git 的优势:
分布式架构,适合分散团队和离线工作。
高性能和快速的操作。
强大的分支和合并支持,鼓励并行开发。
完整的历史记录和内容级别的跟踪,有助于问题排查。
大型开源项目广泛采用。
Git 的劣势:学习曲线较陡峭,对初学者来说可能有一些挑战。
由于分布式性质,可能需要更多的存储空间。
SVN (Subversion):
集中式版本控制: SVN 是集中式版本控制系统,代码库存储在中央服务器上,开发人员需要从服务器检出代码。这种方式限制了分支和合并的灵活性。
文件级别历史记录: SVN 跟踪文件级别的历史记录,而不是 Git 的内容级别。这在一些情况下可能导致信息不够详细。
传统文件锁定: SVN 支持文件锁定来避免多人同时编辑同一文件,但这也限制了并行开发的灵活性。
相对简单: SVN 相对来说更容易学习和使用,因此对于一些团队和项目来说可能更适合。
SVN 的优势:
- 相对容易上手,适合初学者。
- 文件锁定机制有助于避免冲突。
- 适合一些传统开发工作流程。
SVN 的劣势:
- 集中式架构可能导致单点故障。
- 分支和合并支持较弱,可能导致工作流程不够灵活。
- 文件级别历史记录和跟踪限制了问题排查的详细程度。
综合来看,Git 在许多现代开发场景中更受欢迎,特别是对于需要分布式开发、高性能和复杂工作流程的项目。然而,SVN 仍然在某些传统或较小规模的项目中有其用武之地,特别是对于那些更简单的版本控制需求。选择 Git 还是 SVN 取决于项目的具体要求和团队的工作流程。
Git的工作流程主要涉及以下几个关键概念:工作区(Working Directory)、暂存区(Staging Area)、本地仓库(Local Repository)和远程仓库(Remote Repository)。下面是Git的基本工作流程:
初始化仓库:
使用git init命令在本地目录中初始化一个新的Git仓库。
进行修改:在工作区进行代码编辑和修改。
暂存文件:使用git add
命令将修改的文件添加到暂存区。
可以多次使用git add命令添加不同的文件。
提交变更:使用git commit -m "
"命令将暂存区的文件提交到本地仓库。
每次提交都会创建一个新的提交记录,记录了文件的变更和提交说明。
查看提交历史:使用git log命令查看提交历史,包括每个提交的作者、时间和提交说明。
分支管理:使用git branch命令查看所有分支,并使用git checkout
命令切换到不同的分支。
使用git merge命令合并不同分支的修改。
远程仓库交互:使用git remote add
命令关联本地仓库和远程仓库。
使用git push命令将本地提交推送到远程仓库。
使用git pull命令从远程仓库获取最新的提交记录并合并到本地仓库。
冲突解决:当多个人同时修改同一文件的同一部分时,可能会发生冲突。
使用合适的工具(如编辑器或Git客户端)解决冲突,并使用git add命令将解决后的文件标记为已解决。
使用git commit命令提交解决冲突的文件。
注册一个Gitee账号
注册好后登录
创建账号之后创建一个仓库。点击右上角的+号,并且点击新建仓库。如下:
这里只有填入仓库的名称和选择开源之后,就直接创建仓库即可,点击创建,如下:
创建完成后,会有简易的命令行入门教程,如:Git 全局设置,创建 git 仓库,已有仓库?
将这些命令全部复制到一个文本文件中进行保存。如下:
先建立一个文件夹
右键出现刚刚下载的两个文件
打开窗口后,分别将Git 全局设置的命令输入其中分别执行一次。如下:
执行完后,查看本地用户下有没有 .gitconfig 的这个文件,打开看看,和我们的信息是一样的
就OK了。如下:
之后根据 创建 git 仓库的命令,先创建仓库,在进入仓库,进入后将该仓库标记为Git管理的仓库,如下:
标记后创建的仓库本地文件夹中会有个隐藏文件,如图 :
之后进行根据创建 git 仓库的命令,创建一个文件,再将文件给Git管理,之后查看状态
看到如图所示说明已经给Git管理,如果是红色说明没有。具体操作如下:
找到自己需要的版本,然后傻瓜式安装,一直下一步
下载完成后,在文件资源管理器中右键出现如图中,两个选项就说明安装成功。
以下是一些常用的 Git 命令及其功能:
git init:在目录中初始化一个新的 Git 仓库。
git clone:从远程仓库克隆代码到本地。
git add:将文件或目录的更改添加到暂存区,准备提交。
git commit:提交暂存区中的更改到本地仓库。
git status:查看工作目录、暂存区和本地仓库的状态。
git log:查看提交历史记录。
git diff:比较工作目录中的更改与暂存区或本地仓库中的内容。
git branch:列出本地分支,或创建新分支。
git checkout:切换分支或还原文件。
git merge:合并一个分支的更改到当前分支。
git pull:从远程仓库拉取并合并更改。
git push:将本地更改推送到远程仓库。
git remote:管理远程仓库的别名。
git fetch:从远程仓库获取最新信息,但不合并。
git reset:重置当前分支到指定的提交。
git rebase:将当前分支的更改在另一个分支的基础上重新应用。
git tag:创建、列出或删除标签,用于标识特定提交。
git stash:暂存当前工作目录的更改,以便在另一个分支上工作。
git blame:显示每行代码的最后一次修改及作者信息。
git config:配置 Git 的各种选项,包括用户信息、别名等。
git init:初始化一个新的Git仓库。
创建一个新的本地Git仓库,用于存储项目的版本历史和文件变更。
git clone:克隆一个远程仓库到本地。 从远程仓库中复制所有历史和文件到本地,创建一个与远程仓库相同的副本。
git add:将文件添加到暂存区。 将指定文件的当前版本添加到Git的暂存区中,以准备提交到版本历史中。
git commit -m "":将暂存区的文件提交到版本历史中。 创建一个新的版本记录,包含了暂存区中所有文件的当前状态,并附带一条简短的说明信息。
git push:将本地的版本历史推送到远程仓库。将本地仓库中的最新版本推送到与之关联的远程仓库中,实现版本同步和团队协作。
git pull:从远程仓库拉取最新的版本到本地。从与当前分支关联的远程仓库中获取最新的版本记录和文件变更,并自动合并到本地仓库。
git branch:列出所有分支。显示当前仓库中包含的所有分支,以及当前所在的分支。
git checkout:切换到指定的分支。 切换当前工作目录到指定分支,并更新工作区中的文件以符合该分支中最新的版本记录。
git merge:将指定分支合并到当前分支。 将指定的分支合并到当前分支,将两个分支的修改组合在一起并创建一个新的提交记录。
git log:显示当前分支的版本历史。显示当前分支中所有提交记录的详细信息,包括作者、提交时间、说明等。