分类

Git: 从提交到团队协作

从 0 到 1:给已有代码项目配置 Git 仓库(超详细实战指南)

很多人在开发时,都会遇到这样一种情况:

  • 已经写了一堆代码
  • 项目文件夹已经存在
  • 但还没有使用 Git 管理
  • 想上传到 GitHub / GitLab
  • 或者后续想多人协作

这时候最常见的问题就是:

“如何把一个已有代码目录,配置成 Git 仓库?”

今天这篇文章,就带你完整走一遍。

适合:

  • Python / Java / 前端 / AI 项目
  • 个人项目
  • 公司项目
  • 本地已有代码目录

全部通用。


一、什么是 Git 仓库?

简单理解:

Git 会在你的项目里创建一个:

.git/

隐藏目录。

这个目录会记录:

  • 代码历史
  • 修改记录
  • 分支信息
  • 提交版本
  • 回滚信息

也就是说:

...

5分钟上手 Git:从安装到第一次提交,小白也能学会

摘要

很多人觉得 Git 难,其实真正高频使用的命令可能只有几个。别一上来学分支和工作流,先完成你的第一次提交。代码管理的第一步,不是复杂,而是开始。


命令速查表

git --version
# 查看 Git 是否安装成功

git config --global user.name "你的名字"
# 配置 Git 用户名

git config --global user.email "你的邮箱"
# 配置 Git 邮箱

cd git-demo
# 进入项目目录

git init
# 初始化 Git 仓库

git add hello.txt
# 添加指定文件到暂存区

git ...

别再乱写 `.gitignore `了:一篇讲清规则、误区和最佳实践

很多人第一次用 Git 时,都会遇到一个很尴尬的问题:明明已经写了 .gitignore,为什么文件还是被提交上去了?

比如:

node_modules/
.env
dist/

看起来没毛病,对吧?

可现实往往是:node_modules 还在 Git 里,.env 也已经被提交过,甚至团队成员一拉代码,发现你的本地配置、日志文件、构建产物全都混进了仓库。

.gitignore 是 Git 里非常基础的文件,但它背后的规则并不总是直觉化。今天这篇文章,我们就用最接地气的方式,把 .gitignore 的写法、常见坑和最佳实践一次讲清楚。

命令速查表

命令 中文注释
gi...

Git Log 不只是日志:学会读懂代码背后的故事

导语

很多人学 Git 时,最先记住的命令是:

git add .
git commit -m "fix bug"
git push

可一旦项目真正开始协作,你会发现:

真正有价值的,不是“怎么提交代码”,而是“怎么理解代码为什么变成现在这样”。

这时候,git log 就开始变得重要了。

它不是一串无聊的提交记录。 它更像项目的“时间机器”。

你能从里面看到:

  • 某个 Bug 是什么时候出现的
  • 一个功能是谁改坏的
  • 为什么当初要这样设计
  • 哪次重构把项目带进了深坑
  • 哪个同事的 commit 信息像天书

很多高级开发者排查问题时,第一反应不是打开 IDE,而是先看 git log

...

为什么 Git 分支能“秒切换”?很多人其实没真正理解

导语

很多人第一次学 Git 分支时,都会觉得它像一种“黑魔法”。

明明:

  • 项目文件那么多
  • 代码改动那么复杂
  • 分支还能随便切换
  • merge 还能自动合并

更离谱的是:

git checkout dev

短短一秒钟,整个项目居然就“变了”。

于是很多人开始背命令:

git branch
git checkout
git merge
git rebase

命令会用了。

但心里始终有个疑问:

Git 分支,到底是什么?

这篇文章,我们不聊复杂源码,也不讲晦涩概念。

只做一件事:

用人话,真正理解 Git 分支的工作原理。

看完之后,你会明白:

  • 为什么 Git 分支这么快
  • ...

【Git Feature】1.别再直接改 Main 了,Feature 分支到底解决什么?

【Git Feature】1.别再直接改 Main 了,Feature 分支到底解决什么?

很多刚学 Git 的人,都会这样写代码:

git checkout main
git pull
git coding...
git push

看起来很顺手,问题也往往来得很突然。

某一天,你会发现:同事的代码被覆盖了,半成品功能进了主分支,一个小 Bug 影响了整个项目。更麻烦的是,出了问题之后,很难快速回滚。

这就是团队开发里很少直接在 main 分支写代码的原因。

更常见的做法是:

一个功能,一个 feature 分支。

比如团队同时开发几个功能:

main
 ├── feature/...

【Git Feature】2.从需求到 PR,一个 Feature 分支怎么开发?

假设你现在要开发一个功能:

手机号登录。

标准流程不是直接开写,而是先同步主分支。

git checkout main
git pull origin main

这一步很重要。

如果你的 main 已经过时,后面合并时更容易出现冲突。先拉最新代码,等于从一个干净、最新的起点出发。

接着,创建功能分支:

git checkout -b feature/login

这行命令做了两件事:

  1. 创建 feature/login
  2. 切换到这个分支

现在你就可以放心开发登录功能了,比如:

  • 登录接口
  • Token 验证
  • 页面 UI
  • 表单校验

开发过程中,不建议把所有修改攒到最后一次性提交。...

【Git Feature】3.Merge 冲突不可怕,真正可怕的是乱合并

Feature 分支开发完成后,最终要合并回 main

最简单的情况是这样的:

main:    A -> B
feature:       -> C -> D

如果 main 在这期间没有新提交,合并通常很顺利:

git merge feature/login

Git 可能直接做一次 Fast Forward,也就是快进合并。

但现实里很少这么安静。

你开发登录功能时,别人可能已经往 main 合并了新代码:

main:    A -> B -> E
feature:       -> C -> D

这时再合并,Git 就需要判断两边代码怎么放到一起。

如果两边改的是不同...

【后悔药】1. 遗漏提交文件、Message 写错?Git 这颗后悔药很好用

Git Commit 写错了怎么办?一个 amend 就能救回来

刚提交完代码,你突然发现一件很尴尬的事:

commit message 写错了。

或者更糟一点:

代码提交了,README 忘记加了。

这时候很多人的第一反应是慌,甚至想立刻执行:

git reset --hard

先别急。

如果你的代码只是刚 commit,还没有 push 到远程仓库,这种问题其实非常好处理。Git 给我们准备了一颗很常用的“后悔药”:git commit --amend

它的作用很简单:

修改最近一次 commit。

注意,是“最近一次”。这也是它好用但不能乱用的原因。

场景一:Commit...

【后悔药】2. Git Reset 到底怎么用?Soft、Mixed、Hard 一次讲清

刚 commit 完,突然发现代码还没整理好。

变量名有点乱,测试也没补,甚至还有几行临时调试代码。

这时候你可能想做一件事:

把刚才那次 commit 撤回来,但代码先留着。

如果这次提交还没有 push 到远程仓库,恭喜你,这是 Git 最好补救的阶段。

这篇我们只讲一个核心问题: git reset 到底怎么用, 尤其是 --soft--mixed--hard 三种模式有什么区别。

Commit 了但还没 Push,先别慌

本地 commit 出错,其实并不可怕。

因为代码还没有进入公共历史,通常不会影响别人。你可以根据自己的需要,把最近一次 commit 撤回来,然后重新...

发现更多