# hellogit **Repository Path**: lyhhh1030/hellogit ## Basic Information - **Project Name**: hellogit - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-11-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # git的练习使用 ## 任务完成情况: ``` 1.git安装完成 2.账号注册完成,仓库创建完成 3.项目提交完成 4.代码修改与上传完成,回滚查看历史完成 5.模拟冲突场景与庆旺同学一起完成 ``` ## 任务地址 ``` https://gitee.com/lyhhh1030/hellogit ``` ## git学习总结 ### 概述 ``` git采取文件系统快照的方式管理项目,相较于svn(增量式,集中式管理),git是分布式的,开发人员本地就有项目所有历史版本,可以避免单点故障 ``` ### 本地库结构 ``` 工作区(写代码) git add -> 暂存区(临时存储) git commit -> 本地库(存放了项目的历史版本) ``` ### 协作方式 ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/1.png) ### 设置签名 ``` git config user.name lyh 设置项目级别用户 git config user.email 8987@qq.com 设置项目级别邮箱 git config --global user.name lyh 设置系统级别用户 git config --global user.email @qq.com 设置系统级别邮箱 ``` ### 常用基本命令 ``` git status :查看本地库状态 git init :初始化本地库 git add 文件名 :将工作区的“新建/修改”添加到暂存区 git commit -m "commit message" 文件名 :将暂存区的内容提交到本地库(带提交信息) git log :查看历史信息 git reflog :查看历史信息(版本hash只显示头部份,带commit message,带移动版本需要动HEAD的次数) git reset --hard 版本hash :前进与后退版本 git remote add 地址名 https://gitee.com/.../.../xx.git :再本地将远程库地址保存 git remote -v :查看自己保存的远程仓库地址 git push 地址名 master :推送到远程库的master分支 git clone 项目地址 :克隆项目 git pull 地址名 分支名 :拉取远程仓库内容 git pull=fetch+merge ``` ## 具体操作 ### 操作方式 ``` 方式一:打开项目文件夹或者cd跳转到项目位置,右键Git Bash Here ,用命令行操作 方式二:idea打开项目,在Terminal 输入git命令操作 方式三:idea中的可视化操作 方式1和2类似 ``` ### 初始化本地库 ​ 命令行操作:git init ​ idea操作: ​ ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/2.png) ### 添加到暂存区 ​ 命令:git add . ​ ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/3.png) ### 提交本地库 ​ 命令:git commit -m " message" ​ idea操作: ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/4.png) ### 推到远程库 ​ 命令 ``` git remote add origin https://gitee.com/.../.../xx.git git push origin master ``` ​ idea操作 ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/5.png) ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/6.png) ### 拉取远程库内容 ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/7.png) ### 切换版本 ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/8.png) ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/9.png) ### 创建分支与合并分支 ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/10.png) 再New就完成分支创建,此时已经在新的分支上了 checkout到master分支,再Merge changes,选择要合并的内容点Merge,完成合并 ## 冲突解决 场景:两个开发人员在同一地方修改代码,一人提交后,另一人再提交就会出现conficts 以下截图是第一次自己用两个账号模拟冲突的内容 push出现出错 ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/11.png) 需要先pull拉取新的内容 ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/12.png) 选择要保留成员1、2的内容,再重新push ![WAI](https://gitee.com/lyhhh1030/hellogit/raw/master/img/13.png) ## 任务总结 git使用起来非常方便,尤其是idea中的可视化操作,能够让团队更加灵活方便地管理代码。 本次任务的学习让自己对git学的更加深入,使用起来没有那么陌生了,很多内容都亲身实践到了,但要想更熟练得使用还需要日后的不断练习。 在任务的过程中还遗留了一个问题,当时自己用两个账号(账号1,账号2)模拟冲突,虽然系统的凭据管理已经改回账号1,但后面的push不知道为什么还是显示账号2的推送,而且自己把账号2移除仓库后,推送的内容还是账号2的,不知道是为什么。发现两个账号模拟冲突还是同一个账号的两次提交,后面就让庆旺同学帮忙再进行了一次模拟冲突的场景。