news 2026/4/18 10:04:34

2024年Ubuntu 20.04下Git与GitHub协作开发实战指南(新手友好版)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2024年Ubuntu 20.04下Git与GitHub协作开发实战指南(新手友好版)

1. 环境准备:Git安装与基础配置

在Ubuntu 20.04上安装Git只需要一条命令。打开终端(Ctrl+Alt+T)输入以下命令:

sudo apt update && sudo apt install git -y

安装完成后,我们需要进行最基本的用户信息配置。这个配置非常重要,因为每次代码提交都会记录这些信息。运行以下两条命令,把示例中的姓名和邮箱替换成你自己的GitHub账号信息:

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

这里有个实用小技巧:如果你经常在不同项目使用不同身份,可以去掉--global参数,在项目目录下单独配置。我习惯用git config --list查看当前配置,确保不会弄混工作身份。

注意:邮箱地址必须和GitHub账号绑定的邮箱一致,否则贡献统计可能无法正确关联

验证安装是否成功可以输入git --version,如果看到类似git version 2.25.1的输出就说明安装正确。建议再设置下默认文本编辑器,避免遇到需要写提交信息时不知所措:

git config --global core.editor "nano"

2. 首次使用:建立本地与云端仓库

2.1 创建GitHub仓库

登录GitHub后,点击右上角"+"选择"New repository"。仓库命名建议使用小写字母和连字符,比如my-first-project。初学者可以暂时忽略其他高级选项,但有两个关键点需要注意:

  1. README文件:建议勾选创建,它会自动生成一个基础说明文件
  2. .gitignore:根据项目类型选择模板,比如Python项目会自动忽略.pyc等临时文件

创建完成后,你会看到一个空的仓库页面,记住这个页面顶部的HTTPS地址(形如https://github.com/username/repo.git),接下来会用到。

2.2 初始化本地仓库

在本地项目文件夹打开终端,执行:

git init

这个命令会在当前目录创建隐藏的.git文件夹,所有版本控制信息都存储在这里。我建议紧接着创建一个基础项目结构:

mkdir src tests docs touch README.md .gitignore

现在执行git status,你会看到所有未被跟踪的文件。这时可以用git add .添加所有文件,但我更推荐明确指定要添加的文件:

git add README.md .gitignore src/

2.3 关联本地与远程仓库

使用以下命令将本地仓库与GitHub关联(替换成你的实际地址):

git remote add origin https://github.com/username/repo.git

这里有个常见问题:如果输错了远程地址怎么办?可以先git remote remove origin删除错误配置,再重新添加。关联成功后,首次推送代码需要加上-u参数:

git commit -m "初始提交" git push -u origin main

提示:GitHub现在默认分支名为main而非master,如果遇到分支名问题可以用git branch -M main修改

3. 日常开发工作流

3.1 代码修改与提交

典型的开发周期遵循"修改→暂存→提交→推送"的流程。假设我们修改了src/main.py文件:

# 查看哪些文件被修改 git status # 将修改添加到暂存区 git add src/main.py # 提交到本地仓库 git commit -m "修复用户登录逻辑" # 推送到GitHub git push

我强烈建议提交信息写得具体明确。糟糕的提交信息如"修复bug",好的提交信息如"修复用户登录时密码验证失效问题"。团队协作时可以加上前缀,比如[auth] 修复登录验证逻辑

3.2 处理.gitignore

有些文件不应该纳入版本控制,比如:

  • 编译产物(*.pyc,pycache
  • 环境配置(.env)
  • 编辑器文件(.vscode/)

在.gitignore中添加规则后,已经跟踪的文件需要用以下命令清除:

git rm --cached <file>

我常用的Python项目.gitignore模板:

# Byte-compiled __pycache__/ *.py[cod] # Environment .env venv/ # IDE .vscode/ .idea/

4. 分支管理与协作

4.1 基础分支操作

创建新分支开发功能是个好习惯:

# 创建并切换到feature分支 git checkout -b feature/user-profile # 开发完成后合并到main分支 git checkout main git merge feature/user-profile # 删除已合并的分支 git branch -d feature/user-profile

遇到合并冲突时,Git会在冲突文件中标记冲突位置。解决后需要手动标记为已解决:

git add <冲突文件> git commit

4.2 团队协作流程

标准的GitHub协作流程是:

  1. Fork主仓库到自己的账号
  2. Clone自己的仓库到本地
  3. 添加主仓库为上游远程源:
git remote add upstream https://github.com/original/repo.git
  1. 定期同步主仓库变更:
git fetch upstream git merge upstream/main
  1. 推送变更到自己fork的仓库后,在GitHub页面发起Pull Request

5. 常见问题解决方案

5.1 认证失败问题

GitHub已禁用密码认证,推荐两种认证方式:

SSH方式(推荐)

  1. 生成SSH密钥:ssh-keygen -t ed25519
  2. 将~/.ssh/id_ed25519.pub内容添加到GitHub的SSH Keys设置
  3. 修改远程地址为SSH格式:git remote set-url origin git@github.com:user/repo.git

Personal Access Token

  1. 在GitHub设置中生成token(勾选repo权限)
  2. 推送时使用token作为密码

5.2 撤销更改

几个常用撤销命令:

  • 丢弃工作区修改:git checkout -- <file>
  • 取消暂存:git reset HEAD <file>
  • 回退到某次提交:git reset --hard <commit-hash>

5.3 大文件存储

Git不适合直接存储大文件,解决方案:

  1. 使用git-lfs扩展:
git lfs install git lfs track "*.psd" git add .gitattributes
  1. 或使用.gitignore排除大文件,通过其他方式共享

6. 进阶技巧与工具

6.1 图形化工具

虽然命令行足够强大,但图形工具有时更直观:

  • gitk:内置的仓库浏览器
  • git gui:图形化提交工具
  • VS Code的Git插件:内置diff和提交功能

6.2 别名配置

在~/.gitconfig中添加这些别名能提升效率:

[alias] co = checkout br = branch ci = commit st = status last = log -1 HEAD unstage = reset HEAD --

6.3 钩子脚本

在.git/hooks/目录下可以添加脚本自动化任务。比如pre-commit钩子可以运行代码检查:

#!/bin/sh flake8 src/ if [ $? -ne 0 ]; then echo "代码风格检查未通过" exit 1 fi

记得给脚本添加执行权限:chmod +x .git/hooks/pre-commit

7. 完整开发实例演示

让我们通过一个Python项目实例完整走一遍流程:

  1. 在GitHub创建新仓库python-demo
  2. 本地初始化项目:
mkdir python-demo && cd python-demo git init echo "# Python Demo" > README.md mkdir src tests touch src/__init__.py src/main.py
  1. 编写基础代码后提交:
git add . git commit -m "项目初始化" git remote add origin https://github.com/yourname/python-demo.git git push -u origin main
  1. 开发新功能时:
git checkout -b feature/calculator # 编写计算器功能代码... git add src/ git commit -m "添加基础计算器功能" git push origin feature/calculator
  1. 在GitHub页面发起Pull Request,经过代码审查后合并到main分支
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 10:00:35

从Alpha到Omega:一份面向开发者的希腊字母实用指南

1. 为什么开发者需要掌握希腊字母&#xff1f; 作为一个写了十几年代码的老兵&#xff0c;我至今还记得第一次在数学公式里看到θ时的茫然。当时为了在论文里正确显示一个简单的θ参数&#xff0c;我折腾了整整两天的LaTeX。希腊字母在技术领域就像空气一样无处不在——从机器…

作者头像 李华
网站建设 2026/4/18 9:59:16

从攻击者视角学防御:用MSF+CS双工具链演示MS11-030漏洞利用全流程

从攻击者视角学防御&#xff1a;MS11-030漏洞利用与检测实战解析 在网络安全领域&#xff0c;理解攻击者的思维方式和操作手法是构建有效防御体系的关键。MS11-030作为Windows DNS解析组件中的经典漏洞&#xff0c;至今仍被许多安全团队用作内部培训的典型案例。本文将从一个红…

作者头像 李华
网站建设 2026/4/18 9:59:16

1999-2025年上市公司异地投资数据+stata代码

上市公司异地投资是指上市公司在除总部注册地以外的其他地区&#xff08;通常是不同城市或省份&#xff09;设立子公司、分支机构或进行项目投资的行为 影响上市公司异地投资的关键因素&#xff1a; 1.政策影响&#xff1a;如数据要素市场化政策可促进资本跨区域流动&#xff0…

作者头像 李华
网站建设 2026/4/18 9:54:28

DrissionPage+Appium双剑合璧:搞定混合App测试的5个实战技巧

DrissionPageAppium双剑合璧&#xff1a;搞定混合App测试的5个实战技巧 混合应用测试一直是移动端自动化的难点&#xff0c;H5页面与原生组件的深度耦合让许多测试工程师头疼不已。今天我们就来聊聊如何用DrissionPage和Appium这对黄金组合&#xff0c;解决混合应用测试中的那…

作者头像 李华