ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Git 超详细使用教程
[打印本页]
作者:
王海鱼
时间:
2024-8-29 08:51
标题:
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堆栈。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、关联远程堆栈
在本地创建堆栈或克隆已有堆栈后,你可能想要将它与远程堆栈关联起来,以便推送和拉取代码。
git remote add origin <remote-repository-url>
复制代码
这里,origin是一个远程堆栈的别名,你可以本身定名,是远程堆栈的URL。
5、根本利用
5.1、初始化堆栈
在一个目录中初始化一个Git堆栈,使其成为Git可管理的堆栈。
git init
复制代码
5.2、查看工作目录和暂存区的当前状态
查看工作目录和暂存区的当前状态。获得有关你的代码库中文件的信息,包罗已修改、已暂存和未跟踪的文件。
git status
复制代码
例如,在本地堆栈中新建一个文件1.txt,然后查看当前状态
5.3、添加文件到暂存区
在举行代码提交之前,需要将文件添加到Git的暂存区,以准备好提交。
//添加指定文件到暂存区
git add <filename>
//添加所有文件到暂存区
git add .
复制代码
你也可以使用通配符来添加多个文件。
此时执行git status
再次查看状态
5.4、提交更改
提交暂存区中的更改到版本库中
git commit -m "Commit message"
复制代码
合理的提交信息可以或许清楚地说明你的更改内容。
此时执行git status
再次查看状态
5.5、查看提交汗青
查看项目的提交汗青,相识每次提交的详细信息。
//查看提交历史
git log
//以精简形式显示提交历史
git log --oneline
复制代码
5.6、比力工作目录和暂存区之间的差别
比力工作目录和暂存区之间的差别,或者比力两个提交之间的差别。
//比较工作目录和暂存区之间的差异
git diff
//比较暂存区和最新提交之间的差异
git diff --staged
//或
git diff --cached
//比较两个提交之间的差异
git diff <commit-hash-1> <commit-hash-2>
//比较指定文件的差异
git diff <filename>
复制代码
5.7、版本回退
新增两次提交
此时1.txt中的内容为:
此时想要举行版本回退有三种方式
//回退到上个版本
git reset --hard HEAD^
//回退到上上个版本
git reset --hard HEAD^^
//回退到前10个版本
git reset --hard HEAD~10
//回退到指定版本号的版本
git reset --hard a7f365c128827cdf1f0d796141ce3c644cc78770
复制代码
执行命令回退到上个版本,此时已看不到第三次提交并且1.txt中内容也回退到了对应版本
如果此时我们还想要重新回到版本回退前的版本,则可以使用git reset --hard [版本号] 来实现
//查询版本号
git reflog
//回退版本
git reset --hard [版本号]
复制代码
此时需要先获取到版本回退前的版本号,然后再执行版本回退
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、分支保护和权限管理
在团队协作中,可以使用分支保护和权限管理来确保代码的质量和安全性。
分支保护:限制谁可以直接将代码推送到主分支,只能通过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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4