Git常用命令及用途

Git 是现代软件开发中不可或缺的版本控制工具,掌握其常用命令对于高效协作和代码管理至关重要。以下是一些常见的 Git 命令及其用途:
1. 初始化与克隆
git init
:在当前目录初始化一个新的 Git 仓库。git clone <repository>
:克隆一个远程仓库到本地。
2. 基本操作
git status
:查看工作区和暂存区的状态。git add <file>
:将文件添加到暂存区。git commit -m "<message>"
:提交暂存区的更改,并附上提交信息。git log
:查看提交历史。git diff
:查看工作区与暂存区的差异。
3. 分支管理
git branch
:列出所有本地分支。git branch <branch-name>
:创建一个新分支。git checkout <branch-name>
:切换到指定分支。git merge <branch-name>
:将指定分支合并到当前分支。git rebase <branch-name>
:将当前分支的更改重新应用到指定分支上。
4. 远程操作
git remote -v
:查看远程仓库信息。git fetch
:从远程仓库获取最新更改,但不合并。git pull
:从远程仓库获取最新更改并合并到当前分支。git push <remote> <branch>
:将本地分支的更改推送到远程仓库。
5. 撤销与回退
git reset <file>
:将文件从暂存区撤回到工作区。git reset --hard <commit>
:回退到指定提交,丢弃所有更改。git revert <commit>
:创建一个新的提交,撤销指定提交的更改。
6. 标签管理
git tag
:列出所有标签。git tag <tag-name>
:在当前提交上创建一个轻量标签。git tag -a <tag-name> -m "<message>"
:创建一个带注释的标签。git push <remote> <tag-name>
:将标签推送到远程仓库。
7. 暂存与清理
git stash
:将当前工作区的更改暂存起来。git stash pop
:恢复最近一次暂存的更改。git clean -fd
:删除未跟踪的文件和目录。
8. 配置与帮助
git config --global user.name "<name>"
:设置全局用户名。git config --global user.email "<email>"
:设置全局邮箱。git help <command>
:查看指定命令的帮助文档。
9. 高级操作
git cherry-pick <commit>
:将指定提交应用到当前分支。git bisect
:使用二分查找定位引入 bug 的提交。git reflog
:查看所有操作的引用日志,用于恢复丢失的提交。
10. 子模块
git submodule add <repository>
:添加一个子模块。git submodule update --init --recursive
:初始化并更新所有子模块。
11. 工作流优化
git rebase -i <commit>
:交互式 rebase,用于整理提交历史。git commit --amend
:修改最近一次提交。
12. 远程仓库管理
git remote add <name> <url>
:添加一个新的远程仓库。git remote remove <name>
:移除一个远程仓库。
13. 忽略文件
.gitignore
:在项目根目录下创建.gitignore
文件,列出需要忽略的文件和目录。
14. 钩子(Hooks)
.git/hooks/
:在.git/hooks/
目录下放置脚本,可以在特定 Git 操作时自动执行。
15. 别名
git config --global alias.<alias-name> <command>
:为常用命令设置别名,简化操作。
16. 补丁
git format-patch <commit>
:生成指定提交的补丁文件。git apply <patch-file>
:应用补丁文件。
17. 子目录操作
git sparse-checkout
:仅检出仓库中的部分目录或文件。
18. 大文件存储(LFS)
git lfs install
:初始化 Git LFS。git lfs track <file>
:跟踪大文件。
19. 多仓库管理
git worktree
:在同一仓库中管理多个工作目录。
20. 性能优化
git gc
:清理不必要的文件并优化本地仓库。
21. 调试
git blame <file>
:查看文件的每一行是谁在什么时候修改的。
22. 合并冲突
git mergetool
:使用配置的合并工具解决冲突。
23. 远程仓库重命名
git remote rename <old-name> <new-name>
:重命名远程仓库。
24. 远程仓库 URL 修改
git remote set-url <name> <new-url>
:修改远程仓库的 URL。
25. 远程仓库分支删除
git push <remote> --delete <branch-name>
:删除远程仓库的分支。
26. 远程仓库标签删除
git push <remote> --delete <tag-name>
:删除远程仓库的标签。
27. 远程仓库分支重命名
git branch -m <old-branch-name> <new-branch-name>
:重命名本地分支。git push <remote> --delete <old-branch-name>
:删除远程旧分支。git push <remote> <new-branch-name>
:推送新分支到远程。
28. 远程仓库标签重命名
git tag <new-tag-name> <old-tag-name>
:创建新标签指向旧标签。git tag -d <old-tag-name>
:删除旧标签。git push <remote> :refs/tags/<old-tag-name>
:删除远程旧标签。git push <remote> <new-tag-name>
:推送新标签到远程。
29. 远程仓库分支合并
git fetch <remote>
:获取远程仓库的最新更改。git merge <remote>/<branch-name>
:将远程分支合并到当前分支。
30. 远程仓库分支 rebase
git fetch <remote>
:获取远程仓库的最新更改。git rebase <remote>/<branch-name>
:将当前分支的更改重新应用到远程分支上。
31. 远程仓库分支 cherry-pick
git fetch <remote>
:获取远程仓库的最新更改。git cherry-pick <commit>
:将指定提交应用到当前分支。
32. 远程仓库分支 bisect
git fetch <remote>
:获取远程仓库的最新更改。git bisect start
:开始二分查找。git bisect good <commit>
:标记一个已知的好提交。git bisect bad <commit>
:标记一个已知的坏提交。git bisect reset
:结束二分查找。
33. 远程仓库分支 reflog
git fetch <remote>
:获取远程仓库的最新更改。git reflog
:查看所有操作的引用日志,用于恢复丢失的提交。
34. 远程仓库分支 submodule
git fetch <remote>
:获取远程仓库的最新更改。git submodule update --init --recursive
:初始化并更新所有子模块。
35. 远程仓库分支 worktree
git fetch <remote>
:获取远程仓库的最新更改。git worktree add <path> <branch>
:在同一仓库中管理多个工作目录。
36. 远程仓库分支 gc
git fetch <remote>
:获取远程仓库的最新更改。git gc
:清理不必要的文件并优化本地仓库。
37. 远程仓库分支 blame
git fetch <remote>
:获取远程仓库的最新更改。git blame <file>
:查看文件的每一行是谁在什么时候修改的。
38. 远程仓库分支 mergetool
git fetch <remote>
:获取远程仓库的最新更改。git mergetool
:使用配置的合并工具解决冲突。
39. 远程仓库分支 remote
git fetch <remote>
:获取远程仓库的最新更改。git remote add <name> <url>
:添加一个新的远程仓库。git remote remove <name>
:移除一个远程仓库。
40. 远程仓库分支 ignore
git fetch <remote>
:获取远程仓库的最新更改