论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
开源技术
›
开源技术
›
Git 超详细使用教程
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、配置用户信息(必要)
配置用户信息是非常重要的,由于每次你提交代码时都会有相应的提交者信息。
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企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
王海鱼
金牌会员
这个人很懒什么都没写!
楼主热帖
在Winform开发中,使用Async-Awati异步 ...
Vue 和 Django 前后端分离实践 (注册 ...
如何在 Vue 3 中使用<script lang=“t ...
一条SQL的执行原理
C#依赖注入(直白明了)讲解 一看就会系 ...
go中 for循环的坑
教务管理系统——数据库课程设计mysql+ ...
2023大数据面试总结
银河麒麟V10安装达梦数据库DM8 ...
clickhouse的稀疏索引
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表