一、基础操作
-
git init
:- 含义:在当前目录初始化一个新的 Git 仓库。
- 示例:在一个空文件夹中执行该命令,将创建一个
.git
隐藏文件夹,用于存储仓库的元数据和对象数据库。
-
git clone <repository-url>
:- 含义:从指定的远程仓库 URL 克隆一个完整的 Git 仓库到本地。
- 示例:
git clone https://github.com/username/repo.git
将从给定的 URL 克隆一个名为 "repo" 的仓库到本地。
二、提交相关
-
git add <file>
:- 含义:将指定的文件添加到暂存区,准备进行提交。
- 示例:
git add index.html
将 "index.html" 文件添加到暂存区。可以使用通配符如git add *.js
添加所有的 JavaScript 文件。
-
git commit -m "<message>"
:- 含义:创建一个新的提交,包含暂存区中的所有更改,并附上指定的提交消息。
- 示例:
git commit -m "Add new feature"
创建一个提交,提交消息为 "Add new feature"。
-
git status
:- 含义:显示当前仓库的状态,包括哪些文件被修改、哪些文件已暂存、哪些文件未被跟踪等。
- 示例:执行该命令可以快速了解当前工作目录与 Git 仓库的状态。
三、分支操作
-
git branch
:- 含义:列出本地所有的分支。
- 示例:执行该命令将显示当前仓库中的所有分支名称。
-
git branch <branch-name>
:- 含义:创建一个新的分支。
- 示例:
git branch new-feature
创建一个名为 "new-feature" 的分支。
-
git checkout <branch-name>
:- 含义:切换到指定的分支。
- 示例:
git checkout new-feature
切换到 "new-feature" 分支。
-
git merge <branch-name>
:- 含义:将指定的分支合并到当前分支。
- 示例:在 "master" 分支上执行
git merge new-feature
将把 "new-feature" 分支的更改合并到 "master" 分支。
四、远程仓库操作
-
git remote add <name> <repository-url>
:- 含义:添加一个新的远程仓库别名和 URL。
- 示例:
git remote add origin https://github.com/username/repo.git
将远程仓库命名为 "origin" 并关联给定的 URL。
-
git push <remote-name> <branch-name>
:- 含义:将本地分支推送到指定的远程仓库和分支。
- 示例:
git push origin master
将本地的 "master" 分支推送到名为 "origin" 的远程仓库。
-
git pull <remote-name> <branch-name>
:- 含义:从指定的远程仓库和分支拉取最新的更改并合并到当前分支。
- 示例:
git pull origin master
从 "origin" 远程仓库的 "master" 分支拉取最新更改并合并到本地的 "master" 分支。
五、查看历史和差异
-
git log
:- 含义:显示提交历史记录。
- 示例:执行该命令将列出所有的提交,包括提交者、提交时间和提交消息。
-
git diff <commit1> <commit2>
:- 含义:显示两个提交之间的差异。
- 示例:
git diff HEAD~1 HEAD
显示上一个提交和当前提交之间的差异。
六、其他常用命令
-
git stash
:- 含义:将当前未提交的修改保存起来,以便在需要的时候可以重新应用。
- 示例:当你需要切换分支但又不想提交当前的修改时,可以使用
git stash
保存这些修改,然后在需要的时候使用git stash apply
重新应用。
-
git reset <commit>
:- 含义:将当前分支的 HEAD 指针移动到指定的提交,可用于撤销提交或回到特定的历史状态。
- 示例:
git reset HEAD~1
将 HEAD 指针移动到上一个提交,撤销最近的一次提交。
-
git rebase <branch-name>
:- 含义:将当前分支的提交重新应用到另一个分支的顶部,通常用于整理提交历史。
- 示例:在 "feature" 分支上执行
git rebase master
将把 "feature" 分支的提交重新应用到 "master" 分支的顶部。