1. 仓库操作

初始化仓库

git init

在当前目录下创建一个新的 Git 仓库。

克隆远程仓库

git clone <远程仓库地址> [本地目录名]

例如 git clone https://github.com/user/repo.git myrepo 会将远程仓库克隆到本地的 myrepo 目录。

设置用户名和邮箱

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

设置全局的 HTTP 代理

git config --global http.proxy http://127.0.0.1:[port]
git config --global https.proxy http://127.0.0.1:[port]

查看配置信息

git config --list

2. 文件操作

添加文件到暂存区

git add <文件路径>

可添加单个文件,也可使用 . 来添加当前目录下的所有文件,如 git add .

从暂存区移除文件

git rm --cached <文件路径>

该操作只是将文件从暂存区移除,不会删除本地文件。

移动或重命名文件

git mv <原文件路径> <新文件路径>

3. 提交操作

提交暂存区的文件到本地仓库

git commit -m "提交说明"

使用 -a 选项可以将所有已跟踪文件的修改直接提交,无需先 git add,如 git commit -am "更新代码"

修改上一次提交

git commit --amend -m "新的提交说明"

如果修改了文件内容,还可以在 --amend 时将新修改的内容合并到上一次提交中。

4. 查看状态和日志

查看文件状态

git status

显示工作区、暂存区文件的状态,如哪些文件被修改、添加或删除。

查看提交日志

git log

显示详细的提交历史,可使用 --oneline 选项简化输出,如 git log --oneline

查看文件修改差异

git diff

查看工作区与暂存区文件的差异;使用 git diff --staged 查看暂存区与最新提交的差异。

5. 分支管理

查看分支

git branch

列出本地分支;使用 -r 查看远程分支,-a 查看所有分支。

创建分支

git branch <分支名>

例如 git branch new-feature 创建一个名为 new-feature 的分支。

切换分支

git checkout <分支名>

使用 -b 选项可以创建并切换到新分支,如 git checkout -b new-feature

合并分支

git merge <要合并进来的分支名>

例如在 master 分支上执行 git merge new-feature 会将 new-feature 分支的修改合并到 master 分支。

删除分支

git branch -d <分支名>

使用 -D 选项可以强制删除未合并的分支。

6. 远程仓库交互

添加远程仓库

git remote add <远程仓库别名> <远程仓库地址>

常见的别名是 origin,如 git remote add origin https://github.com/user/repo.git

修改远程仓库

git remote set-url <远程仓库别名> <远程仓库地址>

查看远程仓库信息

git remote -v

显示远程仓库的别名和对应的地址。

从远程仓库拉取代码

git pull <远程仓库别名> <分支名>

例如 git pull origin masterorigin 远程仓库的 master 分支拉取代码并合并到本地。

推送本地代码到远程仓库

git push <远程仓库别名> <分支名>

git push origin master 将本地 master 分支的代码推送到 origin 远程仓库的 master 分支。

删除远程分支

git push <远程仓库别名> --delete <分支名>

例如 git push origin --delete new-feature 删除 origin 远程仓库的 new-feature 分支。

7. 标签管理

创建标签

git tag <标签名>

创建轻量级标签;使用 -a 选项可以创建带注释的标签,如 git tag -a v1.0 -m "版本 1.0 发布"

查看标签

git tag

列出所有标签;使用 git show <标签名> 查看标签的详细信息。

推送标签到远程仓库

git push <远程仓库别名> <标签名>

若要推送所有标签,使用 git push <远程仓库别名> --tags

删除本地标签

git tag -d <标签名>

删除远程标签

git push <远程仓库别名> --delete <标签名>

8. 撤销操作

撤销工作区的修改

git checkout -- <文件路径>

将文件恢复到上一次提交时的状态。

撤销暂存区的文件

git reset HEAD <文件路径>

将文件从暂存区移除,但保留工作区的修改。

回退到指定提交

git reset --hard <提交哈希值>

--hard 选项会同时修改工作区和暂存区;使用 --soft 只修改提交历史,不改变暂存区和工作区。

9. 贮藏操作

贮藏当前修改

git stash

将工作区和暂存区的修改贮藏起来,使工作区回到干净状态。

查看贮藏列表

git stash list

应用贮藏

git stash apply [贮藏编号]

不指定贮藏编号则应用最近一次的贮藏;使用 git stash pop 应用并删除贮藏。

删除贮藏

git stash drop [贮藏编号]

不指定编号则删除最近一次的贮藏。

10. 其他命令

查找包含特定内容的提交

git log -S "<查找内容>"

显示某个文件的修改历史

git blame <文件路径>

显示文件每行内容的最后修改者和提交信息。

这些命令涵盖了 Git 日常使用的大部分场景,你可以根据具体需求灵活运用它们来进行高效的版本控制。