Git 超详细使用教程

这篇具有很好参考价值的文章主要介绍了Git 超详细使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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、配置用户信息(必要)

配置用户信息是非常重要的,因为每次你提交代码时都会有相应的提交者信息。

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

3.2、配置文本编辑器(非必要)

你可以配置一个默认的文本编辑器,以便你在进行提交信息或解决冲突时编辑文本。例如,如果你想使用Visual Studio Code:

git config --global core.editor "code --wait"

3.3、配置别名(非必要,新手不建议)

Git支持设置别名,使得你可以更快速地输入命令。比如,你可以设置一个别名"co"来代替"checkout"命令:

git config --global alias.co checkout

3.4、查看配置

你可以使用以下命令来查看当前的Git配置:

git config --list
这会列出所有的全局和本地配置设置。

3.5、配置忽略文件

有些文件你可能希望Git自动忽略,例如编译产生的临时文件或敏感数据文件。你可以创建一个名为.gitignore的文件,并将需要忽略的文件和模式添加到其中。

# 示例 .gitignore 文件
*.log
node_modules/
secret.txt

通过这些配置,你可以将Git按照你的喜好进行个性化设置,从而更好地适应你的工作流程。

4、创建仓库

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

4.1、在本地创建仓库

在本地创建一个新的Git仓库非常简单。首先,进入你的项目目录,然后使用以下命令:

git init

git使用,学习笔记,开发工具使用,Java开发,git

这会在当前目录下创建一个新的Git仓库。Git会在项目根目录下生成一个.git文件夹,用于存储版本历史和配置信息。

4.2、在远程托管平台创建仓库

远程托管平台如GitHub、GitLab等提供了创建远程仓库的功能。这允许你将你的代码与团队成员或其他开发者共享。以下是在GitLab上创建远程仓库的步骤:

(1)登录到你的GitLab账号。

(2)在GitLab的主页上,你会看到一个导航栏,导航栏上通常有一个加号(+)图标,点击它展开菜单。

(3)在菜单中,选择"New project"或类似的选项。

(4)在创建项目页面,填写以下信息:

  • Project name: 项目名称,这将是你的仓库的名称。
  • Project slug: 项目标识符,通常是项目名称的小写,可以包含连字符。
  • Project description: 项目描述,简要介绍项目的用途。
  • Visibility Level: 项目的可见性设置,可以选择"Public"(公开)或"Private"(私有)。
  • Initialize repository with a README: 是否在仓库中初始化一个README文件,你可以选择根据需要启用或禁用。
    填写完毕后,点击"Create project"按钮。

(5)GitLab将为你创建一个新的远程仓库,并将你重定向到仓库页面。

(6)在仓库页面中,你将找到仓库的URL,这是你与远程仓库交互的链接。

4.3、关联远程仓库

在本地创建仓库或克隆已有仓库后,你可能想要将它与远程仓库关联起来,以便推送和拉取代码。

git remote add origin <remote-repository-url>

这里,origin是一个远程仓库的别名,你可以自己命名,是远程仓库的URL。

5、基本操作

5.1、初始化仓库

在一个目录中初始化一个Git仓库,使其成为Git可管理的仓库。

git init

5.2、查看工作目录和暂存区的当前状态

查看工作目录和暂存区的当前状态。获得有关你的代码库中文件的信息,包括已修改、已暂存和未跟踪的文件。

git status

例如,在本地仓库中新建一个文件1.txt,然后查看当前状态

git使用,学习笔记,开发工具使用,Java开发,git

5.3、添加文件到暂存区

在进行代码提交之前,需要将文件添加到Git的暂存区,以准备好提交。

//添加指定文件到暂存区
git add <filename>
//添加所有文件到暂存区
git add .

你也可以使用通配符来添加多个文件。

此时执行git status再次查看状态

git使用,学习笔记,开发工具使用,Java开发,git

5.4、提交更改

提交暂存区中的更改到版本库中

git commit -m "Commit message"

合理的提交信息能够清晰地说明你的更改内容。

此时执行git status再次查看状态

git使用,学习笔记,开发工具使用,Java开发,git

5.5、查看提交历史

查看项目的提交历史,了解每次提交的详细信息。

//查看提交历史
git log

//以精简形式显示提交历史
git log --oneline

git使用,学习笔记,开发工具使用,Java开发,git

5.6、比较工作目录和暂存区之间的差异

比较工作目录和暂存区之间的差异,或者比较两个提交之间的差异。

//比较工作目录和暂存区之间的差异
git diff

//比较暂存区和最新提交之间的差异
git diff --staged
//或
git diff --cached

//比较两个提交之间的差异
git diff <commit-hash-1> <commit-hash-2>

//比较指定文件的差异
git diff <filename>

5.7、版本回退

新增两次提交

git使用,学习笔记,开发工具使用,Java开发,git

此时1.txt中的内容为:

git使用,学习笔记,开发工具使用,Java开发,git

此时想要进行版本回退有三种方式

//回退到上个版本
git reset --hard HEAD^

//回退到上上个版本
git reset --hard HEAD^^

//回退到前10个版本
git reset --hard HEAD~10

//回退到指定版本号的版本
git reset --hard a7f365c128827cdf1f0d796141ce3c644cc78770

执行命令回退到上个版本,此时已看不到第三次提交并且1.txt中内容也回退到了对应版本

git使用,学习笔记,开发工具使用,Java开发,git
git使用,学习笔记,开发工具使用,Java开发,git

如果此时我们还想要重新回到版本回退前的版本,则可以使用git reset --hard [版本号] 来实现

//查询版本号
git reflog

//回退版本
git reset --hard [版本号]

此时需要先获取到版本回退前的版本号,然后再执行版本回退

git使用,学习笔记,开发工具使用,Java开发,git

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

如果在修改添加到暂存区之前,想要撤销某个文件的修改可以使用以下命令

//将指定文件恢复到版本库中的版本
git restore <filename>

//将所有文件恢复到版本库中的版本
git restore .

//注意,旧版本不支持restore命令,需要使用该命令
git checkout -- <filename>

如果修改已经添加到暂存区,想要撤销某个文件的修改可以使用以下命令

//放弃指定文件修改
git reset HEAD <filename>

//放弃所有文件修改
git reset HEAD .

5.8、撤销提交

当你需要撤销之前的提交时,你可以使用git revert命令来创建一个新的提交,将之前的提交内容进行反转。这允许你保留之前的提交历史,同时也纠正了之前的更改。

//撤销一个提交
git revert [版本号]

//可以指定一个范围,撤销多个连续的提交
git revert <start-commit>..<end-commit>

6、分支管理

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

6.1、创建分支

创建一个新分支,用于开发新功能或修复问题,保持主线代码不受影响。

//创建一个分支
git branch <branch-name>

//创建并切换到分支
git branch -b <branch-name>

6.2、切换分支

切换到另一个分支,以便在不同的分支上进行不同的工作。

//切换分支
git checkout <branch-name>

//查看当前所在分支
git checkout

6.3、合并分支

将一个分支的更改合并到另一个分支中。

git merge <branch-name>

在合并时可能会遇到冲突,需要手动解决。

6.4、解决冲突

当两个分支有不同的更改并且产生冲突时,需要手动解决冲突。

  • 打开冲突文件,编辑并解决冲突。
  • 使用git add 标记冲突已解决。
  • 提交解决冲突的更改。

6.5、删除分支

当一个分支的工作已经完成,可以删除不再需要的分支。

git branch -d <branch-name>

请注意,如果分支中的更改尚未合并,删除分支时可能会出现警告。

7、远程仓库

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

7.1、关联远程仓库

将本地仓库与远程仓库关联起来,以便你可以推送和拉取代码。
注意:本地Git仓库和远程仓库之间的传输是通过SSH加密的,所以还需要将你的SSH密钥添加到远程仓库设置中。

git remote add origin <remote-repository-url>

在这里,<remote-repository-url>是远程仓库的URL。

7.2、推送代码到远程仓库

一旦关联了远程仓库,你可以将本地代码推送到远程仓库。

git push origin <branch-name>

这会将指定分支的代码推送到远程仓库。首次推送时,你可能需要使用 -u 参数来建立跟踪关系。

7.3、拉取代码

从远程仓库拉取代码更新,以保持你的本地代码同步。

git pull origin <branch-name>

这会将指定分支的最新代码拉取到你的本地仓库。

7.4、解决远程仓库冲突

在多人协作时,可能会遇到远程仓库的冲突。在推送代码之前,确保从远程仓库拉取最新的代码,以避免冲突。

7.5、查看远程仓库

你可以使用以下命令查看与本地仓库关联的远程仓库。

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、分支保护和权限管理

在团队协作中,可以使用分支保护和权限管理来确保代码的质量和安全性。文章来源地址https://www.toymoban.com/news/detail-827510.html

  • 分支保护:限制谁可以直接将代码推送到主分支,只能通过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 文件

到了这里,关于Git 超详细使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mac升级Monterey12.6之后出现 git命令需要使用命令行开发者工具 安装选项的问题处理

    今天刚升级了最新的系统,升级后发现idea、webstorm等等需要git的全部无法使用了,总是弹出git命令需要使用命令行开发工具,提示让我安装,故以为是版本升级原因,那就安装吧,安装之后打开idea,又提示要安装,这。。。  好吧我再安装一次,然后我修改项目代码后,准备

    2024年02月11日
    浏览(45)
  • 【Linux】Linux环境基础开发工具的使用 ———(yum、vim、gcc&g++、gdb、make/Makefile、进度条 、git)

    (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是 Scort 🎓 🌍博客主页:张小姐的猫~江湖背景🌍 快上车🚘,握好方向盘跟我有一起打天下嘞! 送给自己的一句鸡汤🤔: 🔥集中起来的意志可以击穿顽石🔥 🙏作者水平很有限,如果发现错误,可在评论区指正,感谢🙏 🎉🎉欢迎持续关注!🎉🎉

    2024年01月16日
    浏览(53)
  • 最详细GIT学习笔记

    Git(读音为/gɪt/) 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git(分布式版本控制,没有中央服务器,可以离线提交) SVN(集中式版本控制,有中

    2024年02月02日
    浏览(52)
  • Python学习笔记(1)--环境搭建,开发工具PyCharm 安装及初步使用

    传送门==B站黑马python入门教程 1.Python环境安装搭建 安装python基础包 首先,打开python 官网 https://www.python.org/ 下载windows版 下载后进行安装 默认下一步 可自定义安装位置,install安装即可 验证安装文件 win+R 输入cmd ,打开命令框,输入python,若看到安装版本,即安装成功 2.hello world 命令

    2024年02月11日
    浏览(63)
  • 廖雪峰Git教程学习笔记

    目录 概要 一、Git 和 SVN 的区别 二、Git 安装  三、本地仓库操作 1. 查看Git 版本号 2. git config 3. 初始化本地仓库 4. 添加文件到仓库 5. 查看仓库当前状态 6. 查看修改内容 7. 查看提交日志 8. 版本回退 9. git revert 10. 查看命令历史 11. 撤销修改 12. 删除文件 13. .gitignore 设置忽略文

    2024年01月17日
    浏览(38)
  • Liunx开发工具:git和gdb

    目录 一. git的功能和使用 1.1 git的功能 1.2 git三板斧  1.3 git使用中的其他问题 二. 使用gdb调试代码  2.1 生成带有调试信息的可执行程序 2.2 gdb调试代码的方法 git是一块开源、免费的版本管理系统,能够高效敏捷地处理任何大型或小型项目。 问题:什么是版本管理? 这里以

    2024年02月11日
    浏览(45)
  • Python集成开发环境pycharm配置git详细教程

    Python集成开发环境pycharm配置git详细教程 Pycharm是一款很优秀的python集成开发环境,而git则是一个开源的分布式版本控制系统。接下来我们就pycharm中如何配置git,并对一些常用的操作进行详述。 一、 在pycharm中配置本地git。 依次打开File–Settings—Version Control,在Path to Git exec

    2024年02月02日
    浏览(53)
  • 开发工具:git 提交时过滤不必要的文件

    我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。如果小伙伴们觉得不错就一键三连吧~ 有时候我们在 IDEA 中 git 提交时会出现一些不必要的文件让我们提交,那么这个时候我们如何避免这些文件被 git 识别到,请看下方解决方案。 比如这个提交,会有很多的这种:Ma

    2024年02月11日
    浏览(42)
  • Git 超详细使用教程

    1.1、Git 简介和优势 Git是一种分布式版本控制系统,用于跟踪文件和目录的变化,以及协调多个人员之间的代码协作。相比于传统的集中式版本控制系统,如SVN,Git具有许多优势: 分布式 : 每个开发者都有一份完整的代码仓库,可以在离线状态下工作,减少对中央服务器的

    2024年02月19日
    浏览(26)
  • GIT使用教程(超详细)

    目录 前言 1 git安装 2 增加git账户 3 git全局参数配置 4 创建本地仓库  5 关联远程分支  6 删除远程分支关联  7. 删除分支 8 git stash  9 git reset  10 git checkout  11 合并 12 git log 13 git提交模板   🎈个人主页🎈:linux_嵌入式大师之路的博客-CSDN博客 🎉🎉🎉欢迎 👍点赞✍评论⭐

    2024年01月24日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包