将本地代码上传至Github
步骤一:创建 GitHub 仓库
- 登录 GitHub
- 点击右上角的 “➕” → “New repository”
- 填写仓库名称(Repository name),选择 Public 或 Private
- 选择自己代码语言的
.gitignore
- 点击 Create repository
步骤二:在本地初始化 Git 仓库
假设你已经在本地有一个项目文件夹,操作如下:
1 | cd /path/to/your/project |
设置全局 Git 用户信息
在提交代码前(只需设置一次):
1 | git config --global user.name "你的GitHub用户名" |
后续删除Git用户信息:
1 | git config --global --unset user.name |
你可以用以下命令查看当前有效的设置:
1 | git config --list --show-origin |
它会显示设置来源:
1 | file:/home/你的用户/.gitconfig user.name=xxx #全局设置 |
添加 .gitignore
文件和项目文件到暂存区 (add = stage all changes in VsCode)
- 在项目根目录创建
.gitignore
文件,不同语言的模板 - 写入你要忽略的规则
- 然后执行:
1 | git add 文件路径 # 添加某个文件 |
提交并推送
1 | git commit -m "Initial commit" # 提交代码,用于记录修改历史,此时已经保存到本地的master |
[!CAUTION]
使用 用户名+密码 的方式访问 GitHub已经不再允许。也就是:
1
2 git remote add origin https://github.com/你的用户名/你的仓库名.git
git push -u origin main #把本地 main 分支推送到远程仓库的 main 分支不可使用。
替代方案:改用 SSH 方式访问仓库(更方便安全)
生成 SSH key(如果你没有的话):
1
ssh-keygen -t ed25519 -C "your_email@example.com"
把生成的公钥
~/.ssh/id_ed25519.pub
添加到 GitHub:- GitHub → Settings → SSH and GPG keys → New SSH Key
然后用 SSH 地址 clone 或切换 remote:
1
2git remote add origin git@github.com:JenniferWuu/sparsh.git
git push -u origin main #把本地 main 分支推送到远程仓库的 main 分支
后续更新
1 | git add . |
分支相关操作命令
目的 | 命令 |
---|---|
创建新分支 | 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
其他
Git 连接不上 GitHub时
在~/.ssh/config
中完成GitHub 的配置和密钥指定,example:
1 | # GitHub 配置 |
📌 简单说:这段配置让 Git 在执行
1 | ssh git@github.com |
时,实际连接的是 ssh.github.com:443,而不是默认的 github.com:22。
保存后执行:
1 | ssh -T git@github.com |
如果成功,会输出:
1 | Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access. |
克隆远程仓库
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 | 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 | git pull # 拉取并合并远程仓库的更新 |
删除远程分支
1 | git push origin --delete 分支名称 |
版本历史和日志
查看提交日志
1 | git log |
查看某个文件的提交历史
1 | git log --<文件名> |
其他常用操作
回退到上一次提交
1 | git reset HEAD^ # 保留工作区修改 |
暂存当前修改
1 | git stash # 临时存储更改 |
标签
1 | git tag 标签名 # 为当前提交创建标签 |
comment:
- 不建议命令行。即使是现查现用也容易错。常用IDE本身都有Git的图形化操作功能。像VSCode这样的还会有一些额外的插件(推荐Git Graph和Git Lens),还有source tree 更直观
- GUI 看不懂一点,反而是 CLI 最清晰,还 flex,同事知道你手搓 git 命令之后 PR 上不敢多点一个 comment 或者 block
- 用小乌龟啊
- git单次上传小于2GB
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.