本地repo与远程库部署 | 5分钟速成版

最近学到了git三剑客与github上的pull request,适用于多人多次修改的项目。其实询问AI,就会发现TA讲解得很详细了,而我这里主要做个总结与记录。以下为Linux使用场景。

目录

[Git / GitHub 协作主要流程](#Git / GitHub 协作主要流程)

Git中主要命令

[1. 获取仓库(git clone)](#1. 获取仓库(git clone))

[2. 查看仓库状态](#2. 查看仓库状态)

[3. 添加文件到暂存区](#3. 添加文件到暂存区)

[4. 提交到本地仓库](#4. 提交到本地仓库)

[5. 推送到远程仓库](#5. 推送到远程仓库)

[6. 拉取远程最新代码](#6. 拉取远程最新代码)

其他相关命令

Github中clone前的步骤

注意事项

1、首选SSH访问协议进行clone。

2、第一次使用Git时,需要指明姓名与邮箱。


Git / GitHub 协作主要流程

即获取项目(Clone/Fork) → 本地开发(Branch) → 提交(Commit) → 推送(Push) → 合并(Pull Request)

  1. 获取项目代码
    • 如果是自己的仓库或拥有写权限的仓库,直接 git clone 到本地。
    • 如果是他人的 GitHub 仓库且没有写权限,先 Fork 到自己的 GitHub 账号,再 git clone 自己 Fork 后的仓库到本地。
  2. 本地开发
    • 新建一个开发分支(git checkout -b <branch-name>)。【可灵活选择执行】
    • 修改代码、测试功能。
  3. 提交修改
    • 使用 git add 将修改加入暂存区。
    • 使用 git commit 提交到本地仓库,并编写清晰的提交信息。
  4. 推送到远程仓库
    • 使用 git push 将本地提交推送到远程仓库。
    • 如果是 Fork 的仓库,则推送到自己 GitHub 账号下的仓库。
  5. 合并修改(GitHub 协作)
    • 如果修改的是自己的项目,可直接合并到主分支(通常通过 Pull Request)。
    • 如果修改的是他人的项目,则向原项目发起 Pull Request(PR),等待项目维护者审核并合并。

Git中主要命令

1. 获取仓库(git clone)

bash 复制代码
git clone /path/to/repository<即仓库地址>

作用: 将远程仓库克隆到本地。

例:仓库地址为.git结尾的一串。

找到项目中的download/clone处,例如:
阿里云 Github

2. 查看仓库状态

复制代码
git status

作用: 查看当前仓库状态,包括:

  • 哪些文件被修改(Modified)
  • 哪些文件未被 Git 跟踪(Untracked)
  • 哪些文件已加入暂存区(Staged)
  • 当前所在分支

如果clone到本地的库无更新,用上述命令则会显示'nothing to commit'的状态,即如下所示:

反之,则是'modified something',且提示后续做git add的操作,如下:
仅更改,未递交保存

3. 添加文件到暂存区

bash 复制代码
git add <文件名>
# 或
git add .

作用: 将修改加入暂存区(Stage),等待提交。

递交保存后,查看状态会显示如下:

4. 提交到本地仓库

bash 复制代码
git commit -m "提交说明"

# 可将所有被修改或者已删除的且已经被git管理的文档提交到仓库,但不会提交新产生的文件,只能修改
git commit -a 

# 用 -a 参数时可以省略 git add .,会自动进行递交。
# 可以连用,即:

git commit -am "提交说明"

作用: 将暂存区内容提交到本地 Git 仓库。

添加更新备注说明,如下示例:

5. 推送到远程仓库

复制代码
git push

作用: 将本地提交同步到远程仓库(GitHub、GitLab 等)。

首次推送新分支通常需要:

复制代码
git push -u origin master/

例图如下:
阿里云推送结果

这时候尝试输出状态,则显示'nothing',表明已同步成功。

6. 拉取远程最新代码

开发前通常建议先执行一遍,避免与他人的修改发生冲突。

复制代码
git pull

作用: 获取远程仓库最新修改,并合并到当前分支。

其他相关命令

|-------------------------|----------------------------------|
| 命令 | 作用 |
| git branch branchname | 查看或创建分支 (-d 删除分支) |
| git checkout | 切换分支、创建新分支 |
| git add filename | 添加文件 |
| git rm filename | 删除库中文件 (--cached 仅删除库中文件,保留本地文件) |
| git init newrepo | 制定文件夹(newrepo)作为本地库目录 |

Github中clone前的步骤

因为是别人的项目无权限更改,所以需要fork到自己主页中变成自己的项目,拥有该项目的读写权限。

点击 ' fork ',创建一个新的fork后,相当于直接复制到你的主页中。接着拷贝自己主页中的库。使用Git 三剑客(add/commit/push)进行更新。

更新过后的操作,需要与原创作者进行申请,要求并入修改代码,由原创作者进行检查同意后,该库的项目就更新啦!申请之后会在' Pull request '中显示。()

注意事项

1、首选SSH访问协议进行clone。

SSH访问协议中需要配置公钥,阿里云说明文档中有详细介绍(2min可生成)。其他库类似。

如何配置SSH密钥及自定义SSH认证密钥的路径-云效(Alibaba Cloud DevOps)-阿里云帮助中心

因为我用的SSH算法类型为RSA,接下来就讲解这个类型公共秘钥的生成方式(ED25519类型的可查看链接 类似)

bash 复制代码
# 查看已有密钥(一般来说没做过就是没有的)
cat ~/.ssh/id_rsa.pub
# 检查标准:返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串,且对应邮箱或者登录名。

# 生成密钥(<注释内容>可为邮箱或者登录名)
ssh-keygen -t rsa -C "<注释内容>"
# 返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串,且对应邮箱或者登录名。

# 将密钥拷贝至公共库中

生成密钥示例图:(完整拷贝本机中公钥从ssh- 开始直到邮箱为止的内容。)

其他库需要的时候可以直接复制相同的公钥附在密码本< ~/.ssh/id_rsa.pub >后面,仅需要更改对应的邮箱名(或登录信息)。

2、第一次使用Git时,需要指明姓名与邮箱。

如未指明,在提交备注时,会出现如下提示:(执行红框部分就ok)