使用 Github 进行项目管理

GitHub 是一个广泛使用的代码托管和协作平台,它提供了强大的工具来支持项目管理和团队协作。在项目开发和工作中,避免不了 Github 的使用,然鹅我一直没有稍微系统地学习过 github 的整个工作流程,对这些操作都是一知半解的,所以今天就好好入门一下 github。

推荐一个非常好用的 Git 入门网站:Learn Git Branching

基础概念

仓库

  • 仓库(Repository):在 GitHub 上创建一个新的仓库,用于存放项目代码和相关资源。仓库可以设置为公开或私有状态。

分支

  • 主分支(main/master):稳定的代码分支,用于存放已发布或准备发布的代码。
  • 开发分支(develop):用于集成各个功能的开发分支,团队成员在此分支上进行合并。
  • 功能分支(feature):每个新功能或任务创建一个独立的功能分支,例如 feature/login
  • 修复分支(hotfix):用于紧急修复生产环境中的问题。

工作流程

配置 Git 用户信息

在初次使用 Git 之前,需要设置用户名和邮箱

git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"

查看配置:

git config --list

克隆(Clone)GitHub 仓库

首先,需要将远程的 GitHub 仓库克隆到本地计算机

git clone [仓库URL]

创建新分支(Branch)进行开发

为了保持主分支的稳定性,通常在新的分支(Branch)上进行开发

// 用于从远程仓库(名为 “origin”)获取最新的提交和分支信息
git fetch origin

// 从名为 “origin” 的远程仓库中拉取 “main” 分支的最新更改,并将其合并到当前所在的本地分支
git pull origin main  # 或者 master,根据主分支名称

origin 是默认的远程仓库名称

创建并切换到新分支:新分支的名称为 feature/your-feature-name

git checkout -b [feature/your-feature-name]

在新分支上进行代码的添加、修改或删除。

忽略更改

在本地仓库中,可能有一些文件是不需要合并到远程仓库中的(比如调试时生成的日志文件),可以通过.gitignore 文件来忽略不需要追踪更改的文件。

提交(Commit)更改

查看更改状态:

// 用于显示当前工作目录和暂存区的状态
git status

添加更改到暂存区(Stage):

git add .						// 添加所有更改

git add [filename]	// 添加特定文件

提交更改:

git commit -m "简要描述您的更改"

或者:

git commit

# 然后在文本编辑器中输入
"""
简短的标题(50 字符以内)

详细描述您的更改,说明原因和实现方式。
"""

推送(Push)分支到 GitHub

将本地分支推送到远程仓库,以便其他人可以访问更改。

推送分支到远程仓库:

git push origin [feature/your-feature-name]
// 用于将本地创建的新分支推送到远程仓库,并在远程仓库中创建相应的分支,同时设置本地分支跟踪远程分支
git push --set-upstream origin [feature/your-feature-name]

在 GitHub 上创建 Pull Request(PR)

提交更改请求,以便代码审查和合并。

代码审查(Code Review)和合并(Merge)

在 Pull Request 创建后,团队成员可以对代码进行审查

更新本地仓库

在合并完成后,确保本地仓库与远程仓库保持同步。

切换到主分支:

git checkout main  # 或者 master

拉取最新更改:

git pull origin main

删除本地已合并的分支(可选):

git branch -d [feature/your-feature-name]

git clonegit pull 的区别

git clone

  • 用于从一个远程仓库完整地复制一个项目到本地。它会创建一个新的本地目录,并将远程仓库的所有分支、提交历史等内容都复制到这个本地目录中。

git pull

  • 用于从一个已经存在的本地仓库对应的远程仓库中获取最新的提交,并将这些提交合并到当前所在的本地分支中。
  • 它实际上是git fetchgit merge两个操作的组合。git fetch从远程仓库获取新的提交,而git merge将这些提交合并到当前分支。

使用 github 在本地新建一个仓库,并上传到远程

进入本地工作文件夹,新建一个 readme 文件:

echo "# Title" >> README.md

初始化本地仓库:

git init

readme 文件添加到暂存区:

git add README.md

提交到本地仓库:

git commit -m "first commit"

将当前分支名称重命名为 main(避免分支名称冲突):

git branch -M main

将本地仓库绑定到远程仓库:

git remote add origin [URL]

推送更改到远程仓库:

git push -u origin main

检测是否能与 Github 连接

因为一些原因,可能需要额外的手段来连接 github 服务器,要查看本地网络是否能够顺利连接到 github,给出以下几种参考方法:

1. ping 命令

ping github.com

如果连接顺利,则返回:

注意:有时 GitHub 可能会禁用 ping 响应,导致 ping 请求超时。即使 ping 失败,其他方法也可以进一步确认。

2. 可以使用 curlwget 命令来测试与 GitHub 的 HTTPS 连接。

curl -I https://github.com
wget --spider https://github.com

如果连接顺利,返回 HTTP 状态码(HTTP/1.1 200 OK

3. 使用 ssh 测试 GitHub 的 SSH 连接(需要提前配置 SSH 密钥)

ssh -T git@github.com

如果连接顺利,返回:

配置 SSH 访问远程 Git 仓库

通过配置 SSH 来访问远程 Git 仓库,从而避免 HTTPS 访问中可能遇到的认证和网络问题。下面是具体的步骤:

步骤 1: 检查是否已有 SSH 密钥

首先,需要检查服务器上是否已经生成了 SSH 密钥。

ls -al ~/.ssh

如果看到类似 id_rsaid_rsa.pub 的文件,说明已经有一个 SSH 密钥对。否则你需要创建一个新的密钥对。

步骤 2: 生成 SSH 密钥对

如果没有 SSH 密钥,通过以下命令生成一个新的密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 当系统提示保存密钥的位置时,按 Enter 保存到默认位置(~/.ssh/id_rsa)。
  • 可以选择设置一个密码短语以增加安全性,或者直接按 Enter 跳过密码短语设置。

步骤 3: 启动 SSH 代理并添加密钥

启动 SSH 代理并将私钥添加到代理中:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

步骤 4: 将公钥添加到 GitHub

将生成的公钥(~/.ssh/id_rsa.pub)添加到 GitHub 帐户中。

首先,复制公钥的内容:

cat ~/.ssh/id_rsa.pub

然后,登录到 GitHub个人设置页面 并执行以下步骤:

  1. 点击 “New SSH key” 按钮。
  2. 填写一个名字以标识这把 SSH 密钥(例如“myALiServer”)。
  3. 将刚才复制的公钥粘贴到文本框中,点击 “Add SSH key”。

步骤 5: 测试 SSH 连接

在添加 SSH 密钥到 GitHub 后,测试连接以确保 SSH 设置正确:

ssh -T git@github.com

你应该会看到类似如下的输出:

成功地通过 SSH 连接到了 GitHub。

步骤 6: 更新 Git 远程仓库 URL

现在,需要将 Git 远程仓库的 URL 更改为 SSH 格式。使用以下命令:

git remote set-url origin git@github.com:[username]/[xxxx].git

通过以下命令检查远程仓库 URL 是否更改成功:

git remote -v

会看到类似这样的输出:

步骤 7: 测试 Git 访问

现在你可以通过 SSH 拉取或推送代码来测试 SSH 配置是否成功:

git fetch origin

如果没有报错,说明 SSH 配置已经正确生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

红茶川

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

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

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

打赏作者

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

抵扣说明:

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

余额充值