使用Git进行代码版本管理

1. 简介

  1. Remote(远程仓库)
    • 这是存储在远程服务器上的代码库,通常用来与团队成员共享代码。远程仓库包含了所有提交的历史记录。
    • 操作示例:git push(将本地仓库的更改推送到远程仓库),git pull(从远程仓库拉取更新到本地仓库)。
  1. Repository(本地仓库)
    • 这是存储在本地计算机上的代码库,包含项目的所有历史提交记录。它是一个完整的版本库副本。
    • 操作示例:git commit(将工作区中的更改提交到本地仓库),git checkout(切换到某个特定的提交或分支)。
  1. Index(索引/暂存区)
    • 索引是一个临时存储区域,用于记录即将提交到本地仓库的文件。只有在Index中的更改才会被提交
    • 操作示例:git add(将工作区中的更改添加到索引中),git reset(将索引中的更改移除)。
  1. Workspace(工作区)

代码流动过程:

  1. 当你编辑文件时,变更首先在工作区中发生。
  2. 通过git add命令将更改从工作区添加到索引。
  3. 使用git commit将索引中的更改提交到本地仓库。
  4. 通过git push命令将本地仓库的更改推送到远程仓库,与团队共享。
  5. 使用git pull从远程仓库拉取最新的更改到本地仓库。

2. 管理流程

2.1. 建立清晰的分支策略

在任何项目中,建立一个清晰的分支策略是至关重要的。这通常包括主分支(master或mAIn)、特性分支(feature branches)、开发分支(develop)、以及用于准备发布的分支(如release分支)。

  • 主分支应该保持稳定的状态,随时可用于部署。所有从其他分支合并到主分支的更改应该是经过彻底测试和审查的。
  • 特性分支是从开发分支中分化出来,用于开发新功能或修复bug。每个特性分支应专注于一个具体的任务,完成后合并回开发分支。
  • 开发分支是团队成员日常工作的基础。这个分支应保持相对稳定,但可以比主分支更频繁地接受更改。
  • 发布分支用于准备即将发布的版本。在这个分支上,可以进行最后的测试和bug修复,确保产品的质量。

2.2. 定期提交与合并

定期提交是 Git 管理中的一个重要环节。每次提交应尽可能小且专注于单一的修改或功能,这样在发生错误时可以更容易地定位问题。

合并是将一个分支的更改引入另一个分支的过程。合并前,应确保目标分支的最新更改已经同步到当前分支,以避免冲突。在合并特性分支回开发分支或主分支之前,进行代码审查是一个好习惯,它可以帮助保证代码质量并促进团队协作。

2.3. 使用标签来管理发布版本

在Git中,标签被用来标记特定的提交点,通常用于版本发布。通过给发布的版本打标签,团队可以轻松地追踪和切换到特定的版本。

创建标签应在发布分支准备就绪,且即将合并到主分支时进行。这样,可以确保标签对应的版本是经过彻底测试和验证的。标签名应遵循语义化版本命名规则,如 v1.0.0,这样可以清晰地表示版本的重大更新、次要更改和补丁。

2.4. 保持代码库的整洁

保持代码库的整洁对于长期维护项目至关重要。这包括定期清理已合并的分支、避免在主分支上进行直接更改以及保持提交历史的清晰。

一种好的实践是,一旦特性分支的更改被合并到开发分支或主分支,就删除这个特性分支。这有助于减少仓库中未使用分支的积累。

此外,避免在主分支上直接更改可以确保主分支的稳定性。所有的更改应该通过特性分支和相应的合并请求来完成。

2.5. 利用Git钩子和CI/CD集成

Git钩子是自定义脚本,可以在特定的重要动作发生时运行,如提交前和提交后。利用Git钩子,可以自动执行代码风格检查、单元测试等任务,确保只有符合标准的代码才能被提交。

持续集成/持续部署(CI/CD)是现代软件开发的重要组成部分。通过将Git与CI/CD工具集成,每次提交都可以自动触发构建和测试流程,快速发现并解决问题。这也支持自动化部署,使新的更改更快地到达用户手中。

使用Git管理代码不仅仅是关于技术的实现,它更是一种团队协作和项目管理的文化。采用上述最佳实践,可以帮助团队更有效地利用Git,提高项目的成功率。

3. 实现步骤

3.1. 建立仓库

先在远程代码托管平台(如GitHub、GitLab等)上创建一个新的仓库

使用命令行或终端,进入你的本地项目目录

如果项目还没有使用Git进行版本控制,可以通过执行以下命令来初始化一个本地仓库

git init

执行以下命令将远程仓库的地址添加到本地仓库中:

git remote add origin <远程仓库地址>

3.2. 分支管理

查看分支:

git branch

建立新分支:

git branch <新分支名称>

切换分支:

git checkout <要切换的分支名称>

推送到指定分支:

git push origin <分支名称>

3.3. 推送代码

理论上改代码前要 pull 一次,然后在 push 前再 pull 一次。

改代码前 pull 一次是为了获取最新的同步,但是coding也是需要时间的,难保敲代码的这段时间没有人动远程仓库的东西,所以在改完代码要 push 的时候也应该再 pull 一下看有无冲突,把冲突解决了再 push。

①首先切换到要 code 的分支,比如 dev 分支

git checkout dev

②首先 pull 一次

git pull

如果是特定分支,比如dev分支

git pull origin dev

这样就可以获取到最新的更新并合并到当前分支

然后开始敲键盘码代码……

③将所有修改的文件添加到暂存区

git add .

④提交更改,如果需要可以备注更改信息,比如修改了无法跳转页面的bug

git commit -m "修改了无法跳转页面的bug"

⑤然后再一次pull,如果木有冲突就push,默认推送到master

git pull

如果还没有将本地的分支与远程仓库的分支进行关联

git push --set-upstream origin master

推送到指定分支

git push origin <分支名称>

如果有冲突,改好代码后回到第③步

3.4. 常见问题

3.4.1. git pull 时Git报错: Failed to connect to github.com port 443 解决方案

两种情况:

  • 第一种情况自己有vpn,网页可以打开github。说明命令行在拉取/推送代码时并没有使用vpn进行代理
  • 第二种情况没有vpn,这时可以去某些网站上找一些代理ip+port

第一种情况的解决办法:

配置 http 代理。Windows、Linux、Mac OS 中的 git 命令相同

  1. 配置socks5代理
git config --global https.proxy socks5 127.0.0.1:7891
  1. 配置http代理
git config --global http.proxy 127.0.0.1:7890

注意:

  • 主机号(127.0.0.1)是使用的代理的主机号(自己电脑有vpn那么本机可看做访问github的代理主机),即填入127.0.0.1即可,否则填入代理主机 ip(就是网上找的那个ip)
  • 命令中的端口号(我是7890和7891)可以在clash中进行查看。
  1. 重新pull
git pull

3.4.2. git Please tell me who you are 解决方法

在 git 创建项目时出现,是因为在创建git文件夹的时候信息不完善导致的

下面是正确的项目创建流程:

  1. git init
  2. git config user.name "your github ID"
  3. git config user.email "your github enroll email"
  4. git add *
  5. git commit -m "you commit for what"

4. 相关问答FAQs:

为什么要使用Git来管理项目代码?

Git是一种分布式版本控制系统,它可以帮助团队协作开发,并且能够追踪代码的变化。通过使用Git,您可以轻松地回滚到之前的代码版本,方便地合并代码,以及跟踪每个人的贡献。

如何在项目中初始化Git仓库?

要在项目中使用Git,首先需要在项目文件夹中初始化一个Git仓库。在命令行中进入项目文件夹,然后运行git init命令即可。这将在项目文件夹中创建一个隐藏的.git文件夹,用于存储Git仓库的相关信息。

如何将代码提交到Git仓库?

要将代码提交到Git仓库,首先需要将代码添加到暂存区。使用git add命令来添加文件或文件夹,例如git add .表示添加所有文件。然后,使用git commit -m "提交说明"命令来提交代码并添加提交说明。提交说明应该清晰地描述您所做的更改。

如何创建并切换到一个新的分支?

要创建一个新的分支,可以使用git branch <branch-name>命令,其中<branch-name>是您想要创建的分支名称。然后,使用git checkout <branch-name>命令来切换到新创建的分支。您可以在新分支上进行更改,而不会影响主分支。

如何合并不同分支的代码?

要合并不同分支的代码,首先切换到接收更改的分支。然后,使用git merge <branch-name>命令将其他分支的代码合并到当前分支。如果合并过程中出现冲突,您需要手动解决冲突并提交更改。

如何将代码推送到远程Git仓库?

要将代码推送到远程Git仓库,首先需要将本地仓库与远程仓库关联。使用git remote add origin <remote-url>命令将本地仓库与远程仓库关联起来,其中<remote-url>是远程仓库的URL。然后,使用git push origin <branch-name>命令将代码推送到远程仓库的特定分支。

如何从远程Git仓库拉取最新的代码?

要从远程Git仓库拉取最新的代码,使用git pull origin <branch-name>命令。这将从远程仓库的特定分支拉取最新的代码,并将其合并到当前分支。

如何撤销对代码的更改?

如果您不小心对代码进行了错误的更改,可以使用git checkout -- <file-name>命令撤销对单个文件的更改。如果您想撤销所有更改并回到上次提交的状态,可以使用git reset --hard HEAD命令。请注意,这将永久删除所有未提交的更改。

如何查看Git提交历史记录?

要查看Git提交的历史记录,可以使用git log命令。这将显示每个提交的作者、提交日期和提交说明。您还可以使用git log --graph命令以图形方式查看提交历史记录。

如何在Git中解决代码冲突?

当合并不同分支的代码时,可能会发生冲突。要解决冲突,可以使用文本编辑器打开包含冲突的文件,并手动解决冲突部分。然后,使用git add <file-name>命令将解决冲突的文件添加到暂存区。最后,使用git commit -m "解决冲突"命令提交解决冲突的更改。

参考:

如何使用Git进行代码版本管理-腾讯云开发者社区-腾讯云

怎么用git管理项目代码 - PingCode

项目中如何使用git管理代码 - PingCode

解决:fatal: Not a valid object name: ‘master‘问题_fatal: not a valid object name: 'master-CSDN博客

Git报错: Failed to connect to github.com port 443 解决方案-CSDN博客

  • 15
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值