将本地代码上传至Github

步骤一:创建 GitHub 仓库

  1. 登录 GitHub
  2. 点击右上角的 “➕” → “New repository”
  3. 填写仓库名称(Repository name),选择 Public 或 Private
  4. 不要勾选 “Initialize this repository with a README”(因为我们本地已有代码)?
  5. 点击 Create repository

步骤二:在本地初始化 Git 仓库

假设你已经在本地有一个项目文件夹,操作如下:

1
2
cd /path/to/your/project
git init # 初始化本地仓库

设置全局 Git 用户信息

在提交代码前(只需设置一次):

1
2
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub绑定邮箱"

后续删除Git用户信息:

1
2
git config --global --unset user.name
git config --global --unset user.email

你可以用以下命令查看当前有效的设置:

1
git config --list --show-origin

它会显示设置来源:

1
2
file:/home/你的用户/.gitconfig       user.name=xxx                 #全局设置
file:.git/config user.email=xxx@example.com #当前项目设置

添加 .gitignore文件和项目文件到暂存区

  1. 在项目根目录创建 .gitignore 文件,不同语言的模板
  2. 写入你要忽略的规则
  3. 然后执行:
1
2
git add .gitignore  # 添加 .gitignore 文件
git add . # 添加当前目录下项目文件(Git会自动忽略 .gitignore中的条目)(只添加修改了的文件)

提交并推送

1
2
3
4
git commit -m "Initial commit"   # 提交代码,用于记录修改历史
git remote add origin https://github.com/你的用户名/你的仓库名.git
git branch -M main # 可选,把默认分支名改成 main(如果不是)
git push -u origin main #把本地 main 分支推送到远程仓库的 main 分支

后续更新

1
2
3
git add .
git commit -m "你的更新说明"
git push

分支相关操作命令

目的 命令
创建新分支 git branch new-branch
切换到某分支 git checkout branch-name
创建并切换 git checkout -b new-branch
删除本地分支 git branch -d branch-name
强制删除(不合并也删) git branch -D branch-name
重命名当前分支 git branch -m new-name

对比:“本地分支” vs “远程分支”

名称 举例 存在哪里 描述
本地分支 main 你电脑上 你写代码时所在的分支
远程分支 origin/main GitHub 等远程仓库 从远程同步下来的版本(只读)
本地追踪分支 main → origin/main 你电脑上 本地分支与远程分支关联后,push/pull 会自动同步

https://code.visualstudio.com/docs/sourcecontrol/github

其他

克隆远程仓库

1
git clone https://github.com/rpl-cmu/normalflow.git # 将远程仓库克隆到本地

查看当前工作区状态

1
git status # 显示当前文件的修改、暂存和未跟踪状态

查看文件改动内容

1
git diff # 显示工作区与暂存区之间的差异,也可用于比较其他对象之间的差异

添加文件到暂存区并提交

1
git commit -a -m "message"   # 自动将所有已跟踪文件的修改添加到暂存区并提交

分支管理

查看分支列表

1
git branch # 列出所有本地分支,并标记当前所在分支

创建并切换到新分支

1
git checkout -b 新分支名称

切换分支

1
git checkout 分支名称

合并分支:

1
git merge 要合并的分支 # 先切换到目标分支(例如 master),然后合并其他分支

4.5 删除本地分支

1
2
git branch -d 分支名称 # 仅当分支已被合并
git branch -D 分支名称 # 强制删除未合并的分支

4.6 从旧分支创建新分支

1
git checkout -b 新分支名称 旧分支名称

远程操作

查看远程仓库

1
git remote -v

添加远程仓库

1
git remote add origin 仓库地址

推送本地分支到远程

1
git push -u origin 分支名称 # -u参数会将本地分支与远程分支关联起来,后续可以直接使用git push

拉取远程更新

1
2
git pull # 拉取并合并远程仓库的更新
git fetch # 获取远程分支更新(不合井)

删除远程分支

1
git push origin --delete 分支名称

版本历史和日志

查看提交日志

1
2
3
git log
git log --oneline # 以简洁格式显示提交记录
git log --graph --oneline --all # 图形化展示分支结构(分支图谱)

查看某个文件的提交历史

1
git log --<文件名>

其他常用操作

回退到上一次提交

1
2
3
git reset HEAD^ # 保留工作区修改
git reset --soft HEAD^ # 软回退保留修改
git reset --hard HEAD^ # 硬回退,丢弃修改

暂存当前修改

1
2
git stash # 临时存储更改
git stash pop # 恢复暂存的修改

标签

1
2
3
git tag 标签名 # 为当前提交创建标签
git push origin 标签名 # 推送标签到远程
git tag # 查看标签列表

comment:

  • 不建议命令行。即使是现查现用也容易错。常用IDE本身都有Git的图形化操作功能。像VSCode这样的还会有一些额外的插件(推荐Git Graph和Git Lens),还有source tree 更直观
  • GUI 看不懂一点,反而是 CLI 最清晰,还 flex,同事知道你手搓 git 命令之后 PR 上不敢多点一个 comment 或者 block
  • 用小乌龟啊