【记录】gitLab git命令add commit fetch pull push
最近项目使用git进行版本控制,由于之前用svn,所以对git不是太熟悉,网上一通乱找git各命令含义,
以下内容感觉讲的很详细,可以很清楚理解git提交流程,博主把重要的信息用红字标注了,更加显眼。
推荐使用TortoiseGit来进行git操作,非常方便,下载地址 https://tortoisegit.org/download/
以下内容转载自:https://blog.csdn.net/jason19966/article/details/88884578
相关资料参考2:https://blog.csdn.net/weixin_39618217/article/details/80985301
add和commit
我们可以把一个git仓库分为3个区,分别是工作区、暂存区、版本库。
工作区里存放的是我们正在操作的文件信息;每次add操作就会将工作区文件的修改信息添加到暂存区;每次commit 操作会将暂存区里的修改内容添加到版本库里。
git add :表示把中工作区中被修改过或已删除文件或新增的文件信息添加到暂存区。
常用命令 :git add filename 添加指定文件到暂存区;git add -A 添加工作区中所有被修改过或已删除文件或新增的文件信息添加到暂存区。
git commit :把暂存区里的内容提交到版本库里,每次commit都生成一个新的版本,对应一个commit id。
常用命令:git commit -m “commit message”
git fetch 、pull、push
git fetch: 获取远程仓库里的分支的最新版本到本地,不进行合并。所取回的更新,在本地主机上可以用”远程主机名/分支名”的形式读取。
常用命令:git fetch <远程仓库名> 获取远程仓库里的所有的分支的最新版本,可以简写成 git fetch;
git fetch <远程仓库名> <远程分支名> 获取远程仓库里指定分支的最新版本。
备注:git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支。
示例:git fetch origin dev2 拉取远程仓库的dev2分支的更新到本地,此时FETCH_HEAD指向origin/dev2分支。
git pull :获取远程仓库里的分支的最新版本到本地,与本地分支进行合并。
常用命令:git pull <远程仓库名> <远程分支名>:<本地分支名> 获取指定远程分支,与指定本地分支合并。当远程分支和本地当前分支合并的时候,
可以省略":<本地分支名>",可以通过git status 查看当前分支。
备注:git pull 相当于git fetch + git merge,fetch不会自动merge。
示例:git pull origin dev2:dev 获取远程仓库origin的dev2分支并和本地的dev分支合并。
git push : 将本地仓库分支的更新,推送到远程仓库。
常用命令:git push <远程仓库名> <本地分支名>:<远程分支名> 将本地指定分支的更新,推送到远程指定分支。当远程分支和本地分支同名的时候,
可以省略":<远程分支名>"。
示例:git push origin dev:dev2。将本地分支dev 推送到origin上的dev2上,若origin上没有dev2分支,则创建一个dev2分支。
git push origin :dev2 。删除origin上的dev2 分支,相当于将一个空的本地分支推送到origin的dev2分支上。
多人协作中版本推送到远程仓库的流程
整理好本地仓库的版本:使用git add 和git commit生成一个新的版本;
尝试直接将本地的更新推送到远程仓库。使用 git push。
若push 失败,则说明远程仓库的分支版本领先本地,即从上次pull或者fetch后,有人提交过更新。解决方案如下。
3.1 获取远程的最新版本与本地分支合并,使用git pull 或者git fetch + git merge。
3.2 合并时,若出现冲突,手动解决冲突后,使用git add 和git commit生成一个新的版本。
3.3 使用git push 将合并后的版本推送到远程仓库。
希望能帮助到对git迷茫的你。
【记录】gitLab git命令add commit fetch pull push的更多相关文章
- Git 协作:Fetch Pull Push Branch Remote Rebase Cherry-pick相关
前言 学习git的时候,我们首先学习的是最常用的,自己独立开发Software时用的命令: git init //初始化git仓库 git add <file_name> //将文件添加到 ...
- Docker DevOps实战:GitLab+Jenkins(1)- GitLab容器搭建、使用SourceTree pull/push项目
GitLab容器搭建 # 创建GitLab容器# --restart always #重启,容器自动重启# --privileged=true #容器内使用root权限 [root@localhost ...
- Git学习 --> 个人常用命令add,commit以及push
Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱 git config --global user.name <用户名> 我的命令就是:git confi ...
- 我所记录的git命令(非常实用)
一.前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流... [ 顺便问下园友们,怎么感觉博客园发布的博客搜索有时都搜不到,后台编辑能填的都填写了,还是觉得搜索排名不高? 相同的标题 ...
- 使用git命令修改commit提交信息
很多时候我们在提交代码时可能会把commit提交信息写错了,这个时候我们就可以用到下面的git命令来修改commit提交信息 git commit --amend 输入"i"之后进 ...
- 2.每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。答题人:张立鹏
第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果没有,打开Shell ...
- 第二章——建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别-----答题者:徐潇瑞
1.首先下载安装git,很简单所以就不详细说了,当弹出一个类似的命令窗口的东西,就说明Git安装成功 2.因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识 3.接着,注册githu ...
- 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰
1.配置Git 首先在本地创建ssh 秘钥:在git bash输入: $ ssh-keygen -t rsa -C "your_email@youremail.com" eg:$ ...
- Git命令add和commit的区别
要想弄明白git add和git commit的区别,首先我们需要知道三个概念:工作区(Working Directory).版本库(Repository).暂存区(Stage or index). ...
随机推荐
- NULL合并操作符??
参考官方手册: /** * NULL合并操作符 ?? */ // $a, $b, $c都未声明和定义 var_dump($a??$b??$c); // NULL // $a为数组,$b为100,$c为 ...
- 深入学习Redis持久化
一.Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义. 我们知道,在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常 ...
- 转载:对比Angular/jQueryUI/Extjs:没有一个框架是万能的
Angular不能做什么?对比Angular/jQueryUI/Extjs 框架就好比兵器,你得明白你手里拿的是屠龙刀还是倚天剑,刀法主要是砍,剑法主要是刺.对于那些职业喷子和脑残粉,小僧送你们两个字 ...
- Nginx有哪些作用?
Nginx有哪些作用? http协议代理 搭建虚拟主机 服务的反向代理 在反向代理中配置集群的负载均衡 什么是正向代理? 正向代理,意思是一个位于客户端和原始服务器(origin server)之 ...
- php number_format()函数 语法
php number_format()函数 语法 number_format()函数怎么用? php number_format()函数表示通过千位分组来格式化数字,语法是number_format( ...
- doT模板引擎
doT模板引擎是一个比较高效的引擎,一直都在使用,只有3kb大小,简洁的语法,无任何依赖,简单易用:下面的代码直接拷贝引用就可以使用: 插件代码 (function(){function p(b,a, ...
- 集训队8月1日(拓扑排序+DFS+主席树入门)
上午看书总结 今天上午我看了拓扑排序,DFS+剪枝,相当于回顾了一下,写了三个比较好的例题.算法竞赛指南93~109页. 1.状态压缩+拓扑排序 https://www.cnblogs.com/246 ...
- mysql事件(定时任务)处理超时失效订单
MySQL事件(定时任务) https://blog.csdn.net/pan_junbiao/article/details/86489237 UPDATE wz_mer_goods_spec as ...
- 71、salesforce的JSON方法
List<Merchandise__c> merchandise = [select Id,Name,Price__c,Quantity__c from Merchandise__c li ...
- (Java多线程系列七)Java内存模型和线程的三大特性
Java内存模型和线程的三大特性 多线程有三大特性:原子性.可见性.有序性 1.Java内存模型 Java内存模型(Java Memory Model ,JMM),决定一个线程对共享变量的写入时,能对 ...