Git使用指南

文章目录

  • 一、Git 与 GitHub 是什么?
    • 1.1、Git:版本控制系统(Version Control System,VCS)
    • 1.2、GitHub:代码托管平台
    • 1.3、Git 与 GitHub 的协同作用
  • 二、Git使用指南
    • 2.1、Git下载与安装
    • 2.2、Git仓库操作
    • 2.3、Git分支管理
    • 2.4、Git 与 GitHub 协同使用
  • 三、在Pycharm中使用Git

一、Git 与 GitHub 是什么?

Git 是一个离线工具(在本地计算机上),而 GitHub 是一个在线平台(Web端)。

  • Git

  • (1)是一个分布式版本控制系统,用于跟踪和管理代码库的不同版本。开发人员使用 Git 在代码库的不同版本之间进行版本控制,记录更改历史,分支和合并代码。

  • (2)本地版本控制:可以在本地计算机上创建一个完整的代码库,允许开发人员在没有网络连接的情况下对代码进行版本控制和管理。最后将其与远程存储库同步(如:GitHub)。

  • (3)命令行工具:使用命令行来执行各种版本控制操作。

  • GitHub

  • (1)是一个基于互联网的代码托管平台,用于协作开发和托管 Git 仓库。开发人员可以将他们的 Git 代码库存储在云端,与他人共享、协作和管理代码。

  • (2)远程协作和协同开发:提供了一种集中式协作环境,允许多个开发人员协同工作,共享代码库,并通过 Pull Request(PR)进行代码审查、合并代码。它也提供了问题跟踪、维基文档等协作工具。

  • (3)Web界面:提供了一个基于Web的界面,让开发人员能够轻松地浏览代码、提交问题、管理项目和与其他开发人员互动。

1.1、Git:版本控制系统(Version Control System,VCS)

版本控制系统:用于跟踪和管理文件和代码的更改,以确保团队协作、备份和版本管理。
以下是一些常见的版本控制系统:

  • Git: Git 是一种分布式版本控制系统,由Linus Torvalds创建。它是最流行的版本控制系统之一,用于跟踪和管理代码的更改。Git 允许开发者在本地计算机上维护代码的不同版本,然后将更改推送到远程 Git 存储库中。GitHub 和 GitLab 等平台提供了 Git 存储库的托管服务。
  • Subversion (SVN): SVN 是一种集中式版本控制系统,也被称为Subversion。它以稳定性和对二进制文件的处理能力而闻名,适用于大型项目和企业级应用程序。SVN 使用中央服务器来存储代码库,开发者从服务器检出代码,然后将更改提交回服务器。
    • TortoiseSVN 是 Subversion 的一个专为 Windows 桌面环境设计的图形用户界面(GUI)客户端工具,它旨在以用户友好的方式实现与 Subversion 服务器和存储库的交互,从而使用户能够轻松执行 SVN 操作,无需使用命令行
  • Mercurial: Mercurial 是另一种分布式版本控制系统,类似于Git。它使用简单的命令和工作流程,适用于小型到中型项目。
  • Perforce (Helix Core): Perforce 是一种集中式版本控制系统,特别适用于大型游戏开发和多媒体项目。它具有强大的二进制文件支持和高性能。
  • IBM Rational ClearCase: ClearCase 是一个集中式和分布式混合的版本控制系统,适用于大型企业应用程序和硬件开发。
  • Apache Subversion (Bloodhound): Apache Subversion 是一个开源版本控制系统,是SVN的开源版本。它提供了与SVN类似的功能。
  • Microsoft Team Foundation Server (TFS): TFS 是由Microsoft提供的版本控制和应用程序生命周期管理工具,用于Windows平台上的.NET开发。
  • AWS CodeCommit: AWS CodeCommit 是亚马逊 Web 服务 (AWS) 的代码托管服务,支持 Git 版本控制。
  • Google Cloud Source Repositories: 这是 Google Cloud 的代码托管服务,允许开发者在 Google Cloud 上托管他们的 Git 存储库。
  • SourceForge: SourceForge 是一个老牌的开源项目托管平台,提供版本控制、问题跟踪、论坛和邮件列表等工具。

1.2、GitHub:代码托管平台

代码托管平台:用于存储、管理和协作开发源代码的在线服务。这些平台提供了版本控制、团队协作、代码审查、问题跟踪、自动构建和部署等工具,使开发团队能够更容易地协作和管理项目。
国外代码托管平台

  • GitHub: GitHub 是全球最大的代码托管平台,提供强大的 Git 存储库托管、协作工具、CI/CD支持和问题跟踪。它广泛用于开源和私有项目。
  • GitLab: GitLab 提供了类似 GitHub 的功能,包括 Git 存储库托管、CI/CD、问题跟踪等。有社区版和企业版。
  • Bitbucket: Bitbucket 是由 Atlassian 提供的代码托管平台,支持 Git 和 Mercurial 版本控制系统。它还提供了协作和CI/CD工具。
  • SourceForge: SourceForge 是老牌的开源项目托管平台,提供代码托管、问题跟踪、邮件列表、论坛等工具。
  • Azure DevOps: Azure DevOps(以前称为Visual Studio Team Services或VSTS)是由微软提供的综合开发工具,包括代码托管、CI/CD、问题跟踪、故事板等。
  • Launchpad: Launchpad 是由Canonical提供的代码托管平台,主要用于 Ubuntu 项目。它提供了代码托管、问题跟踪、蓝图等功能。
  • Google Cloud Source Repositories: 这是 Google Cloud 的代码托管服务,允许开发者在 Google Cloud 上托管他们的 Git 存储库。
  • AWS CodeCommit: AWS CodeCommit 是亚马逊 Web 服务 (AWS) 的托管服务,用于存储 Git 存储库。
  • Fossil: Fossil 是一种分布式版本控制系统,提供存储库托管和问题跟踪。
  • Buddy: Buddy 提供 CI/CD 和自动化部署,支持多个代码托管平台,如 GitHub、GitLab 和 Bitbucket。

国内代码托管平台

  • Gitee(码云): Gitee 是中国的代码托管平台,提供 Git 存储库托管、协作工具、CI/CD和中文支持。
  • Coding.net: Coding.net 是中国的开发者社区和代码托管平台,提供代码托管、CI/CD、问题跟踪等功能。
  • Tencent Dev Cloud (腾讯云开发者平台): 腾讯云开发者平台提供了代码托管、CI/CD、云资源等功能,与腾讯云云计算服务集成。
  • OSChina (开源中国): 开源中国是一个综合开源社区,提供代码托管、开源项目、博客和论坛。
  • 码市(MaShi): 码市是中国的开发者平台,提供代码托管、自由职业者服务和项目管理。
  • CSDN Code (CSDN码云): CSDN码云是CSDN的代码托管平台,提供代码托管、CI/CD等功能。
  • Aliyun Code (阿里云Code): 阿里云Code是阿里云的代码托管平台,提供代码托管和CI/CD。
  • 开源中国 Gitee: 开源中国也提供 Gitee 托管服务,支持 Git 存储库、问题跟踪和CI/CD。
  • ChinaGit: ChinaGit 是中国的 Git 存储库托管平台,提供代码托管和协作工具。
  • DoCoding: DoCoding 是中国的开发者社区,提供代码托管、开源项目和技术文章。

1.3、Git 与 GitHub 的协同作用

开发人员使用 Git 在本地进行版本控制,然后将 Git(代码库) 与 GitHub(代码托管平台) 同步,以便与其他人协作、分享代码和备份代码。因此,Git 和 GitHub 具有不同的功能和用途,但通常一起使用。

二、Git使用指南

推荐专栏 对Git进行了详细介绍,故没有重新整理。在图形化教程学习之后,主要整合了一些资料以及完善的命令行语句

2.1、Git下载与安装

Git 官方下载地址:https://git-scm.com/
Git 安装教程请看:https://blog.csdn.net/qq_52007481/article/details/127145995

  • Git 是一个免费开源的分布式版本控制系统,旨在快速高效地处理从小到大的项目。
  • Git 易于学习,占用空间小,性能快如闪电。它凭借廉价的本地分支、方便的暂存区域和 多个工作流程等功能,超越了 Subversion、CVS、Perforce 和 ClearCase 等 SCM 工具。

在这里插入图片描述

  • Git 仓库未初始化之前,当前处于一个普通的工作目录状态,没有与 Git 相关的版本控制。以下是一些特征:
    (1)没有.git目录: 在工作目录中没有一个名为.git的隐藏目录。.git目录是 Git 仓库的核心,包含了所有的版本控制信息和配置。
    (2)没有版本控制历史: 工作目录中的所有文件都是普通文件,没有先前的提交记录、分支或标签。
    (3)没有配置:需要在初始化 Git 仓库之后设置 Git 用户名、电子邮件或其他设置。
    (4)没有暂存区:需要使用git add将文件添加到暂存区,然后才能进行提交。
    (5)没有提交历史: 没有提交过程,因此没有过去的提交记录。

  • 当运行git init命令初始化一个 Git 仓库,将在工作目录中创建.git目录,此时的项目将开始受到 Git 的版本控制,并可以使用 Git 的各种命令来管理和跟踪您的代码变化。Git 初始化的详细过程选定需要Git仓库管理的文件夹,鼠标右击选择" Open Git Bash here ",在跳转的界面中输入命令git init。

2.2、Git仓库操作

图形化教程请看:https://blog.csdn.net/qq_52007481/article/details/127159401

"""
(1)初始化和配置
			git init: 			初始化一个本地Git仓库(将当前目录转化为一个Git仓库。)
(2)查看仓库状态
			git status: 		查看当前Git仓库中文件的状态,包括已修改、已暂存、未跟踪等信息。
(3)将修改后的文件添加到暂存区
			git add <file>: 	将修改后的(指定文件)添加到暂存区。
			git add .: 			将修改后的(所有文件)添加到暂存区(. 表示匹配所有文件)
(4)提交暂存区中的文件修改记录
			git commit -m 'commit message': 			提交暂存区中的(所有文件)修改记录,并附上提交信息。
			git commit -m 'commit message' <file>: 		提交暂存区中的(指定文件)修改记录,并附上提交信息。
(5)从Git仓库中移除指定文件
			git rm <file>: 				同时将其从暂存区和工作目录中删除(即移出版本控制)
			git rm --cached <file>: 	停止追踪指定文件,但保留文件在工作目录中(即保留版本控制)
			
			git reset <file>: 			从暂存区中取消对指定文件的暂存,但保留文件在工作目录中的更改。
			git clean -f: 				删除工作目录中未被跟踪的文件。
(6)查看提交历史日志
			git log: 					查看 Git 仓库的提交历史日志。
			git reflog: 				查看基础的 Git 仓库日志信息,包括 HEAD 移动的历史记录。
			git show <commit>: 			查看特定提交<commit>的详细信息和更改。
(7)比较差异
			git diff: 					比较工作目录中的文件和暂存区之间的差异。
"""

2.3、Git分支管理

图形化教程请看:https://blog.csdn.net/qq_52007481/article/details/127159387

"""
(1)列出所有分支
			git branch: 				列出当前 Git 仓库中的所有分支。
			git branch -v: 				列出所有分支,并显示它们的最后提交信息。
			git branch --merged: 		列出已经合并到当前分支的分支。
			git branch --no-merged: 	列出未合并到当前分支的分支。
(2)创新新的分支
			git branch <name>: 			<name>是新分支的名称
(3)切换到指定分支
			git checkout <name>: 		<name>是要切换到的分支的名称
			git switch <name>: 			与git checkout类似
(4)创建一个新分支并立即切换到它
			git checkout -b <name>: 	<name> 是新分支的名称
			git switch -c <name>: 		与git checkout -b类似
(5)将指定分支合并到当前分支
			git merge <name>: 			<name>是待合并分支的名称
(6)删除指定分支<name>
			git branch -d <name>: 		安全删除分支,只有当删除不会导致数据丢失时才会成功。如果分支中存在未合并的更改,该命令将阻止删除。
			git branch -D <name>: 		强制删除分支,即使存在未合并的更改。这将强制删除分支,潜在地导致数据丢失,因此谨慎使用。
"""

2.4、Git 与 GitHub 协同使用

图形化教程请看:https://blog.csdn.net/qq_52007481/article/details/127181194

"""
Git 远程操作:
(1)	git clone <远程仓库URL>: 				从远程仓库克隆一个副本到本地。
(3)远程仓库查看	
		git remote: 							查看远程仓库的列表。
		git remote -v: 							查看远程仓库的详细信息,包括URL。
		git remote show <远程仓库名称>: 			查看指定的远程仓库的详细信息。
(3)远程仓库操作	
		git remote add <远程仓库名称> <远程仓库URL>: 			添加一个新的远程仓库到配置中。
		git remote rename <old_别名> <new_别名>:				重命名一个已配置的远程仓库。
		git remote set-url <远程仓库名称> <新的远程仓库URL>: 	修改已配置的远程仓库的URL。
		git remote remove <远程仓库名称>						移除一个已配置的远程仓库。
		git remote rm <远程仓库名称>: 						移除一个已配置的远程仓库。
	
(4)	git push <远程仓库名称> <分支名称>: 				将本地分支的变更推送到远程仓库。
		git push -u <远程仓库名称> <本地分支>:			将本地分支的代码推送到远程仓库,并将本地分支与远程分支关联起来。
		git push <远程仓库名称> --delete <分支名称>		删除远程仓库上的一个分支。

(5)	git fetch <远程仓库名称>: 				从远程仓库获取最新的提交,但不合并到当前分支。
(6)	git pull <远程仓库名称> <分支名称>: 		从远程仓库获取最新的变更,并将其合并到当前分支。
################################################################
生成 SSH 密钥:
(7)	ssh-keygen -t rsa -C <邮箱>: 			用于生成 SSH 的公钥和私钥对,其中 -t rsa 指定使用 RSA 密钥, -C 后跟电子邮件地址用于标识密钥。
"""

三、在Pycharm中使用Git

Pycharm中使用Git
都2022年了,你还不会在PyCharm中使用Git ?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/167328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《深入浅出OCR》实战:基于PGNet的端到端识别

✨专栏介绍: 经过几个月的精心筹备,本作者推出全新系列《深入浅出OCR》专栏,对标最全OCR教程,具体章节如导图所示,将分别从OCR技术发展、方向、概念、算法、论文、数据集等各种角度展开详细介绍。 💙个人主页: GoAI |💚 公众号: GoAI的学习小屋 | 💛交流群: 7049325…

VS2022升级之后,原有项目出现异常

最近对VS2022做了升级&#xff0c;发现之前开发的WebApi&#xff08;使用Net5&#xff09;调试运行报错&#xff1a; 根据提示的错误信息也在网上查找了一些资料&#xff0c;均无法正常解决&#xff0c;偶然发现问题是因为VS2022升级之后&#xff0c;不再支持Net5&#xff0c;…

如何快速将txt类型的日志文件转换为excel表格并进行数据分析报表统计图(如:饼图、折线图、柱状图)?

打开excel创建空白文档 选择一个txt文件 一动下面箭头↑竖线&#xff0c;可以拖拽左右调整要判断转换为一列的数据宽度 根据情况设置不同列的数据格式&#xff08;每一列可以点击&#xff09;&#xff0c;设置好后点击【完成】 设置单元格数据格式 手动插入第一行为每列数据的…

SIMULIA 2022 Abaqus新功能之非线性、工作流、子程序、Explicit等

Abaqus 非线性力学的功能增强 Valanis-Landel 超弹性材料 通过指定单轴试验数据和可选的体积试验数据&#xff08;v2022新增选项&#xff09;来定义Valanis-Landel 超弹性模型&#xff0c;该模型能精确地复现给定的数据&#xff0c;类似Marlow模型&#xff0c;但与Marlow模型的…

Nginx部署前端项目

Nginx部署前端项目 1.在nginx官网http://nginx.org/en/download.html &#xff0c;下载稳定版本&#xff1a; 2.解压后&#xff0c;点击根目录中的nginx.exe即可启动Nginx&#xff0c;或是在nginx安装目录中启动cmd并输入以下命令启动&#xff1a; nginx.exe 或 start nginx3…

计算机服务器中了勒索病毒怎么解决,勒索病毒解密步骤数据恢复

网络技术的不断发展&#xff0c;为企业的生产生活提供了极大的便利性&#xff0c;随着企业数字化办公系统的实施&#xff0c;数据安全引起了企业强烈重视。近期&#xff0c;经过云天数据恢复中心对勒索病毒的处理发现&#xff0c;当下市面上的勒索病毒加密程序变得更为复杂&…

光谱图像常见评价指标

光谱图像常见评价指标 SAM&#xff08;Spectral Angle Mapper&#xff09;RMSE——Root Mean Square ErrorPSNRSSIMMSSIMEGARS SAM&#xff08;Spectral Angle Mapper&#xff09; ​ SAM算法是由Kruse等[146]在1993年提出&#xff0c;把图像中的每个像元的光谱视为一个高维向…

Docker之微服务实战(一个小的java的jar包发布运行测试test)

Docker微服务实战 1、通过IDEA新建一个普通微服务模块 &#xff08;在工具idea里面新建项目…&#xff0c;&#xff09; 通过dockerfile发布微服务部署到docker容器 2、IDEA工具里面搞定微服务jar包 docker_boot-0.0.1-SNAPSHOT.jar 3、编写Dockerfile # 基础镜像使用java FR…

kafka本地安装报错

Error: VM option ‘UseG1GC’ is experimental and must be enabled via -XX:UnlockExperimentalVMOptions. #打开 bin/kafka-run-class.sh KAFKA_JVM_PERFORMANCE_OPTS“-server -XX:UseG1GC -XX:MaxGCPauseMillis20 -XX:InitiatingHeapOccupancyPercent35 -XX:ExplicitGCInv…

html-网站菜单-点击菜单展开相应的导航栏,加减号可切换

一、效果图 1.点击显示菜单栏&#xff0c;点击x号关闭&#xff1b; 2.点击一级菜单&#xff0c;展开显示二级&#xff0c;并且加号变为减号&#xff1b; 3.点击其他一级导航&#xff0c;自动收起展开的导航。 二、代码实现 <!DOCTYPE html> <html><head>&…

QQ自动批量加好友(手机端)

1.需求 按照格式输入批量qq号,输入加好友间隔时间,脚本自动打开qq应用开始自动加好友,全程自动化操作。 输入qq号格式: 运行示意图: 2.代码 function carmiLogin () {var carmi = getCarMi()try {const data = {"key": carmi}http.__okhttp__.setTimeout(3000…

“富二代”极氪,辉煌过后总要独自长大

文丨刘俊宏 极氪&#xff0c;可能是跑得最快的造车新势力。 首先是推出新产品的速度。11月7日&#xff0c;极氪新的轿车极氪007在广州车展开启预售。从首次发布的极氪001算起&#xff0c;极氪用时不到3年便已拥有了5款产品。 这五款新品的销量&#xff0c;在新势力当中也说得…

纽扣电池ANSI/UL4200A-2023安全合规标准是什么?

关于联邦 强制性安全标准 ANSI/UL 4200A-2023 近来&#xff0c;与纽扣电池相关的死亡和严重伤害越来越多。 美国消费品安全委员会(以下简称CPSC)的工作人员正在参与消费品电池相关的法规制定&#xff0c;包括采用UL 4200A-2023锂技术的纽扣或硬币电池的产品安全标准。 202…

2023年中国温热电灸综合治疗仪发展趋势分析:产品渗透率将进一步增长[图]

温热电灸综合治疗仪是传统中医针灸结合现代低频脉冲电刺激和电加热的一款现代化电针灸治疗仪器。其基于传统的艾灸原理及现代神经和肌肉电刺激原理&#xff0c;通过电子加热和磁化作用&#xff0c;充分利用艾草及其它特效药材精炼的高效成分&#xff0c;同时对人体多个穴位进行…

Chat GPT 用于论文润色,常用指令这里都全了

ChatGPT在多个方面对科研人员提供帮助&#xff0c;其中之一就是SCI论文润色&#xff0c;通过输入论文的摘要、引言或者段落&#xff0c;科研人员可获得ChatGPT生成的回复&#xff0c;包括修改建议、语法纠正、表达方式优化等。 指令润色 比如&#xff1a; 请帮我润色论文&am…

山西电力市场日前价格预测【2023-11-21】

1.日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-11-21&#xff09;山西电力市场全天平均日前电价为278.73元/MWh。其中&#xff0c;最高日前电价为367.26元/MWh&#xff0c;预计出现在18:00。最低日前电价为0.00元/MWh&#xff0c;预计…

图神经网络:消息传递算法

一、说明 图网络-GNN&#xff08;Graph Neural Networks&#xff09;是近几年研究的主题之一&#xff0c;虽不及深度神经网络那么火爆&#xff0c;但在一些领域&#xff0c;如分子化学方面是不得不依赖的理论。本文就一些典型意义的图神经网络消息传递展开阐述。 二、图网络简述…

【LeetCode:689. 三个无重叠子数组的最大和 | 序列dp+前缀和】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Django 入门学习总结2

通过学习&#xff0c;我们可以实现一个简单的投票系统。这个投票系统有两部分组成。 公共部分&#xff0c;公众可以查看和进行投票。管理员可以进行增加、删除、修改投票信息。 这里投票系统Python语言版本为3.10.13&#xff0c;Django Web框架版本为4.2.7。 投票系统的实现…

浪涌防护器件要选对,布局布线更重要!|深圳比创达电子EMC(下)

浪涌测试&#xff0c;作为最常见的EMC抗干扰测试项目之一&#xff0c;基本上是家用消费电子必测的项目&#xff1b;其测试目的是为了验证产品在承受外部的浪涌冲击时能否正常工作。 一、比创达整改案例 1) 背景&#xff1a; 某智能插座产品在浪涌测试&#xff0c;需要过2kV差…