# GitStudy **Repository Path**: ctrlcherry/git-study ## Basic Information - **Project Name**: GitStudy - **Description**: Git学习 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-08 - **Last Updated**: 2022-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GitStudy #### 介绍 用于Git学习的仓库,可以进行任何形式的提交和合并,用于实际开发项目前的测试,无需顾虑仓库,大胆操作,有任何问题可以直接联系管理员进行操作。 #### 软件架构 无需架构 #### 安装教程 ```shell git remote add origin https://gitee.com/ctrlcherry/git-study.git ``` #### 使用说明 1. 接收邀请成为开发者 2. 任意创建一个空目录执行`git init` 3. 通过安装教程将仓库拉去到本地 4. 新建 `Feat_xxx` 分支 5. 提交个人分支到仓库,也可以自己新建多个dev本地仓库 6. 提交代码到个人分支 7. 进行开发和合并操作的学习 #### 参与贡献 所有参与的小伙伴 #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) # Git相关 ## 常用命令 1. clone(克隆): 从远程仓库中克隆代码到本地仓库 2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订 3. add(添加): 在提交前先将代码提交到暂存区 4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本 5. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。 6. pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge 7. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库 ![image](https://cdn.staticaly.com/gh/1438802682/image-hosting@master/GitStudy/image.48n6zh0l67m0.webp) ![image](https://cdn.staticaly.com/gh/1438802682/image-hosting@master/GitStudy/image.4fofypwenm20.webp) ## 相关配置 ### git-log配置 1. 打开用户目录,创建 `.bashrc` 文件 部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行 `touch ~/.bashrc` 2. 在 `.bashrc` 文件中输入如下内容: ```Shell #用于输出git提交日志 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' #用于输出当前目录所有文件及基本信息 alias ll='ls -al' ``` 3. 打开`gitBash`,执行 `source ~/.bashrc` **PS:原始指令** - 作用:查看提交记录 - 命令形式:git log [option] - options - --all 显示所有分支 - --pretty=oneline 将提交信息显示为一行 - --abbrev-commit 使得输出的commitId更简短 - --graph 以图的形式显示 > 在配置的别名git-log 就包含了这些参数,所以后续可以直接使用指令 git**-**log ### 解决GitBash乱码问题 1. 打开GitBash执行下面命令 ``` git config --global core.quotepath false ``` 2. `${git_home}/etc/bash.bashrc` 文件最后加入下面两行 ``` export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8" ``` ## 分支操作 ### 开发中分支使用原则与流程 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。 在开发中,一般有如下分支使用原则与流程: - master (生产) 分支 线上分支,主分支,中小规模项目作为线上运行的应用对应的分支; - develop(开发)分支 是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。 - feature/xxxx分支 从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完 成后合并到develop分支。 - hotfifix/xxxx分支 从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、 - develop分支。 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等等。 ![image](https://cdn.staticaly.com/gh/1438802682/image-hosting@master/GitStudy/image.4dp21xvoaza0.webp) ## 远程仓库 ### 添加远程仓库 **此操作是先初始化本地库,然后与已创建的远程库进行对接**。 - 命令: `git remote add <远端名称> <仓库路径>` - 远端名称,默认是origin,取决于远端服务器设置 - 仓库路径,从远端服务器获取此URL - 例如: `git remote add origin https://gitee.com/ctrlcherry/git-study.git` ### 查看远程仓库 - 命令:`git remote` ### 推送到远程仓库 - 命令:git push [-f] [--set-upstream] [远端名称 本地分支名 ] - 如果远程分支名和本地分支名称相同,则可以只写本地分支 - git push origin master - -f 表示强制覆盖 - --set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。 - git push --set-upstream origin master - 如果**当前分支已经和远端分支关联**,则可以省略分支名和远端名。 - git push 将master分支推送到已关联的远端分支。 ## 冲突相关 在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。 A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户,**故需要先拉取远程仓库的提交,经过合并后才能推送到远端分**支,如下图所示 ![image](https://cdn.staticaly.com/gh/1438802682/image-hosting@master/GitStudy/image.2tn1cbo8xoe0.webp) 需要手动解决,由管理员选择保留那一部分。