Git命令速查:克隆、提交、分支与合并

"该文档是关于Git常用命令的总结,涵盖了从创建和克隆仓库,管理本地更改,提交历史,分支和标签操作,以及更新和发布等核心Git操作。"
Git是一个分布式版本控制系统,用于追踪对文件的修改,便于多人协作开发。以下是一些Git常用命令的详细解释:
1. **创造**
- **克隆现有存储库**:`$git clone ssh://user@domain.com/repo.git`,这个命令用于从远程服务器复制一个完整的Git仓库到本地。
- **创建一个新的本地存储库**:`$git init`,这将在当前目录初始化一个新的Git仓库。
2. **当地变化**
- **查看工作目录状态**:`$git status`,用于检查工作区和暂存区的状态,显示哪些文件有变动。
- **查看文件差异**:`$git diff`,比较工作区和最近一次提交的差异。
- **添加更改到暂存区**:`$git add .` 或 `$git add -p <file>`,`.` 表示添加所有更改,`-p` 允许选择性地添加部分更改。
3. **提交**
- **提交所有更改**:`$git commit -a`,将暂存区的所有更改提交到仓库,`-a`表示自动添加所有已跟踪的文件。
- **提交前的更改**:`$git commit`,在执行此命令之前,需要先使用`git add`将更改放入暂存区。
- **修改最后一次提交**:`$git commit --amend`,慎用,用于修改最近一次的提交信息,但不要用于已经推送到远程的提交。
4. **提交历史**
- **查看提交历史**:`$git log`,列出所有提交记录,从最新开始。
- **查看文件的历史变化**:`$git log -p <file>`,展示文件随时间的改动。
- **查看责任人信息**:`$git blame <file>`,显示每个行是谁何时修改的。
5. **分支机构和标签**
- **列出所有分支**:`$git branch -av`,包括本地和远程分支。
- **切换分支**:`$git checkout <branch>`,切换到指定分支。
- **创建分支**:`$git branch <new-branch>`,在当前HEAD基础上创建新分支。
- **基于远程分支创建跟踪分支**:`$git checkout --track <remote/branch>`,用于从远程仓库拉取并创建跟踪分支。
- **删除本地分支**:`$git branch -d <branch>`,如果分支已被合并,可以安全删除。
- **打标签**:`$gittag <tag-name>`,在当前提交上创建一个标签。
6. **更新和发布**
- **查看远程仓库**:`$git remote -v`,列出已配置的远程仓库。
- **获取远程更改**:`$git fetch <remote>`,下载远程仓库的最新更改但不合并。
- **拉取并合并**:`$git pull <remote> <branch>`,从远程仓库拉取并合并指定分支。
- **推送更改**:`$git push <remote> <branch>`,将本地分支的更改推送到远程仓库。
- **删除远程分支**:`$git branch -dr <remote/branch>`,从远程仓库删除分支。
- **发布标签**:`$git push --tags`,将本地的标签推送到远程仓库。
7. **合并与基础**
- **合并分支**:`$git merge <branch>`,将指定分支的更改合并到当前HEAD。
- **重新基座**:`$git rebase <branch>`,将当前分支的提交历史重新基于另一个分支,用于保持干净的提交历史。
这些命令是Git日常开发中非常基础且常用的,掌握它们能够帮助开发者高效地管理代码版本。在实际使用中,还可能需要结合其他命令和选项,以应对各种复杂的版本控制需求。
336 浏览量
158 浏览量
264 浏览量
135 浏览量
114 浏览量
363 浏览量
224 浏览量
229 浏览量

17岁boy想当攻城狮
- 粉丝: 12w+
最新资源
- 下载管理:文件获取与配置解析
- iBATIS开发指南:从入门到高级特性
- JavaScript实现右键复制、粘贴和剪切功能详解
- 深入探索Struts框架:构建高效Web应用
- 嵌入式Linux入门指南:从PC到开发板实战
- Groovy语言与DSL快速原型
- Sun Ray Server Software 4.0在Solaris上的安装与配置指南
- I2C协议详解:标准、快速与高速模式对比
- Ant教程:Java项目构建工具详解
- C语言常见错误汇总与解决:从括号到类型问题
- gtkmm编程指南:初学者入门
- 嵌入式系统BootLoader技术解析
- CISCO组播快速配置全面解析
- 华为HCNE考试题库详解
- 定制Linux内核:打造高效系统
- 华为HCNE题库精选:基础网络知识点详解