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 是中国的开发者社区,提供代码托管、开源项目和技术文章。

二、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 指令

2.2.1、仓库操作

图形化教程请看: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.2.2、分支管理

图形化教程请看: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.2.3、Git 与 GitHub 协同使用

开发人员使用 Git 在本地进行版本控制,然后将 Git(代码库) 与 GitHub(代码托管平台) 同步,以便与其他人协作、分享代码和备份代码。因此,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 ?

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖墩会武术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值