git基本命令的理解
本文适合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
,找到索引index
,git stash pop stash@{index}
。
4 然后通过编辑解决冲突即可。
情况二:原分支需要修改,目标分支不需要修改。
1 git add filename
,git commit -m "备注信息"
。
2 切换分支git checkout branchName
。
情况三:不再需要修改的代码。
1 需要先将冲突文件git add filename && git stash save filename
到存放区。
2 切换分支git checkout branchName
。
3 查看存放目录git stash list
,找到索引index
,git 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基本命令的理解相关推荐
- 【Git、GitHub、GitLab】三 Git基本命令之创建仓库并向仓库中添加文件
前两篇文章已经学会了Git的基本命令与创建仓库的命令,点击链接查看上一篇文章:[Git.GitHub.GitLab]二 Git基本命令之建立Git仓库,本篇文章就来创建一个有模有样的仓库.该仓库中的代 ...
- 通过 .git 目录深入理解 Git!
Git 是一个强大的工具,但是使用起来却不是很友好.如果程序员们能够真正花时间去理解 Git 的构成,将会避免很多不必要的麻烦. 作者 | Pierre de Wulf 译者 | 明明如月,责编 | ...
- (一篇就够)git原理深入理解
深入理解git原理 1:git工作模式 基本步骤: 1.workspace 本地工作空间add命令 提交到本地缓存 2.localcache本地缓存commit命令提交到本地仓库 3.localRep ...
- 图解 Git 基本命令 merge 和 rebase
Git 基本命令 merge 和 rebase,你真的了解吗? 前言 Git 中的分支合并是一个常见的使用场景. 仓库的 bugfix 分支修复完 bug 之后,要回合到主干分支,这时候两个分支需要合 ...
- git pull 是到工作区还是暂存区_每天一Git之简单理解工作区和暂存区
每天一Git之简单理解工作区和暂存区 1. 工作区与暂存区命令初体验 1.1. 暂存区文件与文件夹管理 [root@number ~]# cd GitDir/git_learning/ [root@n ...
- js git基本命令
js git基本命令 git的使用和命令 版本控制系统 及 git的使用 版本控制系统 每写一次 就能保存一次历史版本团队协作开发 集中式管理 cvs.svn git的工作原理 工作区:我们能看到的, ...
- git基本命令行操作
git基本命令行操作 前提:gitlab上有账号;已添加为项目成员;本地机器生成ssh key;填写ssh key到账号的settings (在本地开发机器安装git后,可以用IDEA集成git.ex ...
- git基本命令使用大全
git基本命令使用大全 git init 初始化本地git仓库 git remote add origin git*******.git 建立远程连接 eg:git remote add origin ...
- git基本命令及核心
Git基本命令 1.初始化git仓库:git init 2.添加到暂存区:git add . 3.提交代码:git commit -m '提交的描述信息' 4.推送提交的内容到远程:git push ...
最新文章
- java中if条件结构_Java的控制结构,IF条件选择结构
- 【译】Why Wayland on Android is a hard problem
- 机器学习实战:训练自己的YoloV5 [草稿-待完成]
- UIImagePickerController在iPhone和iPad中用法的一点不同[转]
- BZOJ3298[USACO 2011Open]cow checkers——威佐夫博弈
- 使用Caffe预测遇到的问题
- MySQL占用系统进程_MySQL的Sleep进程占用大量连接解决方法
- 哈希表查找失败的平均查找长度_面试官:哈希表都不知道,你是怎么看懂HashMap的?...
- 为什么太重感情的人基本都是穷人?
- 力扣-451 根据字符出现频率排序
- CI框架url模式及获得参数
- 淘宝用户api 如何获得App Key和API Secret
- SAP WEB IDE local 安装
- 项目mysql数据导入数据的Java程序
- java计算机毕业设计政府人才机构在线考试系统2021源码+mysql数据库+系统+lw文档+部署
- 人际关系——做事要周全
- 图灵计算机与网络论文,论文导读 | 阿兰·图灵《计算机器与智能》
- python在线电影网站-四
- tableViewcell 闪动
- 【数值预测案例】(6) LSTM、GRU 时间序列股票数据预测,附TensorFlow完整代码