Git 命令大全:全面详解
Git 是目前最流行的分布式版本控制系统,被广泛应用于软件开发中。无论是个人项目还是团队协作,掌握 Git 命令可以帮助你更有效地管理代码版本和协作开发。本文将详细介绍常用的 Git 命令,涵盖从基础操作到高级使用场景。
一、Git 基础命令
1. 初始化仓库
git init
用于在当前目录下初始化一个新的 Git 仓库。
复制代码
git init
git clone <repository>
从远程仓库克隆一个项目到本地。
复制代码
git clone https://github.com/user/repository.git
2. 配置 Git 用户信息
git config --global user.name "Your Name"
设置全局用户名。
复制代码
git config --global user.name "Your Name"
设置全局用户邮箱。
复制代码
git config --global user.email "[email protected]"
git config --list
查看所有配置。
复制代码
git config --list
3. 查看仓库状态
git status
查看当前仓库的状态,显示有哪些文件发生了变化、哪些文件需要提交。
复制代码
git status
4. 添加文件到暂存区
git add <file>
添加指定文件到暂存区。
复制代码
git add README.md
git add .
添加当前目录下的所有变化到暂存区。
复制代码
git add .
5. 提交更改
git commit -m "commit message"
提交暂存区中的更改,并添加提交信息。
复制代码
git commit -m "Initial commit"
git commit -a -m "commit message"
将所有已跟踪的文件的更改提交(包括未暂存的变化),并添加提交信息。
复制代码
git commit -a -m "Updated files"
6. 查看提交历史
git log
显示提交历史的日志信息。
复制代码
git log
git log --oneline --graph
以图形化方式显示简洁的提交历史。
复制代码
git log --oneline --graph
二、分支管理
1. 创建和切换分支
git branch <branch-name>
创建新分支。
复制代码
git branch feature-branch
git checkout <branch-name>
切换到指定分支。
复制代码
git checkout feature-branch
git checkout -b <branch-name>
创建并切换到新分支。
复制代码
git checkout -b new-feature
2. 合并分支
git merge <branch-name>
将指定分支的内容合并到当前分支。
复制代码
git merge feature-branch
3. 删除分支
git branch -d <branch-name>
删除本地分支。如果分支未被合并,Git 会阻止删除操作。
复制代码
git branch -d feature-branch
git branch -D <branch-name>
强制删除本地分支,无论是否合并。
复制代码
git branch -D feature-branch
4. 查看分支
git branch
查看本地分支列表,当前分支会标有 *
。
复制代码
git branch
git branch -a
查看本地和远程的所有分支。
复制代码
git branch -a
三、远程仓库操作
1. 查看远程仓库
git remote
查看配置的远程仓库。
复制代码
git remote
git remote -v
查看远程仓库的详细信息,包括 fetch
和 push
的 URL。
复制代码
git remote -v
2. 添加远程仓库
git remote add <name> <url>
添加一个新的远程仓库。
复制代码
git remote add origin https://github.com/user/repository.git
3. 推送到远程仓库
git push <remote> <branch>
将本地分支推送到远程仓库。
复制代码
git push origin main
git push -u <remote> <branch>
推送并设置默认上游分支,以后可以直接用 git push
推送。
复制代码
git push -u origin main
4. 拉取远程仓库的变化
git pull <remote>
拉取远程仓库的最新变化并合并到当前分支。
复制代码
git pull origin main
git fetch <remote>
从远程仓库拉取最新的变化但不合并。
复制代码
git fetch origin
四、标签管理
1. 创建标签
git tag <tag-name>
为当前分支的最新提交创建一个标签。
复制代码
git tag v1.0.0
git tag -a <tag-name> -m "message"
创建带有注释的标签。
复制代码
git tag -a v1.0.0 -m "Initial release"
2. 查看标签
git tag
查看所有标签。
复制代码
git tag
git show <tag-name>
查看指定标签的详细信息。
复制代码
git show v1.0.0
3. 推送标签到远程仓库
git push <remote> <tag-name>
将指定标签推送到远程仓库。
复制代码
git push origin v1.0.0
推送所有标签到远程仓库。
复制代码
git push --tags
4. 删除标签
git tag -d <tag-name>
删除本地标签。
复制代码
git tag -d v1.0.0
git push <remote> --delete <tag-name>
删除远程仓库的标签。
复制代码
git push origin --delete v1.0.0
五、查看与比较
1. 查看提交差异
git diff
查看工作区与暂存区之间的差异。
复制代码
git diff
git diff --staged
查看暂存区与最后一次提交之间的差异。
复制代码
git diff --staged
git diff <branch1>..<branch2>
比较两个分支之间的差异。
复制代码
git diff main..feature-branch
2. 查看文件历史
git log <file>
查看指定文件的提交历史。
复制代码
git log README.md
git blame <file>
查看文件每一行的提交者和修改时间。
复制代码
git blame README.md
3. 撤销操作
git checkout -- <file>
撤销工作区中对指定文件的更改。
复制代码
git checkout -- README.md
git reset HEAD <file>
取消暂存区中的更改。
复制代码
git reset HEAD README.md
git revert <commit>
还原指定提交,并生成一个新的提交。
复制代码
git revert 123abc
git reset --hard <commit>
将当前分支重置到指定提交,同时重置工作区和暂存区的状态。
复制代码
git reset --hard 123abc
六、暂存与恢复
1. 暂存修改
git stash
暂存当前工作区的修改。
复制代码
git stash
git stash save "message"
使用描述信息暂存修改。
复制代码
git stash save "WIP: unfinished work"
2. 查看和恢复暂存
git stash list
查看暂存列表。
复制代码
git stash list
git stash apply
应用最近一次暂存的内容。
复制代码
git stash apply
git stash pop
应用最近一次暂存的内容并删除该暂存。
复制代码
git stash pop
git stash drop <stash>
删除指定的暂存。
复制代码
git stash drop stash@{0}
七、Git 高级命令
1. 修改最后一次提交
git commit --amend
修改最后一次提交的提交信息或追加更改。
复制代码
git commit --amend -m "Updated commit message"
2. Rebase 操作
git rebase <branch>
将当前分支的提交应用到指定分支的基础之上。
复制代码
git rebase main
git rebase -i <commit>
交互式 rebase,可以合并、重排、删除历史提交。
复制代码
git rebase -i HEAD~3
3. Cherry-pick 操作
git cherry-pick <commit>
将指定提交的更改应用到当前分支。
复制代码
git cherry-pick 123abc
4. 变基冲突解决
git rebase --continue
继续进行 rebase,通常在解决冲突后使用。
复制代码
git rebase --continue
git rebase --abort
取消当前的 rebase 操作,恢复到 rebase 前的状态。
复制代码
git rebase --abort
八、Git 与 GitHub 协作
1. 生成 SSH 密钥
生成 SSH 密钥,用于与 GitHub 进行安全通信。
复制代码
ssh-keygen -t rsa -b 4096 -C "[email protected]"
2. 添加远程仓库 URL
git remote set-url origin <new-url>
修改现有远程仓库的 URL。
复制代码
git remote set-url origin [email protected]:user/repository.git
3. Fork 和 Pull Request
Fork 项目
在 GitHub 上 Fork 你想要参与的项目。
git remote add upstream <url>
为 Fork 的仓库添加上游仓库。
复制代码
git remote add upstream https://github.com/original/repository.git
git fetch upstream
获取上游仓库的最新更改。
复制代码
git fetch upstream
git merge upstream/main
将上游仓库的更改合并到本地分支。
复制代码
git merge upstream/main
Pull Request
在 GitHub 上发起 Pull Request,提交你对原始项目的贡献。
九、总结
掌握 Git 命令是开发人员必备的技能之一,从项目初始化、分支管理、远程协作到高级操作,Git 提供了丰富的工具来帮助开发者高效管理代码。本文介绍的命令只是 Git 功能的一部分,通过不断实践和探索,你将能够更灵活地运用 Git 进行版本控制和团队协作。