本文适合git命令初学者和对git不是很熟悉的读者阅读。
本文包括git各种基本概念的讲解,git常见流程,异常流程,回溯方法,冲突处理的方法。

1 git含义理解图

2 git基本流程图


在项目中一般会有一个master主分支,和很多版本分支,比如version1.0,2.1等。自己会在某个版本上进行开发。

1克隆到本地分支git clone xxx后默认是master分支;

2 首先要通过git branch version2.1切换到自己的工作分支,git branch -a可以查看所有分支。

​ 因为版本分支一般不可以直接push,需要管理员确认,所以我们要在这个基础上建立自己的分支git branch -b myNewBranch。(这一步人们往往会忘记,后面有处理方法)

3 在自己的工作区写代码,可能经历很长时间。

4 git add 修改的文件名,只是为修改的文件增加索引,也就是说明哪些是要提交的内容,此时你所修改的文件也只有在工作区一份。

5 git commit -m "此次修改的备注信息",将工作区的代码保存到本地仓库,此时代码才相对安全。

注意:修改代码后,没有git commit -m之前,切换分支会导致工作区代码和目标分支代码自动合并,有冲突会切换分支失败(切换分支失败,后面有处理方法),切换分支时暂存区会内容不变。

6 git pull origin version2.1重新拉远程的2.1分支,因为修改代码时其他人可能修改远程分支,需要确认是否存在冲突。

6.1 如果编辑存在冲突的文件,用git status中unmerge状态的文件就是冲突文件,vim打开后>>>>>=====<<<<<中间就是冲突部分。再重新执行4、5过程。

7 git push origin myNewBranch提交到远程自己的分支,后期合并需要管理员确认。

个人开发的过程只需要1、3、4、5、7。

多人小项目无管理员(自己可以有权限push到版本分支),则无需2过程中git checkout -b新建自己的分支,第7步中直接提交到版本分支即可,其他都一样。

3 忘记新建分支的处理方法

只有在6.1过程后4过程之前,是不能git checkout -b的。其他任何时候都可以新建自己的分支。

4 本地切换分支出现冲突

情况一:需要原分支不需要修改,目标分支需要修改。

1 需要先将冲突文件git add filename && git stash save filename到存放区。此时存放区有真正修改的文件。

2 切换分支git checkout branchName

3 查看存放目录git stash list,找到索引indexgit stash pop stash@{index}

4 然后通过编辑解决冲突即可。

情况二:原分支需要修改,目标分支不需要修改。

1 git add filenamegit commit -m "备注信息"

2 切换分支git checkout branchName

情况三:不再需要修改的代码。

1 需要先将冲突文件git add filename && git stash save filename到存放区。

2 切换分支git checkout branchName

3 查看存放目录git stash list,找到索引indexgit stash pop stash@{index}

​ 或者直接git stash clear

情况四:两个分支都需要代码。

可以根据情况一和二来解决。

5 回溯

先用git log查看commit的hash值

git reset --soft hash值 只是修改head的指向,不修改其他区域。

git reset --mix(默认选项)hash值是修改head的指向,且清空暂存区。

git reset --hard hash值 是修改head的指向,清空暂存区,更改工作区代码,工作区代码会消失

如果git reset --hard hash值后想要找回,通过git reflog可以查找最后一次commit的hash值,再通过git reset --hard hash值,只能找回到最后一次commit的代码。

git基本命令的理解相关推荐

  1. 【Git、GitHub、GitLab】三 Git基本命令之创建仓库并向仓库中添加文件

    前两篇文章已经学会了Git的基本命令与创建仓库的命令,点击链接查看上一篇文章:[Git.GitHub.GitLab]二 Git基本命令之建立Git仓库,本篇文章就来创建一个有模有样的仓库.该仓库中的代 ...

  2. 通过 .git 目录深入理解 Git!

    Git 是一个强大的工具,但是使用起来却不是很友好.如果程序员们能够真正花时间去理解 Git 的构成,将会避免很多不必要的麻烦. 作者 | Pierre de Wulf 译者 | 明明如月,责编 | ...

  3. (一篇就够)git原理深入理解

    深入理解git原理 1:git工作模式 基本步骤: 1.workspace 本地工作空间add命令 提交到本地缓存 2.localcache本地缓存commit命令提交到本地仓库 3.localRep ...

  4. 图解 Git 基本命令 merge 和 rebase

    Git 基本命令 merge 和 rebase,你真的了解吗? 前言 Git 中的分支合并是一个常见的使用场景. 仓库的 bugfix 分支修复完 bug 之后,要回合到主干分支,这时候两个分支需要合 ...

  5. git pull 是到工作区还是暂存区_每天一Git之简单理解工作区和暂存区

    每天一Git之简单理解工作区和暂存区 1. 工作区与暂存区命令初体验 1.1. 暂存区文件与文件夹管理 [root@number ~]# cd GitDir/git_learning/ [root@n ...

  6. js git基本命令

    js git基本命令 git的使用和命令 版本控制系统 及 git的使用 版本控制系统 每写一次 就能保存一次历史版本团队协作开发 集中式管理 cvs.svn git的工作原理 工作区:我们能看到的, ...

  7. git基本命令行操作

    git基本命令行操作 前提:gitlab上有账号;已添加为项目成员;本地机器生成ssh key;填写ssh key到账号的settings (在本地开发机器安装git后,可以用IDEA集成git.ex ...

  8. git基本命令使用大全

    git基本命令使用大全 git init 初始化本地git仓库 git remote add origin git*******.git 建立远程连接 eg:git remote add origin ...

  9. git基本命令及核心

    Git基本命令 1.初始化git仓库:git init 2.添加到暂存区:git add . 3.提交代码:git commit -m '提交的描述信息' 4.推送提交的内容到远程:git push ...

最新文章

  1. java中if条件结构_Java的控制结构,IF条件选择结构
  2. 【译】Why Wayland on Android is a hard problem
  3. 机器学习实战:训练自己的YoloV5 [草稿-待完成]
  4. UIImagePickerController在iPhone和iPad中用法的一点不同[转]
  5. BZOJ3298[USACO 2011Open]cow checkers——威佐夫博弈
  6. 使用Caffe预测遇到的问题
  7. MySQL占用系统进程_MySQL的Sleep进程占用大量连接解决方法
  8. 哈希表查找失败的平均查找长度_面试官:哈希表都不知道,你是怎么看懂HashMap的?...
  9. 为什么太重感情的人基本都是穷人?
  10. 力扣-451 根据字符出现频率排序
  11. CI框架url模式及获得参数
  12. 淘宝用户api 如何获得App Key和API Secret
  13. SAP WEB IDE local 安装
  14. 项目mysql数据导入数据的Java程序
  15. java计算机毕业设计政府人才机构在线考试系统2021源码+mysql数据库+系统+lw文档+部署
  16. 人际关系——做事要周全
  17. 图灵计算机与网络论文,论文导读 | 阿兰·图灵《计算机器与智能》
  18. python在线电影网站-四
  19. tableViewcell 闪动
  20. 【数值预测案例】(6) LSTM、GRU 时间序列股票数据预测,附TensorFlow完整代码

热门文章

  1. idea操作git时 合并分支+解决冲突
  2. MyBatis 关联映射
  3. 关于ISO七层模型你应该知道的东西
  4. Qt5.14.2下载与安装
  5. ubuntu server 7.04(10.04版也行) 挂载移动硬盘
  6. 实验吧-密码学-Fair-Play(Playfair解密)
  7. 计算机组装训练知识总结,计算机组装维护实训总结
  8. Oracle错误——归档日志已满问题
  9. html 播放本地视频(获取磁盘文件url)
  10. android 是否插入耳机,Android监听耳机是否插入