好的,没问题!Git 的基本操作是每个开发者的必备技能。下面我将为你整理一份清晰、实用的 Git 基本操作指南,从初始配置到日常使用,特别是你提到的分支操作

这份指南分为几个部分:

  1. 核心概念 (必须理解!)
  2. 首次配置 (一次性)
  3. 基础工作流 (每天都用)
  4. 分支操作 (重点)
  5. 远程仓库协作
  6. 撤销操作 (后悔药)
  7. 常用命令速查表

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. 查看状态和提交修改
  1. 查看状态:这是最最常用的命令,随时查看当前仓库的状态。

    git status
    

    它会告诉你哪些文件被修改了、哪些是新增的、哪些文件在暂存区等。

  2. 添加文件到暂存区

    # 添加单个文件
    git add <文件名>
    # 例如: git add main.py
    
    # 添加所有已修改和新建的文件到暂存区
    git add .
    
  3. 提交到本地仓库

    # 提交暂存区的所有内容,并附上提交信息
    git commit -m "这里写本次提交的描述信息,例如:新增用户登录功能"
    

    最佳实践:提交信息 (commit message) 一定要写得清晰明了,说明白这次提交做了什么。


4. 分支操作 (重点)

分支是 Git 的核心魅力所在。它允许你在不影响主线 (通常是 mainmaster 分支) 的情况下开发新功能或修复 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. 合并分支

当你完成了在新分支上的开发,需要把它合并回主线。

  1. 首先,切换回你的目标分支 (例如 main)。
    git switch main
    
  2. 然后,执行合并命令,把新分支的修改合并进来。
    # 将 feature-login 分支合并到当前的 main 分支
    git merge feature-login
    

    注意:合并时可能会出现冲突 (Conflict),这是因为两个分支修改了同一个文件的同一部分。你需要手动解决冲突,然后再次 git addgit 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
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐