学习GitHub和Git
可以使用 GitHub 和 Git 来开展工作协作。[官方文档直达]([GitHub 入门文档 - GitHub 文档](关于 Git - GitHub 文档))
关于 GitHub
GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。
通过将代码存储在 GitHub 上的“存储库”中,你将可以:
- “展示或共享”**** 你的工作。
- 持续“跟踪和管理”**** 对代码的更改。
- 让其他人“审查”**** 你的代码,并提出改进建议。
- 在共享的项目中开展“协作”****,无需担心这些更改会在准备好集成更改之前影响协作者的工作。
协作式工作是 GitHub 最基本的功能之一,该功能由开源软件 Git 实现,而 GitHub 是以该软件为基础进行构建的。
关于 Git
Git 是一种可以智能追踪文件中的更改的版本控制系统。 在你和一组人员同时对同一文件进行更改时,Git 的价值就体现出来了。
通常,要在基于 Git 的工作流中执行此操作,需要:
- 为你(和协作者)正在处理的文件的主副本“创建分支”****。
- 在自己的个人分支上独立安全地对文件“进行编辑”****。
- 让 Git 智能地将特定更改“合并”**** 回文件的主副本,从而确保更改不会影响其他人的更新。
- 让 Git “跟踪”**** 你和其他人的更改,这样就可以一直使用项目的最新版本。
要了解有关 Git 的详细信息,请参阅“关于 Git”。
Git 和 GitHub 如何协同工作?
将文件上传到 GitHub 时,会将其存储在“Git 存储库”中。 这意味着,对 GitHub 中的文件进行更改(或“提交”)时,Git 会自动开始跟踪和管理更改。
可在浏览器中直接在 GitHub 上完成大量与 Git 相关的操作,例如创建 Git 存储库、创建分支以及上传和编辑文件。
但是,大多数人在本地(在自己的计算机上)处理文件,然后不断地将这些本地更改(以及所有相关的 Git 数据)与 GitHub 上的中央“远程”存储库进行同步。 有许多工具可执行此操作,比如 GitHub Desktop。
开始与其他人的协作后,所有人都需要同时在同一存储库上工作,你将不断:
- 从 GitHub 上的远程存储库“拉取”**** 协作者所做的所有最新更改。
- 将你自己的更改“推送”**** 回 GitHub 上的同一远程存储库。
Git 负责确定如何智能地合并此更改流,GitHub 可通过“拉取请求”等功能帮助你管理更改流。
Git 和 GitHub 如何协同工作?
将文件上传到 GitHub 时,会将其存储在“Git 存储库”中。 这意味着,对 GitHub 中的文件进行更改(或“提交”)时,Git 会自动开始跟踪和管理更改。
可在浏览器中直接在 GitHub 上完成大量与 Git 相关的操作,例如创建 Git 存储库、创建分支以及上传和编辑文件。
但是,大多数人在本地(在自己的计算机上)处理文件,然后不断地将这些本地更改(以及所有相关的 Git 数据)与 GitHub 上的中央“远程”存储库进行同步。 有许多工具可执行此操作,比如 GitHub Desktop。
开始与其他人的协作后,所有人都需要同时在同一存储库上工作,你将不断:
- 从 GitHub 上的远程存储库“拉取”**** 协作者所做的所有最新更改。
- 将你自己的更改“推送”**** 回 GitHub 上的同一远程存储库。
Git 负责确定如何智能地合并此更改流,GitHub 可通过“拉取请求”等功能帮助你管理更改流。
从哪里开始?
如果你刚开始使用 GitHub,并且不熟悉 Git,我们建议阅读“开始你的旅程”类别中的文章。 这些文章重点介绍可以直接在浏览器中在 GitHub 上完成的任务,并帮助你:
-
在 GitHub 上“创建帐户”****。
-
了解“GitHub 流程”****,以及协作式工作的主要原理(分支、提交、拉取请求、合并)。
-
个性化个人资料以分享你的兴趣和技能。
-
浏览 GitHub 以找到自己的项目的灵感,并与其他人联系。
-
了解如何下载感兴趣的代码供自己使用。
-
了解如何将正在处理的内容上传到 GitHub 存储库。
个人帐户的 GitHub Free
通过个人帐户的 GitHub Free,可以在具有完整功能集的无限公共存储库和具有有限功能集的无限私有存储库上与无限的协作者合作。
使用 GitHub Free,你的个人帐户包括:
- GitHub Community Support
GitHub 社区支持 - Dependabot alerts
- 公共存储库的部署保护规则
- 双因素身份验证实施
- 500 MB GitHub Packages 存储空间
- 每月 120 GitHub Codespaces 个核心小时数
- 每月 15 GB GitHub Codespaces 存储空间
- GitHub Actions 功能:
- 2,000 分钟/月
- 公共存储库的部署保护规则
- 公共存储库中的 GitHub Pages
GitHub 功能支持的核心语言
GitHub 功能的核心语言包括 C、C++、C#、Go、Java、JavaScript、PHP、Python、Ruby、 Rust、 Scala 和 TypeScript。 对于支持包管理器的功能,当前支持的包管理器及其相关语言包含在表中。
某些功能支持其他语言或包管理器。 如果想知道某个功能是否支持另一种语言,或请求支持某种语言,请访问 GitHub 社区讨论。
语言 | GitHub Copilot | 代码导航 | Code scanning | 依赖项关系图、Dependabot alerts | Dependabot version updates, Dependabot security updates | GitHub Actions | GitHub Packages GitHub 软件包 |
---|---|---|---|---|---|---|---|
C | |||||||
C++ | |||||||
C# | dotnet CLI |
dotnet CLI |
dotnet CLI |
||||
Go | Go 模块 | Go 模块 | |||||
Java | Maven、Gradle | Maven、Gradle | Maven、Gradle | ||||
JavaScript | npm、Yarn | npm | npm | ||||
PHP | Composer | Composer | |||||
Python | precise | pip | pip | ||||
Ruby | RubyGems | RubyGems | RubyGems | ||||
Rust | |||||||
Scala | Maven | Maven, Gradle | |||||
Swift | Swift 包管理器 | ||||||
TypeScript | npm、Yarn | npm | npm |
注意:
-
GitHub Copilot 的语言支持因该语言的训练数据量和多样性而异。
-
对依赖项关系图和 Dependabot alerts 的 Gradle 支持仅限于上传使用 依赖项提交 API 获取的数据。
-
第三方操作的 code scanning 支持 PHP 和 Scala。
[快捷键指南大全](键盘快捷方式 - GitHub 文档)
文本样式
可以在评论字段和 .md
文件中以粗体、斜体、删除线、下标或上标文本表示强调。
Style | 语法 | 键盘快捷键 | 示例 | 输出 |
---|---|---|---|---|
加粗 | ** ** 或 __ __ |
Command+B (Mac) 或 Ctrl+B (Windows/Linux) | **This is bold text** |
这是粗体文本 |
斜体 | * * 或 _ _ |
Command+I (Mac) 或 Ctrl+I (Windows/Linux) | _This text is italicized_ |
这是斜体文本 |
删除线 | ~~ ~~ |
无 | ~~This was mistaken text~~ |
|
粗体和嵌入的斜体 | ** ** 和 _ _ |
无 | **This text is _extremely_ important** |
此文本_非常_重要 |
全部粗体和斜体 | *** *** |
无 | ***All this text is important*** |
所有这些文本都很重要 |
下标 | <sub> </sub> |
无 | This is a <sub>subscript</sub> text |
这是下标文本 |
上标 | <sup> </sup> |
无 | This is a <sup>superscript</sup> text |
这是上标文本 |
上下文 | 相对链接 |
---|---|
在同一分支的 .md 文件中 |
/assets/images/electrocat.png |
在另一个分支的 .md 文件中 |
/../main/assets/images/electrocat.png |
在仓库的议题、拉取请求和评论中 | ../blob/main/assets/images/electrocat.png?raw=true |
在另一个存储库的 .md 文件中 |
/../../../../github/docs/blob/main/assets/images/electrocat.png |
在另一个仓库的议题、拉取请求和评论中 | ../../../github/docs/blob/main/assets/images/electrocat.png?raw=true |
注意:上表中的最后两个相对链接只有在查看者至少对包含这些图像的专用存储库具有读取访问权限时,才可用于专用存储库中的图像。
-
若要创建任务列表,请在列表项前加连字符和空格,后接
[ ]
。 要将任务标记为完成,请使用[x]
。- [x] #739 - [ ] https://github.com/octo-org/octo-repo/issues/740 - [ ] Add delight to the experience when all tasks are complete :tada:
如果任务列表项说明以括号开头,则需要使用 \ 进行转义:
- [ ] \(Optional) Open a followup issue
脚注
您可以使用此括号语法为您的内容添加脚注:
解释Here is a simple footnote[^1].
A footnote can also have multiple lines[^2].
[^1]: My reference.
[^2]: To add line breaks within a footnote, prefix new lines with 2 spaces.
This is a second line.
脚注将呈现如下:
注意:Markdown 中脚注的位置不会影响该脚注的呈现位置。 您可以在引用脚注后立即写脚注,脚注仍将呈现在 Markdown 的底部。
Wiki 不支持脚注。
警报
警报是基于块引用语法的 Markdown 扩展,可用于强调关键信息。 在 GitHub 上,它们以独特的颜色和图标显示,以指示内容的显著性。
只有在对用户成功至关重要时才使用警报,并将每篇文章的警报限制在一到两个,以防止读者负担过重。 此外,应避免连续发出警报。 警报无法嵌套在其他元素中。
要添加警报,请使用指定警报类型的特殊块引用行,然后在标准块引用中添加警报信息。 可以使用以下五种类型的警报:
解释> [!NOTE]
> Useful information that users should know, even when skimming content.
> [!TIP]
> Helpful advice for doing things better or more easily.
> [!IMPORTANT]
> Key information users need to know to achieve their goal.
> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.
> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.
下面是呈现的警报:
忽略 Markdown 格式
通过在 Markdown 字符前面输入 \,可指示 GitHub 忽略 Markdown 格式(或对其进行转义)。
Let's rename \*our-new-project\* to \*our-old-project\*.
有关反斜杠的详细信息,请参阅 Daring Fireball 的“Markdown 语法”。
注意:在问题或拉取请求的标题中不会忽略 Markdown 格式。
创建折叠部分
可以通过创建读者可以选择展开的折叠部分来暂时隐藏 Markdown 的分区。 例如,当想在问题评论中包含可能不是每个读者都相关或感兴趣的技术细节时,可以将这些细节放在折叠部分中。
在 <details>
块中,使用 <summary>
标记让读者知道里面的内容。 标签显示在的右侧。
解释<details>
<summary>Tips for collapsed sections</summary>
### You can add a header
You can add text within a collapsed section.
You can add an image or a code block, too.
```ruby
puts "Hello World"
```
</details>
默认情况下,<summary>
标签中的 Markdown 将被折叠:
读者单击 后,将展开详细信息:
创建 Mermaid 关系图
Mermaid 是一款受 Markdown 启发的工具,可将文本呈现为关系图。 例如,Mermaid 可以呈现流程图、序列图、饼图等。 有关详细信息,请参阅 Mermaid 文档。
若要创建 Mermaid 关系图,请使用 mermaid
语言标识符在围栏代码块中添加 Mermaid 语法。 有关创建代码块的详细信息,请参阅“创建和突显代码块”。
例如,可以通过指定值和箭头来创建流程图。
解释Here is a simple flow chart:
```mermaid
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
```
注意:如果在 GitHub 上使用 Mermaid 语法时运行第三方 Mermaid 插件,你可能会发现出错。
graph TD; A-->B; A-->C; B-->D; C-->D;编写内联表达式
有两个选项可用于将内嵌在文本中的数学表达式分隔出来。 可以使用美元符号 ($
) 将表达式括起来,或者以在表达式开头使用 $``,并在其末尾使用 ``$
。 当正在编写的表达式包含与 markdown 语法重叠的字符时,后一种语法很有用。 有关详细信息,请参阅“基本撰写和格式语法”。
This sentence uses `$` delimiters to show math inline: $\sqrt{3x-1}+(1+x)^2$
This sentence uses $\` and \`$ delimiters to show math inline: $`\sqrt{3x-1}+(1+x)^2`$
将表达式编写为块
要以块的形式添加数学表达式,请启动一个新行,并使用两个美元符号 $$
分隔表达式。
**The Cauchy-Schwarz Inequality**
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
或者,可以使用 ````math代码块语法将数学表达式显示为块。 使用此语法时,无需使用
$$` 分隔符。 以下内容的呈现方式与上述内容相同:
解释**The Cauchy-Schwarz Inequality**
```math
\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)
```
附加文件
可通过将各种文件类型附加到议题和拉取请求来传达信息。
Note: For public repositories, uploaded files can be accessed without authentication. In the case of private and internal repositories, only people with access to the repository can view the uploaded files.
To attach a file to an issue or pull request conversation, drag and drop it into the comment box. Alternatively, you can click in the formatting bar above the comment box to browse, select, and add a file from your computer.
Git学习
基本 Git 命令
为使用 Git,开发人员使用特定命令来复制、创建、更改和合并代码。 这些命令可以直接从命令行执行,也可以使用 GitHub Desktop等应用程序执行。 以下是使用 Git 的一些常用命令:
git init
初始化一个全新的 Git 存储库并开始跟踪现有目录。 它在现有目录中添加一个隐藏的子文件夹,该子文件夹包含版本控制所需的内部数据结构。git clone
创建远程已存在的项目的本地副本。 克隆包括项目的所有文件、历史记录和分支。git add
暂存更改。 Git 跟踪对开发人员代码库的更改,但有必要暂存更改并拍摄更改的快照,以将其包含在项目的历史记录中。 此命令执行暂存,即该两步过程的第一部分。 暂存的任何更改都将成为下一个快照的一部分,并成为项目历史记录的一部分。 通过单独暂存和提交,开发人员可以完全控制其项目的历史记录,而无需更改其编码和工作方式。git commit
将快照保存到项目历史记录中并完成更改跟踪过程。 简言之,提交就像拍照一样。 任何使用git add
暂存的内容都将成为使用git commit
的快照的一部分。git status
将更改的状态显示为未跟踪、已修改或已暂存。git branch
显示正在本地处理的分支。git merge
将开发线合并在一起。 此命令通常用于合并在两个不同分支上所做的更改。 例如,当开发人员想要将功能分支中的更改合并到主分支以进行部署时,他们会合并。git pull
使用远程对应项的更新来更新本地开发线。 如果队友已向远程上的分支进行了提交,并且他们希望将这些更改反映到其本地环境中,则开发人员将使用此命令。git push
使用本地对分支所做的任何提交来更新远程存储库
示例:参与现有存储库
解释# download a repository on GitHub to our machine
# Replace `owner/repo` with the owner and name of the repository to clone
git clone https://github.com/owner/repo.git
# change into the `repo` directory
cd repo
# create a new branch to store any new changes
git branch my-branch
# switch to that branch (line of development)
git checkout my-branch
# make changes, for example, edit `file1.md` and `file2.md` using the text editor
# stage the changed files
git add file1.md file2.md
# take a snapshot of the staging area (anything that's been added)
git commit -m "my snapshot"
# push changes to github
git push --set-upstream origin my-branch
示例:启动新存储库并将其发布到 GitHub
首先,您需要在 GitHub 上创建一个新存储库。 有关详细信息,请参阅“Hello World”。 不要使用 README、.gitignore 或 License 文件初始化存储库。 这个空存储库将等待您的代码。
解释# create a new directory, and initialize it with git-specific functions
git init my-repo
# change into the `my-repo` directory
cd my-repo
# create the first file in the project
touch README.md
# git isn't aware of the file, stage it
git add README.md
# take a snapshot of the staging area
git commit -m "add README to initial commit"
# provide the path for the repository you created on github
git remote add origin https://github.com/YOUR-USERNAME/YOUR-REPOSITORY-NAME.git
# push changes to github
git push --set-upstream origin main
示例:为 GitHub 的现有分支做出贡献
此示例假定计算机上已有一个名为 repo
的项目,并且自上次在本地进行更改以来,已将新分支推送到 GitHub。
解释# change into the `repo` directory
cd repo
# update all remote tracking branches, and the currently checked out branch
git pull
# change into the existing branch called `feature-a`
git checkout feature-a
# make changes, for example, edit `file1.md` using the text editor
# stage the changed file
git add file1.md
# take a snapshot of the staging area
git commit -m "edit file1"
# push changes to github
git push
1.GitHub获取资源
首先先找到自己需要的项目,然后点击绿色Code
可以看到有三种下载方式
- 使用你的Idea或者pycharm使用HTTPS代码直接爬取
- 使用你电脑上自带的Github来下载
- 使用压缩包下载
再往下则是作者想说的话和项目的一些相关信息
1.2GitHub项目创建
先来到右上角找到这个加号,并点击
点击New repository,即可新建一个项目
- 项目名称
- 项目介绍(建议使用中文,方便国人查找)
- 创建一个README文件(建议勾选)
![image-20240622164043846]https://images.cnblogs.com/cnblogs_com/blogs/729264/galleries/2425820/o_241013143618_image-20240622164043846.png)
点击绿色按钮“Create repository创建项目
创建好后的界面
1.3 互动功能
找到Issues按钮点击
点解绿色“New issue”按钮创建新的话题、议题、问题等意思
-
写标题
-
写内容
随后点击绿色按钮“Submit new issue”即可
1.4 使用git将项目上传上去:
1.4.1 生成ssh key
首先要检查是否已经生成密钥,可以查看自己的电脑,位置在C:\Users\18246 \ .ssh里面,
如果没有,可以通过 ssh-keygen-t rsa -C "自己的邮箱"来生成(直接一路回车就好,因为没有截图,就直接用网图了)
生成之后去上面的位置点开id_rsa.pub(可用记事本打开),得到ssh key公钥
1.4.2 为GitHub配置ssh key
复制之后去GitHub官网,点击右上角头像并找到设置
随后点击左侧的SSH and GPG keys,并点击绿色的New SSH key
随便写一个这个ssh连接的名字(红色箭头),将你上面复制的id_rsa.pub文件中key粘贴到下面框中(蓝色箭头)点击Add SSH key就可以了。上图就是添加成功的图。
1.4.3 建立本地仓库
git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库
git remote add origin [email protected]:wangjiax9/practice.git //关联远程仓库
git push -u origin master(这里的master要看,有时候这里不同你要换) //把本地库的所有内容推送到远程库上
然后先变成git可以管理的仓库
然后你会发现你的文件夹中多了一个.git文件
注意:这个目录是Git用来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
随后将文件添加到仓库:git add (文件名)/git add .(我这里是之后截的图)
随后把文件提交到仓库,双引号内是提交注释。使用命令git commit -m "提交信息"
这样本地仓库就建立好了。
1.4.4 关联GitHub仓库
到自己的GitHub项目下复制仓库连接
随后执行命令:git remote add origin [email protected]:1zero0/PlantVSZombies.git
可以使用git remote -v查看自己的连接(我这里使用的是http的)
1.4.5 上传本地项目
执行命令:git push -u origin main(这里main可能不同)
随后就可以去自己的项目下面看了,已经上传成功了。
标签:存储,Git,更改,不定期,add,GitHub,git,Github From: https://www.cnblogs.com/czyhyym/p/18463139