git基本操作,比如创建分支,提交分支到远程
Git 基本操作指南摘要: 本文介绍了 Git 的核心概念和日常操作流程。主要内容包括: 核心概念:工作区、暂存区和本地仓库的关系 首次配置:设置用户名和邮箱 基础工作流:初始化/克隆项目、添加文件、提交修改 分支操作:创建/切换/合并/删除分支 远程协作:推送和拉取远程仓库 撤销操作:工作区、暂存区和提交的撤销方法 常用命令速查表 重点讲解了分支管理技巧,包括创建分支(git switch -c
好的,没问题!Git 的基本操作是每个开发者的必备技能。下面我将为你整理一份清晰、实用的 Git 基本操作指南,从初始配置到日常使用,特别是你提到的分支操作。
这份指南分为几个部分:
- 核心概念 (必须理解!)
- 首次配置 (一次性)
- 基础工作流 (每天都用)
- 分支操作 (重点)
- 远程仓库协作
- 撤销操作 (后悔药)
- 常用命令速查表
1. 核心概念 (必须理解!)
为了更好地理解命令,先花一分钟了解 Git 的三个区域:
- 工作区 (Working Directory):你电脑上能看到的项目文件夹,你在这里进行代码的增删改查。
- 暂存区 (Staging Area / Index):一个临时的存储区域,用于存放你希望下一次提交 (commit) 的内容。
git add命令就是把工作区的修改放入暂pre存区。 - 本地仓库 (Local Repository):保存了项目所有版本历史的地方。
git commit命令就是把暂存区的内容生成一个新版本,并存入本地仓库。
流程图示:工作区 --(git add)–> 暂存区 --(git commit)–> 本地仓库
2. 首次配置 (一次性)
在你第一次使用 Git 时,需要配置你的用户名和邮箱,这会作为你提交代码的身份标识。
# 配置你的用户名
git config --global user.name "Your Name"
# 配置你的邮箱
git config --global user.email "your.email@example.com"
3. 基础工作流 (每天都用)
这是最常见的 Git 使用流程。
a. 创建或获取项目
方式一:初始化一个新仓库 (在你自己的项目文件夹里)
# 进入你的项目文件夹
cd /path/to/your/project
# 初始化 Git 仓库
git init
方式二:克隆一个远程仓库 (从 GitHub/GitLab 等地方获取项目)
# 克隆远程项目到本地
git clone https://github.com/user/repo.git
b. 查看状态和提交修改
-
查看状态:这是最最常用的命令,随时查看当前仓库的状态。
git status它会告诉你哪些文件被修改了、哪些是新增的、哪些文件在暂存区等。
-
添加文件到暂存区
# 添加单个文件 git add <文件名> # 例如: git add main.py # 添加所有已修改和新建的文件到暂存区 git add . -
提交到本地仓库
# 提交暂存区的所有内容,并附上提交信息 git commit -m "这里写本次提交的描述信息,例如:新增用户登录功能"最佳实践:提交信息 (commit message) 一定要写得清晰明了,说明白这次提交做了什么。
4. 分支操作 (重点)
分支是 Git 的核心魅力所在。它允许你在不影响主线 (通常是 main 或 master 分支) 的情况下开发新功能或修复 Bug。
a. 查看分支
# 列出所有本地分支,当前分支会用 * 标记
git branch
b. 创建分支
# 创建一个名为 feature-login 的新分支
git branch feature-login
注意:这个命令只创建了分支,你当前还停留在原来的分支上。
c. 切换分支
# 切换到 feature-login 分支
git switch feature-login
# 或者使用旧的命令 (也很常用)
git checkout feature-login
d. 创建并立即切换到新分支 (常用快捷方式)
这是一个非常高效的命令,相当于 git branch <分支名> + git switch <分支名>。
# 创建并切换到新分支 dev-new-feature
git switch -c dev-new-feature
# 或者使用旧的命令
git checkout -b dev-new-feature
e. 合并分支
当你完成了在新分支上的开发,需要把它合并回主线。
- 首先,切换回你的目标分支 (例如
main)。git switch main - 然后,执行合并命令,把新分支的修改合并进来。
# 将 feature-login 分支合并到当前的 main 分支 git merge feature-login注意:合并时可能会出现冲突 (Conflict),这是因为两个分支修改了同一个文件的同一部分。你需要手动解决冲突,然后再次
git add和git commit。
f. 删除分支
当一个分支的工作已经完成并合并后,通常可以删掉它了。
# 删除已合并的分支
git branch -d feature-login
# 如果分支有没有合并的修改,但你确定要强行删除
git branch -D feature-login
5. 远程仓库协作
本地仓库的修改需要推送到远程仓库 (如 GitHub),才能和团队成员共享。
a. 查看远程仓库
# 查看已配置的远程仓库地址
git remote -v
b. 推送本地修改到远程仓库
# 将本地的 main 分支推送到名为 origin 的远程仓库
git push origin main
# 如果是第一次推送一个新建的本地分支,需要设置上游(upstream)
git push --set-upstream origin dev-new-feature
# 之后再推送该分支时,只需 git push 即可
c. 从远程仓库拉取更新
# 从远程仓库拉取最新的修改并自动合并到当前分支
git pull origin main
git pull相当于git fetch(拉取) +git merge(合并)。
6. 撤销操作 (后悔药)
a. 撤销工作区的修改
如果你修改了一个文件但还没 git add,想撤销修改。
# 撤销对单个文件的修改,恢复到最近一次 commit 的状态
git restore <文件名>
b. 从暂存区撤销
如果你 git add 了一个文件,但后悔了,想把它从暂存区拿出来。
# 将文件从暂存区撤销,但保留工作区的修改
git restore --staged <文件名>
c. 修改最后一次提交
如果你刚刚 commit,但发现提交信息写错了,或者漏掉了一个文件。
# 如果只是修改提交信息
git commit --amend -m "新的正确的提交信息"
# 如果是漏了文件
git add <漏掉的文件>
git commit --amend
警告:如果你的提交已经
push到了远程仓库,请不要使用--amend,因为它会修改提交历史。
7. 常用命令速查表
| 用途 | 命令 |
|---|---|
| 配置 | git config --global user.name/email "..." |
| 创建 | git init / git clone <url> |
| 状态检查 | git status |
| 添加文件 | git add <file> / git add . |
| 提交 | git commit -m "message" |
| 查看历史 | git log / git log --oneline --graph |
| 查看分支 | git branch |
| 创建分支 | git branch <name> |
| 切换分支 | git switch <name> / git checkout <name> |
| 创建并切换 | git switch -c <name> / git checkout -b <name> |
| 合并分支 | git merge <name> |
| 删除分支 | git branch -d <name> |
| 推送到远程 | git push <remote> <branch> |
| 拉取并合并 | git pull <remote> <branch> |
| 撤销工作区 | git restore <file> |
| 撤销暂存区 | git restore --staged <file> |
希望这份指南对你有帮助!多操作,多练习,很快就能上手!
实践
创建main分支,并push到远程origin main分支:
E:\comatework\novel_reader_helper>git branch -a
* master
E:\comatework\novel_reader_helper>git switch -c main
Switched to a new branch 'main'
E:\comatework\novel_reader_helper>git branch -a
* main
master
E:\comatework\novel_reader_helper>git push -u origin main
上传成功
git push -u origin main
warning: redirecting to https://gitcode.com/skywalk163/novel_reader_helper.git/
Enumerating objects: 48, done.
Counting objects: 100% (48/48), done.
Delta compression using up to 24 threads
Compressing objects: 100% (47/47), done.
Writing objects: 100% (48/48), 271.83 KiB | 4.94 MiB/s, done.
Total 48 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Start Git Hooks Checking [PASSED]
To https://gitcode.com/skywalk163/novel_reader_helper
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
问题解惑
git init之后,它怎么知道我是连github还是gitcode?
需要将本地和远程关联起来,用命令
git remote add origin https://github.com/yourname/yourrepo.git
已经设置好远端关联,怎么改成另一个? 比如先关联了github,怎么修改成gitcode?
可以采用先删后加的方法。先查看远端
git remote -v
然后进行删除、添加:
#删除:
git remote remove origin
#重新添加:
git remote add origin https://gitcode.net/USERNAME/REPO.git
如何同时配置多个远程:
同时配置多个远程:
# 例如分别添加
git remote add github https://github.com/USERNAME/REPO.git
git remote add gitcode https://gitcode.net/USERNAME/REPO.git
# 推送到指定平台:
git push github main
git push gitcode main
#或者给同一个远程设置多个push地址(一次推送到两边):
git remote set-url --add --push origin https://github.com/USERNAME/REPO.git
git remote set-url --add --push origin https://gitcode.net/USERNAME/REPO.git
更多推荐



所有评论(0)