Git 超详细使用教程

王海鱼  金牌会员 | 2024-8-29 08:51:31 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 897|帖子 897|积分 2691

1、介绍

1.1、Git 简介和优势

Git是一种分布式版本控制系统,用于跟踪文件和目录的变化,以及调和多个职员之间的代码协作。相比于传统的集中式版本控制系统,如SVN,Git具有许多优势:


  • 分布式: 每个开发者都有一份完备的代码堆栈,可以在离线状态下工作,淘汰对中央服务器的依赖。
  • 高效性: Git对于汗青版本的管理非常高效,基于快照而不是差别。
  • 分支管理: Git鼓励使用分支举行并行开发,方便实现差别功能和修复同时举行。
  • 易于协作: 多人协作时,可以轻松地归并息争决辩论。
  • 安全性: Git使用哈希值包管数据的完备性,避免了数据损坏。
  • 开源: Git本身是开源的,拥有庞大的社区支持。
1.2、版本控制根本概念

在使用Git之前,相识一些根本的版本控制概念是很重要的:


  • 堆栈(Repository): 一个Git堆栈是一个存储你项目所有文件和汗青版本的地方。
  • 提交(Commit): 提交是保存代码更改的利用,每次提交会生成一个唯一的哈希值用于标识。
  • 分支(Branch): 分支是用来举行并行开发的,你可以在分支上举行实行性的更改而不影响主线。
  • 主分支(Main Branch): 通常是main或master分支,代表项目的稳定版本。
  • 归并(Merge): 将一个分支的更改归并到另一个分支。
  • 辩论(Conflict): 当多个分支的更改发生辩论时,需要手动解决。
2、安装 Git

   在Windows上安装git
访问Git官网(https://git-scm.com/)。
下载实用于Windows的Git安装程序。
运行安装程序,按照提示完成安装。
  3、配置 Git

在你安装了Git后,为了确保你的个人或项目特定的配置设置正确,你可以通过一些Git命令来举行配置。这些配置项将影响你在使用Git时的行为和体验。
3.1、配置用户信息(必要)

配置用户信息是非常重要的,由于每次你提交代码时都会有相应的提交者信息。
  1. git config --global user.name "Your Name"
  2. git config --global user.email "your.email@example.com"
复制代码
3.2、配置文本编辑器(非必要)

你可以配置一个默认的文本编辑器,以便你在举行提交信息或解决辩论时编辑文本。例如,如果你想使用Visual Studio Code:
  1. git config --global core.editor "code --wait"
复制代码
3.3、配置别名(非必要,新手不建议)

Git支持设置别名,使得你可以更快速地输入命令。好比,你可以设置一个别名"co"来取代"checkout"命令:
  1. git config --global alias.co checkout
复制代码
3.4、查看配置

你可以使用以下命令来查看当前的Git配置:
  1. git config --list
  2. 这会列出所有的全局和本地配置设置。
复制代码
3.5、配置忽略文件

有些文件你可能盼望Git主动忽略,例如编译产生的临时文件或敏感数据文件。你可以创建一个名为.gitignore的文件,并将需要忽略的文件和模式添加到其中。
  1. # 示例 .gitignore 文件
  2. *.log
  3. node_modules/
  4. secret.txt
复制代码
通过这些配置,你可以将Git按照你的喜欢举行个性化设置,从而更好地适应你的工作流程。
4、创建堆栈

Git堆栈是用于存储你的项目代码和汗青版本的地方。你可以在本地计算机上创建堆栈,也可以在远程托管平台(如GitHub、GitLab、Gitee、Bitbucket等)上创建堆栈。下面将分别介绍如何在本地和远程创建堆栈。
4.1、在本地创建堆栈

在本地创建一个新的Git堆栈非常简单。起首,进入你的项目目录,然后使用以下命令:
  1. git init
复制代码

这会在当前目录下创建一个新的Git堆栈。Git会在项目根目录下生成一个.git文件夹,用于存储版本汗青和配置信息。
4.2、在远程托管平台创建堆栈

远程托管平台如GitHub、GitLab等提供了创建远程堆栈的功能。这允许你将你的代码与团队成员或其他开发者共享。以下是在GitLab上创建远程堆栈的步调:
(1)登录到你的GitLab账号。
(2)在GitLab的主页上,你会看到一个导航栏,导航栏上通常有一个加号(+)图标,点击它展开菜单。
(3)在菜单中,选择"New project"或类似的选项。
(4)在创建项目页面,填写以下信息:


  • Project name: 项目名称,这将是你的堆栈的名称。
  • Project slug: 项目的识符,通常是项目名称的小写,可以包含连字符。
  • Project description: 项目形貌,简要介绍项目的用途。
  • Visibility Level: 项目的可见性设置,可以选择"ublic"(公开)或"rivate"(私有)。
  • Initialize repository with a README: 是否在堆栈中初始化一个README文件,你可以选择根据需要启用或禁用。
    填写完毕后,点击"Create project"按钮。
(5)GitLab将为你创建一个新的远程堆栈,并将你重定向到堆栈页面。
(6)在堆栈页面中,你将找到堆栈的URL,这是你与远程堆栈交互的链接。
4.3、关联远程堆栈

在本地创建堆栈或克隆已有堆栈后,你可能想要将它与远程堆栈关联起来,以便推送和拉取代码。
  1. git remote add origin <remote-repository-url>
复制代码
这里,origin是一个远程堆栈的别名,你可以本身定名,是远程堆栈的URL。
5、根本利用

5.1、初始化堆栈

   在一个目录中初始化一个Git堆栈,使其成为Git可管理的堆栈。
  1. git init
复制代码
5.2、查看工作目录和暂存区的当前状态

   查看工作目录和暂存区的当前状态。获得有关你的代码库中文件的信息,包罗已修改、已暂存和未跟踪的文件。
  1. git status
复制代码
  例如,在本地堆栈中新建一个文件1.txt,然后查看当前状态
  

5.3、添加文件到暂存区

   在举行代码提交之前,需要将文件添加到Git的暂存区,以准备好提交。
  1. //添加指定文件到暂存区
  2. git add <filename>
  3. //添加所有文件到暂存区
  4. git add .
复制代码
  你也可以使用通配符来添加多个文件。
    此时执行git status
再次查看状态
  

5.4、提交更改

   提交暂存区中的更改到版本库中
  1. git commit -m "Commit message"
复制代码
  合理的提交信息可以或许清楚地说明你的更改内容。
    此时执行git status
再次查看状态
  

5.5、查看提交汗青

   查看项目的提交汗青,相识每次提交的详细信息。
  1. //查看提交历史
  2. git log
  3. //以精简形式显示提交历史
  4. git log --oneline
复制代码

5.6、比力工作目录和暂存区之间的差别

比力工作目录和暂存区之间的差别,或者比力两个提交之间的差别。
  1. //比较工作目录和暂存区之间的差异
  2. git diff
  3. //比较暂存区和最新提交之间的差异
  4. git diff --staged
  5. //或
  6. git diff --cached
  7. //比较两个提交之间的差异
  8. git diff <commit-hash-1> <commit-hash-2>
  9. //比较指定文件的差异
  10. git diff <filename>
复制代码
5.7、版本回退

   新增两次提交
  

   此时1.txt中的内容为:
  

   此时想要举行版本回退有三种方式
  1. //回退到上个版本
  2. git reset --hard HEAD^
  3. //回退到上上个版本
  4. git reset --hard HEAD^^
  5. //回退到前10个版本
  6. git reset --hard HEAD~10
  7. //回退到指定版本号的版本
  8. git reset --hard a7f365c128827cdf1f0d796141ce3c644cc78770
复制代码
  执行命令回退到上个版本,此时已看不到第三次提交并且1.txt中内容也回退到了对应版本
  


   如果此时我们还想要重新回到版本回退前的版本,则可以使用git reset --hard [版本号] 来实现
  1. //查询版本号
  2. git reflog
  3. //回退版本
  4. git reset --hard [版本号]
复制代码
  此时需要先获取到版本回退前的版本号,然后再执行版本回退
  

5.8、恢复工作目录中的更改

如果在修改添加到暂存区之前,想要打消某个文件的修改可以使用以下命令
  1. //将指定文件恢复到版本库中的版本
  2. git restore <filename>
  3. //将所有文件恢复到版本库中的版本
  4. git restore .
  5. //注意,旧版本不支持restore命令,需要使用该命令
  6. git checkout -- <filename>
复制代码
如果修改已经添加到暂存区,想要打消某个文件的修改可以使用以下命令
  1. //放弃指定文件修改
  2. git reset HEAD <filename>
  3. //放弃所有文件修改
  4. git reset HEAD .
复制代码
5.8、打消提交

当你需要打消之前的提交时,你可以使用git revert命令来创建一个新的提交,将之前的提交内容举行反转。这允许你保留之前的提交汗青,同时也纠正了之前的更改。
  1. //撤销一个提交
  2. git revert [版本号]
  3. //可以指定一个范围,撤销多个连续的提交
  4. git revert <start-commit>..<end-commit>
复制代码
6、分支管理

Git的分支管理功能允许你在不影响主线代码的情况下举行并行开发、实行性改动和问题修复。相识如何创建、切换和归并分支,以及如何解决分支辩论非常重要。
6.1、创建分支

创建一个新分支,用于开发新功能或修复问题,保持主线代码不受影响。
  1. //创建一个分支
  2. git branch <branch-name>
  3. //创建并切换到分支
  4. git branch -b <branch-name>
复制代码
6.2、切换分支

切换到另一个分支,以便在差别的分支上举行差别的工作。
  1. //切换分支
  2. git checkout <branch-name>
  3. //查看当前所在分支
  4. git checkout
复制代码
6.3、归并分支

将一个分支的更改归并到另一个分支中。
  1. git merge <branch-name>
复制代码
在归并时可能会碰到辩论,需要手动解决。
6.4、解决辩论

当两个分支有差别的更改并且产生辩论时,需要手动解决辩论。


  • 打开辩论文件,编辑并解决辩论。
  • 使用git add 标记辩论已解决。
  • 提交解决辩论的更改。
6.5、删除分支

当一个分支的工作已经完成,可以删除不再需要的分支。
  1. git branch -d <branch-name>
复制代码
请注意,如果分支中的更改尚未归并,删除分支时可能会出现警告。
7、远程堆栈

将你的本地堆栈与远程堆栈举行关联,可以实现代码的共享和团队协作。在本节中,你将学习如何关联远程堆栈、推送代码到远程堆栈以及从远程堆栈拉取代码更新。
7.1、关联远程堆栈

将本地堆栈与远程堆栈关联起来,以便你可以推送和拉取代码。
注意:本地Git堆栈和远程堆栈之间的传输是通过SSH加密的,以是还需要将你的SSH密钥添加到远程堆栈设置中。
  1. git remote add origin <remote-repository-url>
复制代码
在这里,<remote-repository-url>是远程堆栈的URL。
7.2、推送代码到远程堆栈

一旦关联了远程堆栈,你可以将本地代码推送到远程堆栈。
  1. git push origin <branch-name>
复制代码
这会将指定分支的代码推送到远程堆栈。初次推送时,你可能需要使用 -u 参数来创建跟踪关系。
7.3、拉取代码

从远程堆栈拉取代码更新,以保持你的本地代码同步。
  1. git pull origin <branch-name>
复制代码
这会将指定分支的最新代码拉取到你的本地堆栈。
7.4、解决远程堆栈辩论

在多人协作时,可能会碰到远程堆栈的辩论。在推送代码之前,确保从远程堆栈拉取最新的代码,以避免辩论。
7.5、查看远程堆栈

你可以使用以下命令查看与本地堆栈关联的远程堆栈。
  1. git remote -v
复制代码
通过以上远程堆栈利用,你可以实现代码的共享和协作,确保团队成员之间的代码同步。请根据你的现实项目需求和使用情况对上述内容举行编辑和扩展。
8、高级利用

除了根本利用外,Git还提供了一些高级利用,可以帮助你更灵活地管理代码和汗青记录。在本节中,你将学习如何重写汗青、使用储藏功能以及管理子模块。
8.1、重写汗青

在某些情况下,你可能需要修改之前的提交汗青,如归并、重新排序或删除提交。


  • 修改近来一次提交信息:git commit --amend
  • 交互式地修改提交汗青:git rebase -i
8.2、使用储藏和恢复

储藏功能允许你将当前未提交的更改暂存起来,以便在切换分支或执行其他利用时恢复使用。


  • 储藏当前更改:git stash
  • 恢复储藏的更改:git stash apply 或 git stash pop
8.3、管理子模块

子模块允许你在一个Git堆栈中嵌套另一个堆栈,这对于依赖的管理非常有用。


  • 添加子模块:git submodule add
  • 更新子模块:git submodule update --init --recursive
  • 删除子模块:详见Git文档
通过高级利用,你可以更灵活地处置处罚提交汗青、更改管理以及子模块等复杂情况。请根据你的现实项目需求和使用情况对上述内容举行编辑和扩展。
9、团队协作

在团队中协作使用Git时,需要注意调和各种运动以确保代码的正确性、稳定性和一致性。本末节将介绍如何在团队中使用Git举行协作。
9.1、Git 团队协作流程



  • 使用主分支:主分支通常是稳定的版本,团队成员从这里创建本身的分支。
  • 特性分支:每个新功能或修复都应该在本身的分支上举行开发。
  • 提交和推送:团队成员定期提交并推送本身的分支更改。
  • 代码审查:使用代码审查工具(如Pull Request)确保代码质量和规范。
  • 归并:颠末审查后,将特性分支归并到主分支。
  • 解决辩论:如果有辩论,团队协作解决辩论并保持代码稳定。
9.2、解决团队协作辩论

在团队协作中,当差别成员的更改辩论时,需要解决这些辩论。以下是一些解决辩论的步调:


  • 拉取更新:在举行本身的更改之前,先拉取远程堆栈的最新更新。
  • 处置处罚辩论:如果出现辩论,打开文件并手动解决辩论。
  • 提交解决:将解决辩论后的文件提交到本身的分支。
  • 更新远程堆栈:将解决辩论的分支推送到远程堆栈。
9.3、代码审查

代码审查是团队协作中的重要环节,可以帮助发现潜伏的问题并提高代码质量。通常使用Pull Request(PR)工具举行代码审查。


  • 创建PR:在特性分支开发完成后,创建一个Pull Request。
  • 代码审查:团队成员审查代码,并提供反馈和建议。
  • 更新和讨论:根据审查意见更新代码,并与团队成员讨论。
  • 归并PR:颠末审查和讨论后,将PR归并到主分支。
9.4、分支保护和权限管理

在团队协作中,可以使用分支保护和权限管理来确保代码的质量和安全性。


  • 分支保护:限制谁可以直接将代码推送到主分支,只能通过PR归并。
  • 权限管理:根据团队成员的脚色,分配合适的权限,如写权限、归并权限等。
10、附录

常用 Git 命令速查表

根本利用



  • 初始化堆栈:git init


  • 克隆远程堆栈:git clone <repository-url>
  • 查看状态:git status

  • 添加文件到暂存区:git add <filename>
  • 提交更改:git commit -m “Commit message”
  • 查看提交汗青:git log
  • 查看文件差别:git diff <filename>
  • 查看远程堆栈列表:git remote -v

  • 查看远程分支列表:git branch -r
分支利用



  • 创建分支:git branch <branch-name>
  • 切换分支:git checkout <branch-name> 或 git switch <branch-name>
  • 创建并切换分支:git checkout -b <branch-name> 或 git switch -c <branch-name>
  • 归并分支:git merge <branch-name>

  • 删除分支:git branch -d <branch-name>

远程堆栈利用



  • 关联远程堆栈:git remote add <remote-name> <repository-url>
  • 推送代码:git push <remote-name> <branch-name>
  • 拉取代码:git pull <remote-name> <branch-name>
  • 创建Pull Request:在远程堆栈上利用
  • 获取远程堆栈更新:git fetch
高级利用



  • 重写汗青:git commit --amend、git rebase -i <commit-hash>
  • 使用储藏:git stash、git stash apply、git stash pop
  • 管理子模块:git submodule add <repository-url>
  • 重置和回退:git reset --soft <commit-hash>、git reset --hard <commit-hash>、git reflog
团队协作



  • 创建Pull Request:在远程堆栈上利用
  • 代码审查:通过Pull Request 举行
  • 解决辩论:手动编辑文件解决辩论
  • 分支保护和权限管理:在远程堆栈上设置
常见问题解决



  • 解决辩论:手动编辑辩论文件
  • 打消错误提交:git reset --soft HEAD^、git reset --hard HEAD^、重写汗青
  • 抛弃未提交更改:git restore <filename>
  • 追踪和忽略文件:git rm --cached <filename>、创建 .gitignore 文件

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表