[GIT]常用基本操作

Git 是一个分布式版本控制系统,用于跟踪文件的更改,协助团队协作开发软件项目。

1. 初始化 Git 仓库

要使用 Git 跟踪项目,首先需要将项目目录初始化为 Git 仓库。

1
git init

这会在当前目录下创建一个隐藏的 .git 文件夹,用于存储版本控制相关的数据。

2. 克隆远程仓库

如果已有远程仓库,可以通过 git clone 命令将其复制到本地:

1
git clone https://github.com/username/repo.git

这会将远程仓库下载到当前目录,并创建一个同名文件夹。

3. 查看仓库状态

使用 git status 查看当前仓库的状态,比如哪些文件被修改了、哪些文件处于暂存区等。

1
git status

这会显示未跟踪文件、已修改文件和暂存区的文件。

4. 跟踪新文件

要将新文件添加到 Git 的跟踪列表中,使用 git add 命令:

1
git add <filename>

也可以一次性添加所有文件:

1
git add .

这会将当前目录下的所有修改和新文件添加到暂存区。

5. 提交更改

一旦添加了文件到暂存区,可以使用 git commit 来提交这些更改。每次提交都会记录一条历史记录,可以随时查看和恢复。

1
git commit -m "Commit message describing the changes"

-m 后跟的消息应简要描述这次提交的更改内容。

6. 查看提交历史

使用 git log 命令可以查看仓库的提交历史:

1
git log

这会显示提交的哈希值、作者、日期和提交消息。如果想查看简化的日志,可以使用 --oneline 选项:

1
git log --oneline

7. 创建分支

在 Git 中,分支用于并行开发不同的功能。可以创建一个新的分支来开发一个新功能:

1
git checkout -b <branch-name>

这会创建并切换到一个新的分支。如果你只想切换分支而不创建新分支,可以使用:

1
git checkout <branch-name>

8. 推送到远程仓库

将本地的提交推送到远程仓库,以便与团队成员共享代码:

1
git push origin <branch-name>

例如,如果想将 main 分支的更改推送到远程仓库:

1
git push origin main

9. 拉取远程仓库的更改

使用 git pull 从远程仓库拉取最新的更改并合并到当前分支:

1
git pull origin <branch-name>

例如,从 main 分支拉取远程仓库的最新更改:

1
git pull origin main

10. 暂存工作(Stashing)

如果正在处理一些代码更改,但还不想提交这些更改,而又想切换到另一个分支或做其他事情,可以使用 git stash 将工作区的更改暂存起来:

1
git stash

之后可以使用 git stash apply 恢复暂存的工作:

1
git stash apply

11. 查看差异

要查看文件的更改内容,可以使用 git diff 命令:

1
git diff

这会显示自上次提交以来的更改内容。

12. 还原更改

在 Git 中,还原代码或撤销更改是非常常见的操作,无论是恢复某个文件的状态,还是撤销某次提交,Git 都提供了多个方式来安全、灵活地操作项目历史。以下是 Git 中常用的还原和撤销操作的详细介绍。

12.1 撤销未提交的更改

还原工作区的修改

如果修改了文件,但还没有提交(即文件还未加入暂存区或已经暂存但未提交),可以将它们恢复到上次提交时的状态:

1
git checkout -- <filename>

这个命令会丢弃文件中的所有未提交的更改,恢复为上一次提交时的版本。如果想还原多个文件,也可以直接用 . 表示当前目录下的所有文件:

1
git checkout -- .
撤销已暂存的更改

如果已经通过 git add 将文件添加到暂存区,但你想撤销这个操作,可以使用 git reset

1
git reset <filename>

这会将文件从暂存区移出,但保留文件的更改。此时,可以再次编辑文件或选择不提交这些更改。

还原整个工作目录

如果想撤销所有未提交的更改(包括暂存区和未暂存的文件),可以使用 git resetgit checkout 的组合:

1
git reset --hard HEAD

这会将整个工作区还原为最后一次提交的状态,所有未提交的更改都会丢失。

12.2 撤销已提交的更改

修改最近的提交

如果已经提交了更改,但发现提交信息有误或文件遗漏,可以使用 git commit --amend 来修改最近一次的提交:

1
git commit --amend

这会打开编辑器,允许修改提交消息,或者可以添加更多的文件到该提交。如果想改动的是最近一次提交的内容而不是消息,可以先用 git add 再执行 git commit --amend

回滚到指定提交

如果想撤销一个或多个提交,可以使用 git reset 命令。git reset 有多个选项,根据需要选择合适的方式:

  • 软重置(--soft:只移动提交指针,保留所有文件的修改状态和暂存状态。

    1
    git reset --soft <commit>

    这样可以回到某个提交,但保留所有更改在暂存区,之后可以重新提交。

  • 混合重置(--mixed,默认):回到指定的提交,但保留文件的更改,只是将其移出暂存区。

    1
    git reset --mixed <commit>
  • 硬重置(--hard:彻底回滚到指定的提交,删除所有未提交的更改,工作目录会与指定的提交完全一致。

    1
    git reset --hard <commit>
撤销某次提交但保留更改

有时候不想彻底回到之前的某个提交,而只是想撤销某个提交的影响,但保留它的内容供重新修改。这种情况下可以使用 git revert

  • 回滚单个提交

    1
    git revert <commit>

    这会生成一个新的提交,撤销指定提交的内容,但不会改变提交历史。

删除最近的提交

如果想删除最新的一个或多个提交(且不保留更改),可以使用 git reset 的硬重置:

1
git reset --hard HEAD~1

这会删除最近的提交,HEAD~1 表示倒退一个提交。如果删除多个提交,可以使用 HEAD~n,其中 n 是想删除的提交数。

12.3 还原已删除的文件

如果不小心删除了一个文件,但没有提交这个删除操作,可以使用 git checkout 恢复文件:

1
git checkout -- <filename>

这个命令会将文件恢复到上一次提交时的状态。

如果已经提交了文件删除操作,但想恢复该文件,可以通过 git resetgit revert 撤销删除操作,或者通过以下命令恢复特定的已删除文件:

1
git checkout <commit> -- <filename>

这个命令会将文件恢复到指定提交时的状态。

12.4 暂存工作并稍后恢复

当在进行某些更改时,突然需要切换到其他分支或处理其他任务,但不想提交当前的更改,可以使用 git stash 暂存这些未完成的工作。

1
git stash

这会将当前的所有未提交更改(包括暂存和未暂存的内容)暂存起来,工作目录会恢复到干净状态。

当想恢复这些工作时,使用 git stash apply

1
git stash apply

这会将暂存的更改恢复到工作目录。

12.5 查看提交的历史记录

可以使用 git log 命令查看仓库的历史提交记录:

1
git log

如果需要查看某个文件在不同提交间的变动,可以使用 git log 加上文件名:

1
git log <filename>

这会显示与该文件相关的所有提交。

12.6 查看文件差异

使用 git diff 可以查看工作区和暂存区的文件差异:

  • 查看工作区和暂存区的差异

    1
    git diff
  • 查看暂存区和上次提交的差异

    1
    git diff --cached
  • 查看某次提交的更改

    1
    git diff <commit>

12.7 强制推送还原

如果已经推送了错误的提交到远程仓库,并且需要还原远程仓库的状态,可以使用 git push 的强制推送选项(注意:这会覆盖远程仓库的历史,需要谨慎使用):

1
git push --force

这种操作适用于紧急情况下的错误修复,且需要团队协作时的额外沟通,以避免其他开发者的工作被覆盖。

13. 克隆、推送和拉取常用流程

  1. 克隆仓库

    1
    git clone https://github.com/username/repo.git
  2. 拉取最新代码

    1
    git pull origin main
  3. 进行开发、提交

    1
    2
    git add .
    git commit -m "Add new feature"
  4. 推送到远程仓库

    1
    git push origin main

[GIT]常用基本操作
https://erlsrnby04.github.io/2024/10/21/GIT-常用基本操作/
作者
ErlsrnBy04
发布于
2024年10月21日
许可协议