💜 想真正擅长编程? 从一门课程开始,100% 免费

2-1、Git基础与克隆项目切换分支

环境搭好了,接下来就是把公司项目代码拉下来。这一节讲Git克隆项目和分支切换,新人入职第一天就要用的操作。


一、搞清楚几个概念

先别急着敲命令,搞清楚这几个概念能少走弯路。

仓库(Repository)

仓库就是项目的根目录,里面有个.git隐藏文件夹,存着所有版本记录。

  • 远程仓库:在Git服务器上的,团队共享的
  • 本地仓库:你电脑上的,你自己改代码用的

分支(Branch)

分支就像平行宇宙,你可以在自己的分支上改代码,不影响其他人。

TEXT
main (主干)
  ├── feature/login (开发登录功能)
  ├── feature/register (开发注册功能)
  └── hotfix/bug-001 (修复线上bug)

常见分支命名规范

分支类型 前缀 示例
功能开发 feature/ feature/user-login
修复bug hotfix/ 或 fix/ hotfix/null-pointer
发布版本 release/ release/v1.2.0
主干 main 或 master main

二、克隆项目

1. 拿到项目地址

问你的导师或者看项目文档,拿到Git仓库地址。

SSH地址(推荐):

TEXT
git@github.com:company/project.git
git@gitcode.com:company/project.git

HTTPS地址:

TEXT
https://github.com/company/project.git

SSH地址需要配好密钥(上节搞定了),HTTPS每次要输密码。

2. 选个存放位置

别放桌面,别放C盘系统目录。

建议放在:

TEXT
D:\projects\company-project

或者:

TEXT
D:\workspace\project-name

3. 克隆

打开Git Bash或cmd:

Shell
# 进入存放目录
cd D:/projects

# 克隆项目
git clone git@github.com:company/project.git

克隆完成后,进入项目目录:

Shell
cd project

4. 浅克隆(大项目用)

有些公司项目历史很长,完整克隆可能几百MB甚至几GB,很慢。

用浅克隆,只拉最近一次提交:

Shell
git clone --depth 1 git@github.com:company/project.git

快很多,但缺点是看不到完整历史记录。后面需要时可以补全:

Shell
git fetch --unshallow

5. 克隆指定分支

如果项目分支很多,只克隆你需要的分支:

Shell
git clone -b feature/your-branch git@github.com:company/project.git

三、切换分支

1. 查看所有分支

Shell
# 查看本地分支
git branch

# 查看所有分支(包括远程分支)
git branch -a

输出示例:

TEXT
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/develop
  remotes/origin/feature/user-login
  remotes/origin/hotfix/bug-001

带*号的是你当前所在的分支。

2. 切换到已有分支

Shell
# 切换到main分支
git checkout main

# 切换到develop分支
git checkout develop

3. 切换到远程分支

远程分支在本地不存在时,需要先创建追踪分支:

Shell
# 方法1:checkout远程分支(会自动创建本地分支)
git checkout -b feature/user-login origin/feature/user-login

# 方法2:直接checkout(Git 2.23+支持,自动追踪)
git checkout feature/user-login

4. 创建自己的开发分支

新人入职一般要先建一个自己的开发分支:

Shell
# 基于当前分支创建新分支并切换过去
git checkout -b feature/your-name-your-task

# 例如
git checkout -b feature/zhangsan-user-login

5. 推送新分支到远程

Shell
# 把本地新分支推到远程
git push -u origin feature/zhangsan-user-login

-u参数建立本地分支和远程分支的追踪关系,以后git pull和git push不用指定远程分支名。


四、日常分支操作

1. 拉取最新代码

每天早上开始干活前,先拉一下最新代码:

Shell
# 切到主干
git checkout main

# 拉取最新
git pull origin main

# 切回你的开发分支
git checkout feature/zhangsan-user-login

# 把主干最新代码合并到你的分支
git merge main

2. 提交代码

Shell
# 查看改了什么
git status

# 看具体改动
git diff

# 添加所有改动
git add .

# 提交
git commit -m "feat: 完成用户登录接口"

# 推送
git push origin feature/zhangsan-user-login

3. 合并到主干(由有权限的人做)

Shell
# 切到主干
git checkout main

# 拉取最新
git pull origin main

# 合并你的分支
git merge feature/zhangsan-user-login

# 推送
git push origin main

实际开发中一般不直接合并,而是发Merge Request(GitLab)或Pull Request(GitHub),让代码经过Review后由有权限的人合并。


五、IDEA里的Git操作

命令行虽然灵活,但日常开发用IDEA的Git功能更方便。

1. 查看改动

底部栏点Git,或者用快捷键Alt+9。

文件名颜色含义:

  • 蓝色:修改过
  • 绿色:新增的
  • 红色:删除的
  • 灰色:被忽略的

2. 提交

快捷键Ctrl+K打开提交窗口。

左边选择要提交的文件,下面写提交信息,点Commit。

3. 推送

快捷键Ctrl+Shift+K打开推送窗口,点Push。

4. 切换分支

右下角有个分支名显示,点它可以看到所有分支,选一个切换。

5. 查看历史

底部Git面板 → Log标签,可以看到提交历史、分支图。

6. 解决冲突

IDEA的冲突解决界面非常好用,三栏对比:

  • 左边:你的代码
  • 中间:合并结果
  • 右边:对方的代码

点Merge按钮,在中间栏选择要保留的代码。


六、新人常见错误

错误1:在main分支上直接改代码

千万别在main分支上改代码! 主干是大家的,你直接改了推上去,可能覆盖别人的代码。

正确做法:

  1. 切到自己的开发分支
  2. 在开发分支上改
  3. 测试没问题后发MR/PR合并到主干

错误2:不拉代码就改

早上来直接改代码,结果别人的改动你本地没有,推的时候冲突一堆。

正确做法:

  1. 先git pull origin main拉最新
  2. 再切到你的分支合并主干最新代码
  3. 然后再改

错误3:提交了不该提交的文件

把target/、application-local.yml、.idea/这些提交了。

正确做法:确认.gitignore文件里有这些条目。如果不小心提交了:

Shell
# 从Git跟踪中移除(不删除本地文件)
git rm --cached target/
git rm --cached .idea/
git commit -m "chore: 移除不需要跟踪的文件"
git push

错误4:commit信息随便写

Shell
# 烂的commit信息
git commit -m "修改"
git commit -m "aaa"
git commit -m "fix bug"

# 好的commit信息
git commit -m "feat: 新增用户登录接口,支持账号密码登录"
git commit -m "fix: 修复用户列表分页失效的问题"

第4章会详细讲Git提交规范。

错误5:force push到公共分支

Shell
# 危险操作!别在公共分支用!
git push --force origin main

这会覆盖远程历史,别人的提交全没了。

--force只在自己的个人分支上用,公共分支千万别force push。


七、实用技巧

1. 暂存当前修改

正在改代码,突然要切分支修个紧急bug,但当前代码还没写完不想提交:

Shell
# 暂存当前所有修改
git stash

# 切分支修bug
git checkout hotfix/urgent-bug

# 修完后切回来
git checkout feature/your-branch

# 恢复暂存的修改
git stash pop

IDEA里:右键项目 → Git → Stash Changes

2. 撤销最近的提交

Shell
# 撤销提交但保留修改(推荐)
git reset --soft HEAD~1

# 撤销提交并丢弃修改(慎用)
git reset --hard HEAD~1

3. 修改最近一次提交的信息

Shell
git commit --amend -m "新的提交信息"
git push --force-with-lease origin feature/your-branch

4. 查看某行代码是谁改的

Shell
# 查看某文件的修改历史
git log -p src/Main.java

# 查看某行是谁改的(IDEA更方便)
git blame src/Main.java

IDEA里:右键文件 → Git → Annotate with Git Blame

5. 比较分支差异

Shell
# 比较两个分支的差异
git diff main..feature/your-branch

# 只看文件列表
git diff main..feature/your-branch --stat

小结

操作 命令 使用场景
克隆 git clone 入职第一次拉代码
切分支 git checkout -b 创建开发分支
拉取 git pull 每天早上同步代码
提交 git add + git commit 改完代码提交
推送 git push 提交后推到远程
暂存 git stash 临时切分支时用

代码拉下来了,下一步导入IDEA,配置Maven和JDK。