最近项目使用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的更多相关文章

  1. Git 协作:Fetch Pull Push Branch Remote Rebase Cherry-pick相关

    前言 学习git的时候,我们首先学习的是最常用的,自己独立开发Software时用的命令: git init //初始化git仓库 git add <file_name> //将文件添加到 ...

  2. Docker DevOps实战:GitLab+Jenkins(1)- GitLab容器搭建、使用SourceTree pull/push项目

    GitLab容器搭建 # 创建GitLab容器# --restart always #重启,容器自动重启# --privileged=true #容器内使用root权限 [root@localhost ...

  3. Git学习 --> 个人常用命令add,commit以及push

    Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱  git config --global user.name <用户名> 我的命令就是:git confi ...

  4. 我所记录的git命令(非常实用)

    一.前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流... [ 顺便问下园友们,怎么感觉博客园发布的博客搜索有时都搜不到,后台编辑能填的都填写了,还是觉得搜索排名不高? 相同的标题 ...

  5. 使用git命令修改commit提交信息

    很多时候我们在提交代码时可能会把commit提交信息写错了,这个时候我们就可以用到下面的git命令来修改commit提交信息 git commit --amend 输入"i"之后进 ...

  6. 2.每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。答题人:张立鹏

    第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果没有,打开Shell ...

  7. 第二章——建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别-----答题者:徐潇瑞

    1.首先下载安装git,很简单所以就不详细说了,当弹出一个类似的命令窗口的东西,就说明Git安装成功 2.因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识 3.接着,注册githu ...

  8. 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰

    1.配置Git 首先在本地创建ssh 秘钥:在git bash输入: $ ssh-keygen -t rsa -C "your_email@youremail.com" eg:$ ...

  9. Git命令add和commit的区别

    要想弄明白git add和git commit的区别,首先我们需要知道三个概念:工作区(Working Directory).版本库(Repository).暂存区(Stage or index). ...

随机推荐

  1. Flask+elasticsearch实现搜索引擎入门教程+Curl调试

    前几天,在github上看到了一个关于elasticsearch的小项目,有点小兴趣,于是就结合着Flask,研究了一下,分享给大家. 准备资料: 1.安装elasticsearch 参考教程:htt ...

  2. postman使用之四:设置读取变量和切换环境

    postman提供了environment管理功能,想要在多个环境中测试,比如在测试环境.灰度环境.生产环境等,只需要用同样的接口,切换下环境即可,非常方便.具体步骤: 设置环境变量  1.点击man ...

  3. 工作中SQL语句的优化

    在我们的工作中,数据是很多的,这是我常见问题遇到的问题做了简短总结. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 w ...

  4. Redis的常用功能

    排序: sort mylist 排序 sort mylist alpha desc limit 0 2 字母排序 sort list by it:* desc by命令 sort list by it ...

  5. css3--文字效果

    text-shadow <!DOCTYPE html> <html> <head> <meta charset="utf-8"> & ...

  6. 力扣——candy (分糖果) python实现

    题目描述: 中文: 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. ...

  7. C#驱动mysql明明数值不为空却一直说DBNull.Value的诡异情况

    最近遇见了一个很诡异的情况,就是当我们关联表查询时,副表如果有bit类型的字段的话,C#驱动读取该列时就会抛出“DBNull.Value不能转换为其他类型”的异常,但是我们如果拿出sql语句单独查询的 ...

  8. div标准布局示例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. POJ 1273 Drainage Ditches (网络流Dinic模板)

    Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...

  10. [Repost] 悬线法

    <浅谈用极大化思想解决最大子矩形问题>作者:王知昆 首先,根据定理1:最大有效子矩形一定是一个极大子矩形.不过与前一种算法不同的是,我们不再要求每一次枚举的一定是极大子矩形而只要求所有的极 ...