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 浏览量
141 浏览量
2024-07-23 上传
205 浏览量
273 浏览量
2019-09-23 上传

17岁boy想当攻城狮
- 粉丝: 12w+
最新资源
- Struts菜单教程:struts-menu-2.4.3压缩包
- appointy:基于GUI的JSON请求伪造测试工具
- VB6.0打印控件:MSFlexGrid及多种控件内容高效输出解决方案
- InceptionV2花卉识别模型及界面代码分享
- JDK1.8官方正版64位下载与安装教程
- Spring AOP XML实例入门教程
- ASRock华擎H77 Pro4/MVP主板BIOS 1.70版发布
- 简易STM32单片机LED闪烁程序详解
- 构建微服务:Go语言Echo框架入门指南
- JExcel:Java操作Excel文件的开放源码工具
- WebAppDaft学院:Python技术深度学习
- 三维网格远点采样技术及其网格保持研究
- Delphi实现WINSOCK UDP多播通信源代码解析
- 华擎H77 Pro4-M主板新BIOS驱动2.00版发布
- GAP包WreathProductElements:安装、使用与许可证指南
- 国外设计师简历模板大全(JPG、PDF格式)