1. 用户配置

1.1 安装git

下载地址:

https://git-scm.com/download/win

验证安装

git --version

1.2 配置用户信息

Git 需要知道你的身份才能提交代码

配置用户名

git config --global user.name "你的用户名"

配置邮箱,邮箱使用GitHub账号关联的邮箱,提交记录会显示在你的GitHub贡献图上

git config --global user.email "你的邮箱@example.com"

验证配置

git config --list

1.3 生成SSH密钥

SSH密钥用于安全的连接GitHub,避免每次都输入密码

生成SSH密钥

ssh-keygen -t ed25519 -C "你的邮箱@example.com"

执行过程

PS> ssh-keygen -t ed25519 -C "achen@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\xxx/.ssh/id_ed25519):

一直按Enter

查看公钥内容

cat ~/.ssh/id_ed25519.pub

输出这个示例

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... achen@example.com

复制上面的整个内容

1.4 添加SSH到GitHub

测试链接

ssh -T git@github.com

首次连接会提示

The authenticity of host 'github.com' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

输入yes并回车,成功的会话显示

Hi x-Achan! You've successfully authenticated, but GitHub does not provide shell access.

1.5 始化本地仓库

进入项目目录后

初始化Git仓库(不要在已有git仓库中再执行git init,会丢失远程仓库关联)

git init

输出

Initialized empty Git repository in D:/JavaProjects/.../Tankgame_v2/.git/

查看状态

git status

会显示所有未跟踪的文件(红色)

2.提交代码到GitHub仓库

 2.1 添加所有文件到暂存区

git add .

添加指定文件

git add Main.java
git add src/

查看状态

git status

现在文件应该都是绿色的(已暂存)

2.2 提交到本地仓库

git commit -m "提交说明"

引号中的内容自定义

2.3 重命名分支(可选但推荐)

将本地默认分支改为 main

git branch -M main

2.4 关联远程仓库

添加远程仓库

git remote add origin git@github.com:x-Achan/TankGame.git

验证

git remote -v

输出

origin  git@github.com:x-Achan/TankGame.git (fetch)
origin  git@github.com:x-Achan/TankGame.git (push)

2.5 首次推送(处理远程已有文件)

如果 GitHub 仓库已经有文件(如 README.md),需要先拉取合并

git pull origin main --allow-unrelated-histories

如果直接覆盖原本的仓库,不需要拉取pull

这会打开Vim编辑器,输入以下内容退出:

:wq

2.6 推送到 GitHub

git push -u origin main

-u 参数:建立本地分支与远程分支的跟踪关系

origin:远程仓库的别名(简称)

        origin不是关键字,只是一个约定俗称的名字

        你可以改成任意名字,比如github、myrepo

常用操作

# 添加远程仓库(别名为 origin)
git remote add origin git@github.com:x-Achan/TankGame.git

# 修改远程地址
git remote set-url origin 新地址

# 删除远程仓库关联
git remote remove origin

# 查看所有远程仓库
git remote -v

main 参数:指定要推送的本地分支名称

完整含义:

git push <远程仓库> <本地分支>

查看分支:

# 查看本地分支
git branch
  * main

# 查看远程分支
git branch -r
  origin/main

# 查看所有分支
git branch -a
  * main
    remotes/origin/main

首次推送可能会遇到提示

The authenticity of host 'github.com' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入yes并回车

推送成功显示

Enumerating objects: 98, done.
Counting objects: 100% (98/98), done.
...
To github.com:x-Achan/TankGame.git
   968df75..9bfec58  main -> main
branch 'main' set up to track 'origin/main'.

刷新GitHub网页,查看上传的网页

普通推送,会检查远程分支是否比本地新,如果远程有新的提交,会拒绝推送并要求先合并,不会覆盖别人的工作

git push

强制推送,用本地分支完全覆盖远程分支,覆盖远程的所有历史,危险操作,可能永久丢失别人的提交

git push -f

3. 后续更新代码

3.1 日常开发流程

# 1. 修改代码(在你的编辑器中)

# 2. 查看修改了哪些文件,查看commit了那些文件
git status

# 3. 添加修改到暂存区
git add .
# 或者添加指定文件:git add Main.java GameConfig.java

# 4. 提交到本地仓库
git commit -m "描述你做了什么修改"
# 示例:git commit -m "修复坦克移动bug"

# 5. 推送到 GitHub
git push

因为首次推送时使用了 -u 参数,以后直接 git push就行,不需要再写 orgin main

3.2 批量提交示例

# 修改了多个文件后
git add .
git commit -m "v2.1 更新日志:
- 新增敌方坦克AI
- 优化碰撞检测
- 修复地图加载bug"
git push

4. 版本标签管理

4.1 创建版本标签

当你完成一个重要版本时,可以打标签标记:

# 创建轻量标签
git tag v1.0

# 创建带注释的标签(推荐)
git tag -a v1.0 -m "TankGame v1.0 正式发布"

4.2 推送标签到GitHub

# 推送单个标签
git push origin v1.0

# 推送所有标签
git push origin --tags

4.3 查看标签

# 查看所有标签
git tag -l

# 查看特定标签信息
git show v1.0

4.4 切换到历史版本

# 查看某个版本的代码
git checkout v1.0

# 回到主分支
git checkout main

4.5 版本管理示例

# 完成 v1.0 开发
git add .
git commit -m "完成 v1.0"
git tag -a v1.0 -m "TankGame v1.0"
git push origin main v1.0

# 继续开发 v2.0
# ... 编写代码 ...

git add .
git commit -m "完成 v2.0 新功能"
git tag -a v2.0 -m "TankGame v2.0 - 新增多人模式"
git push origin main v2.0

5. 常用命令速查

6. 推荐的工作流

个人项目开发流程

1. 创建 GitHub 仓库
   ↓
2. 本地 git init
   ↓
3. 开发功能
   ↓
4. git add . && git commit -m "说明"
   ↓
5. 重复步骤 3-4
   ↓
6. 完成版本 → git tag -a v1.0 -m "说明"
   ↓
7. git push origin main v1.0  //同时推送到main分支 和 v1.0标签
   ↓
8. 继续下一个版本...

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐