git使用

一、从无到有新建git的master

0、A 本地分支目前是自己本地的:master,存放项目初始化代码(test.java + .gitignore)

  • Gitee 远程:还没有任何分支,点推送之后,远程才诞生 master 主干。

1、创建仓库

2、复制链接

3、顶部菜单:文件 → 关闭项目,回到 IDEA 欢迎界面。

4、进行克隆,不要勾选最下方,以便获取全量提交历史。(克隆俩次,模拟团队协作)

5、此时Gitee 网页远程仓库:完全空,没有任何文件,也没有 master 分支

  • A 本地文件夹:刚克隆下来,空空的,没有代码
  • B 本地文件夹:同样空空的

关键点:只有你在 A 本地新建文件 → Ctrl+K 提交 → 推送成功之后,Gitee 远程那边才会产生文件、才诞生 master 分支。 现在什么都还没有。

6、复制一个java文件放在根目录,此时弹出如下,选添加并选不再询问,这样的话,可以确保都被git跟踪并可顺利上传到git

7、.idea下的东西作为单个用户本地的内容,不能上传到git,我们可以新建一个.gitignore文件,放入如下内容,并上传到git

java 复制代码
# IDEA
.idea/
*.iml

# 编译输出
out/
target/

# 系统临时文件
.DS_Store

8、查看哪些可提交

IDEA 里怎么看哪些文件会被提交

打开Ctrl+K提交窗口,看文件颜色:

  • 蓝色 / 绿色:已经被 Git 跟踪,会被提交上传
  • 红色:新文件,还没加入 git 管理,可以选择要不要加
  • 灰色带圆圈:被忽略,Git 完全看不见,不会上传(就是.idea 里那些 xml 现在的状态)

灰色圆圈 = 已经被忽略,你就算手滑勾选不上,也提交不了

9、按 Ctrl+K 打开提交窗口:

  1. 确认只勾选这两个文件:test.java.gitignore
  2. 提交信息填写:第一次提交,创建master主干,增加gitignore忽略规则
  3. 底部选择:提交并推送

10、此时选择是否推送,显示是从本地的master推送到git的master,当推送成功后,此时相当于git的master已经创建了,而且我当前处于git的master,此时必须得新建一个分支再去进行代码的调整,否则的话就是直接更改master。另外当切换分支时,本地的代码文件夹也会被调整,从始至终保持只有一份代码在本地。

区分容易搞混三个东西

  1. 分支 (branch):master /feature/a‑dev,用来持续开发,指针不断向前跑,我们现在主要用它。
  2. 标签 (tag,推送标记):v1.0、v2.0,钉死在某一次提交,做版本发布,本次练习不用。
  3. 提交 (commit):每一次代码快照。

11、如果弹出账号密码框:用户名填 gitee 用户名,密码粘贴你的 Gitee 私人访问令牌。

账号是:
  • 网页右上角点你的头像 → 个人主页,之后网址 https://gitee.com/后面就是用户名
如果没有令牌:

浏览器打开 Gitee →个人设置 →安全设置 →私人访问令牌 新建令牌,勾选projectspull_requests相关仓库权限,复制生成的字符串,只出现一次,保存好,粘贴到这个密码输入框。

  1. 只做推送 / 拉取代码(把分支推上远程):只要 projects,不需要 pull_requests 你本地写完 feature/a‑dev,推送到远程 origin/feature/a‑dev,这一步完全不需要它。

  2. 当你要在 Gitee 网页操作【合并请求 PR】(把 feature 分支合并进 master 主干),就必须要有 pull_requests 权限

  • 没有这个权限:代码照样能推到自己的 feature 分支,但是网页上不能新建 PR、不能查看、不能点合并按钮

补充一个例外: 如果你不走网页 PR 流程,直接在 IDEA 本地把 feature 合并到 master,再直接推送 master。这种本地合并的方式,也不需要 pull_requests 权限

12、推送完成之后,打开浏览器访问你的 gitee 仓库页面刷新,就会看到这两个文件,远程 master 分支正式生成。

二、新建自己的分支

1、新建分支。

注意:在 IDEA/PyCharm 里新建本地分支,仅仅存在你电脑本地,Gitee 服务器完全不知道这个分支存在,网页上看不见。 只有执行 push 推送之后,Gitee 才会收到这个新分支,网页端分支列表才出现。反过来:别人 Gitee 上新建分支,你本地也不会自动出现,需要执行拉取更新,本地才能看见别人新建的远程分支。

签出 = 切换到这个分支

  • ✔打勾:创建分支 并且立刻切到这个新分支 ,你接下来写代码就在feature/a分支。
  • ☐不打勾:只把分支建出来,你还停留在原来的 master 分支,需要手动再切过去。

👉现在保持勾选,不要取消,直接点创建。


☐覆盖现有分支 (R)【现在是空的,不要勾】

作用:如果已经存在同名的feature/a分支,会直接把旧分支删掉、强制新建。

  • 咱们第一次建,没有旧分支,绝对不要勾选这个
  • 只有分支搞坏了需要强制重建的时候才碰它,新手不要碰。

2、HEAD = 当前你本地正在看 / 正在工作的那个分支的指针 ,可以通俗理解成:你的光标,指向现在在用的分支

3、新增一行代码,先提交,后push

  1. 提交 (I) 按钮 :只做本地提交 ,等价单纯 Ctrl+K

代码保存到你电脑本地 git,还不上传到 Gitee 服务器

  1. 提交并推送 (P)...(红框) := 本地提交 + 立刻推送到远程 Gitee,相当于 Ctrl+K 做完马上执行 Ctrl+Shift+K

简单记:

  • 提交:仅本机
  • 提交并推送:本机 + 直接上传云端

为什么有的时候分开:先提交,后推送

提交(commit):只存在你自己电脑本地,不上网,不碰 Gitee。 推送(push):联网,把本地提交传到 Gitee 远程服务器。

场景 1:分开做(先提交,后推送)公司常用

  1. 你在本地反复提交很多次,做小快照保存。

比如写代码,写一段就提交一次,做备份,这些提交只留在本机,不想给别人看见

  1. 写完、自测跑通、确认没问题,最后一次性推送去 Gitee。

✅好处:

  • 断网也可以提交,本地随便存版本
  • 可以在本地来回改、回滚、修改提交记录,不会污染远程仓库的提交记录

4、如下

5、如下

6、在第二个代码文件夹去新建分支

7、先拉取远程最新 master(关键) 快捷键 Ctrl + T(Pull 拉取),直接确认拉取。

作用:把 Gitee 远程 master 最新代码下载到 B 的本地 master,避免基于老旧代码创建 feature/b。

8、点击后提示如下

9、勾选 设为跟踪分支 (S),然后点【更新】。

  • 左边下拉已经是origin,右边是master,正好就是远程origin/master
  • ✅勾选「设为跟踪分支」:这一步会把本地 master 永久绑定远程 origin/master,以后再按 Ctrl+T 就不会报 "没有跟踪的分支" 这个错误。
  • 更新模式保持:将传入更改合并到当前分支 (M)

点更新,执行拉取。完成之后就可以新建feature/b分支。

10、拉取代码仍然失败,发现是从空仓库拉下来的,所以这样是行不通的,而且通过命令行也无法实现

git branch --set-upstream-to=origin/master master

11、修复

git fetch origin

只下载远程仓库的所有分支提交记录,不改动你本地文件、不合并代码。

就相当于:把远程仓库的 "目录说明书" 下载到本地,不会修改你当前项目里任何文件

不删分支,直接把现在这个空 master 指向远程提交(一步到位)

powershell

复制代码
git reset --hard origin/master

在你当前 master 分支下执行。 把当前这个空 master 分支指针,直接移动到远程 origin/master 的提交点,工作目录直接下载远程代码。 ⚠️--hard丢弃本地所有未保存修改,你现在是空仓库,无风险。 但是注意:这个命令不会自动设置上游跟踪,所以 IDEA 那个警告还会在,只是代码文件变成远程的内容。

12、验证是否完成绑定

13、新建分支

14、更改代码

15、命令行提交推送

java 复制代码
git add test.java b_feature_note.md
git add:把你改好的文件,从「工作区」放到暂存区。
通俗讲:告诉 git:这两个文件我要纳入本次提交,先登记起来。
只写你要提交的文件名,别的改动文件不会被带进去。

git commit -m "feature/b:完成b分支代码修改"
git commit:把暂存区里面登记好的文件,生成本地提交记录(commit 快照),保存到本地仓库。
-m "xxx":message,填写本次提交说明,写清楚这次改了啥,以后看历史记录用。
⚠️此时只存在你电脑本地,Gitee 远程仓库还看不到这次改动。

git push -u origin feature/b
git push:把本地的提交,上传推送到远程 Gitee。
origin:你的远程仓库别名,就是 gitee 那套地址。
feature/b:本地分支名字。
-u(全称 --set‑upstream,设置上游):只第一次推送新分支要加
作用:把本地feature/b和远程origin/feature/b绑定在一起。绑定完以后下次推送直接敲git push,不用写完整一长串。

16、查看所有分支:现在执行git branch -avv,就能看到所有分支的记录。

17、

相关推荐
燐妤1 小时前
梦绘片场 ProjectDream故事总纲场景剧本篇:从项目到成片的 AI 漫剧工作台
人工智能·git·ai·项目开发
JackieDYH10 小时前
Git 与 GitHub 新电脑配置指南(从零开始)
git·github·工具·使用教程
Jeanyia20 小时前
GitLab 配套 Git 常用命令
git·gitlab
10mAh1 天前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
Lydro1 天前
CentOS 7 安装高版本git
git·centos 7
guwentian1 天前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
不吃鱼的羊2 天前
Git识别未修改的文件有修改
git
蓝黑墨水2 天前
一个git问题的处理
git
互联网中的一颗神经元2 天前
21 — 额外命令:同时开两个窗口、自动检查哨
git