# git **Repository Path**: swordying/git ## Basic Information - **Project Name**: git - **Description**: GIT 学习笔记 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-12-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git 学习笔记 - 定义:版本管理工具 - 功能:项目备份、版本控制、多人协作 - 特性:分布式版本管理 - 开发者:Linus Torvalds 林纳斯.托瓦兹 - 官网:[https://git-scm.com](https://git-scm.com "Git 官网") - 基于 Git 的 Web 服务 的 公共代码托管平台:GitHub、BitBucket、Gitee.com 码云、coding.net | dev.tencent.com 腾讯云 - 搭建 Git Web 服务 开源项目:GitLab、Gogs ## 1、相关概念 1. 仓库 repository:项目在 Git 服务器上放置的逻辑位置; 2. 分支 branch:一个项目不同的镜像,默认分支为 Master 分支; 3. 指针 HEAD:指向最后一次提交的结果的指针; 4. 标签 tag:声明项目一个特定的节点,用于注释或项目小结,即 里程碑; 5. 提交标识 commit id:提交 ID:提交代码后生成的唯一标识; 6. 工作区、暂存区、版本库、远程版本库 - 工作区 Working Directory:本地实际文件, - 暂存区 Stage|Index:缓存区域、保存临时改动的文件,即文件 .git/index, - 版本库 Repository:即 工作区 下的 .git 目录; 7. Issues 问题讨论:Git Web 服务的问题提问与交流; 8. Wiki 维基:提供多人协作的系统,用来 结构化 信息与数据,由此编辑的帮助文档 也叫 Wiki; 9. Git 工作流:围绕项目发布的多人协作以及版本迭代的一般流程,例如:gitflow 模型; 10. SSH key:Git 服务器进行认证使用 SSH 公钥 ## 2、下载安装 Git 1. Linux 下 ` $ sudo apt-get install git ` 2. Windows 版本:[https://git-scm.com/download/win](https://git-scm.com/download/win "Windows 版本") 3. macOS 版本:[https://sourceforge.net/projects/git-osx-installer/](https://sourceforge.net/projects/git-osx-installer/ "选择最新版本") 4. Git 客户端配置 --global 全局配置 - 配置账号 ` $ git config --global user.name "name" ` - 配置邮箱 ` $ git config --global user.email "email" ` - 列出所有配置 ` $ git config --list ` ## 3、Git 常用命令 ### 1. 克隆项目 1. 命令: ` $ git clone [-b 版本名称 默认 master] 远程仓库链接地址 声明克隆到本地的目录名称(默认为项目名称) ` 2. 远程仓库链接地址 示例:git@gitee.com:swordying/git.git 3. 命令 示例:` $ git clone git@gitee.com:swordying/git.git ` ### 2. 拉取代码 1. 命令: ` $ git pull origin master ` 2. 相当于 "从远程更新到本地 git fetch" + "合并分支 git merge" ### 3. 添加-添加文件到暂存区中 1. 命令: ` $ git add 文件或目录 ` 2. -A 当前目录的所有变化 3. 命令 示例:` $ git add -A ` ### 4. 提交-将暂存区中内容提交到本地版本库中 1. 命令: ` $ git commit -m "-m 提交说明" ` 2. 命令 示例:` $ git commit -m "第一次提交" ` ### 5. 推送-将本地版本库的修改推送到远程版本库 1. 命令: ` $ git push origin master ` ### 6. 查看仓库状态 1. 命令: ` $ git status ` ### 7. 查看冲突 1. 命令: ` $ git diff ` ### 8. 查看提交历史 1. 命令: ` $ git log ` ### 9. 查看远程仓库信息 1. 命令: ` $ git remote -v ` ### 10. 分支操作命令 1. 创建分支 ` $ git branch 分支名称 ` 2. 查看分支 ` $ git branch ` *星号 * 表示当前分支* 3. 删除分支 ` $ git branch -d 分支名称 ` 4. 更换分支 ` $ git checkout 分支名称 ` 5. 创建并切换分支 ` $ git checkout -b 分支名称 ` 6. 再把 *分支名称* 合并到当前分支中 ` $ git merge 分支名称 ` ### 11. 标签操作命令 1. 查看所有标签 ` $ git tag ` 2. 创建标签 ` $ git tag 标签名称(如 v0.0.1) [commit_ID 有这个参数时表示特定的 commit_ID 打标签] ` 3. 删除标签 ` $ git tag -d 标签名称 ` 4. 指定标签提交 ` $ git tag -a tag_name -m "-m 提交备注" ` 5. 标签发布 ` $ git push origin 标签名称 ` ### 12. 重置操作命令 1. 重置当前 ` $ git reset --hard ` 2. 重置到具体 ` $ git reset --hard 版本指针 ` 3. 重置到具体 ` $ git reset commit_ID ` ### 13. 撤销操作 1. 撤销刚才的 add 添加操作:` $ git reset HEAD 文件或目录 ` 2. 撤销刚才的 commit 提交操作:` $ git reset commit_ID ` ## 4、Git 常见操作 ### 1. 本地初始化项目,拉取远程项目操作 1. 初始化版本 ` $ git init ` 2. 添加远程仓库 ` $ git remote add origin[定义远程仓库名称] 远程仓库链接地址 ` 3. 远程覆盖本地 ``` $ git fetch origin $ git reset --hard origin/master ``` ### 2. 常用操作 1. 添加 ` $ git add 文件或目录 ` 2. 提交 ` $ git commit -m "提交原因" ` 3. 推送 ` $ git push origin master ` 4. 拉取 ` $ git pull origin master ` ### 3. 编辑提交忽略文件 .gitignore 1. "#" 注释符号 2. "*" 表示通配符所有 3. 写出要忽略的文件或目录即可 ### 4. 部署 SSH key 1. 创建 SSH key ` $ ssh-keygen -t rsa -C "注册托管平台时使用的邮箱地址" ` 2. 把生成的 SSH 公钥配置到托管平台上,备注:如果把公钥部署到其他人的托管平台上,就可以修改其他人的代码,达到多人协作的目的 3. 验证是否配置成功 ` $ ssh -T git@gitee.com[公共托管平台网址] ` ## 附录其他 ### 1. 其他教程 1. BootStrap [Git 简易指南 http://www.bootcss.com/p/git-guide](http://www.bootcss.com/p/git-guide "Git 简易教程") 2. 码云 [Git 命令学习 https://oschina.gitee.io/learn-git-branching](https://oschina.gitee.io/learn-git-branching "码云 Git 命令学习") 3. 慕课网 [Git 教程 https://www.imooc.com/search/?words=git](https://www.imooc.com/search/?words=git "慕课网 Git 教程") 4. 廖雪峰 [Git 教程 https://www.liaoxuefeng.com](https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 "廖雪峰 Git 教程") 5. 菜鸟教程 [Git 教程 http://www.runoob.com/git/git-tutorial.html](http://www.runoob.com/git/git-tutorial.html "菜鸟教程 - Git 教程")