git命令

一. 克隆,提交,拉取代码

1. 克隆,提交代码

  • git clone:远端仓库地址
  • git remote add upstream: 上游远端仓库地址(fork代码的原地址)。添加上游远端仓库
  • git add -A
  • git commit -m '描述'
  • git push

2. 从上游远端仓库拉取冲突代码,解决冲突

  • git pull upstream master -r:把冲突部分拉下来,使用rebase合并代码,不会产生合并信息,不使用rebase确实回产生的。pull细节:把工作区的修改暂存起来,把远端代码和上一次提交合并,然后把暂存的修改再合并到分支上
  • git add -A
  • git rebase --continue:重新提交代码文件,不会产生额外的commit。如果合并的分支中存在多个commit,需要重复处理多次冲突。 只有处理冲突时候才能用这个命令。
  • git push -f:强制提交代码

3. 修补最近一次的提交

  • git commit —amend(-a):修补最近一次push

4. 拉取代码

  • git pull 等价于 git fetch & git merge:这时从远端拉取代码,回产生一个合并日志,产生分叉
  • git pull --rebase (-r):使用 git rebase 合并代码

二. 删除远端误提交代码文件

  • git rm —cached test.txt:不删除本地文件的情况下,删除远端文件
  • git rm -f test.txt:删除远端文件的同时删除本地文件
  • git rm -r test:删除远端文件夹的同时删除本地文件夹
  • 做完上述删除动作,直接commit就好,不用add

三. 撤销修改

  • git reset --hard version:修改本地仓库版本
  • git reset HEAD 文件:把提交到缓存区的代码,回退到本地工作区
  • git checkout --文件:撤销本地工作区的修改

四. 标签管理

  • git tag:列出所有标签
  • git show v1.0:查看标签信息
  • git tag v1.0 commit:给分支打标签。在后面添加commit信息,可以把标签打到以前的commit上
  • git tag -a 标签名 -m '标签描述' 1094adb:给标签写上描述
  • git tag -d v1.0:删除标签
  • git push origin v1.0:提交标签到远程仓库

五. 分支管理

  • git branch:列出所有分支
  • git branch <branch>:创建分支
  • git branch -av:显示所有远程、本地分支,并显示最后提交的commit信息
  • git branch -d :小写时分支上的commit必须已经全部合并到其他分支;大写为强制删除
  • git checkout :切换分支
  • git checkout -b :创建并切换分支
  • git merge -m '合并信息' :合并分支
  • git merge --abort:放弃这次merge(同时也放弃pull)

六. diff

  • git diff:比较修改后的文件和修改前的文件的区别
  • git diff commit:比较工作区和指定提交之间的比较

七. log

  • git log:查看日志
  • git log --graph:查看提交历史图表
  • git log --oneline:把提交信息整合到一行显示
  • git log --stat:显示某次commit中添加行、删除行的总数

八. rebase

  • git rebase --abort:放弃本次变基操作
  • git rebase :基于某个提交(或分支)重新提交你的代码。在另一个分支提交修改代码,然后切换回master分支,执行命令,把另一个分支合并到master分支。并不会产生额外提交信息。

九. 初始化

  • git init:初始化
  • .gitignore:忽略提交文件
  • README.md:代码描述文件

十. 暂存修改

  • git stash:保存当前工作区到暂存区
  • git stash list:列出当前保存的修改
  • git stash pop:弹出保存的修改

十一. 一些心得体验

  • rebase,实际上这个命令没这么难,我解说下。
  • 当使用git rebase <branch>合并分支的时候。会把你当前的commit给去除,临时保存起来,然后把要合并的分支,从开始分叉的地方,全部搬到master分支上,然后把临时保存的commit放在头部,这样就变成了一条线。如果接下来再使用rebase,他会续借原来的分支commit,而不是放在头部
  • 如果使用merge的话,会存在一个分叉,然后再合并到master上,多产生一个commit信息
  • master:commit1=>commit2
  • dev:dev1=>dev2
  • 这两个分支使用rebase合并
  • commit1=>dev1=>dev2=>commit2,如果继续使用rebase,
  • commit1=>dev1=>dev2(dev分支上的commit全都会加入到这后面)=>commit2(master分支的commit全部会加入到这后面)
  •  如果使用merge的话
  •  commit1=>dev1=>dev2=>commit2=>merge dev(新产生一个commit信息,合并分支的)
  •  dev3(从dev2产生分叉)

---恢复内容结束---

# git命令

一. 克隆,提交,拉取代码

1. 克隆,提交代码

  • git clone:远端仓库地址
  • git remote add upstream: 上游远端仓库地址(fork代码的原地址)。添加上游远端仓库
  • git add -A
  • git commit -m '描述'
  • git push

2. 从上游远端仓库拉取冲突代码,解决冲突

  • git pull upstream master -r:把冲突部分拉下来,使用rebase合并代码,不会产生合并信息,不使用rebase确实回产生的。pull细节:把工作区的修改暂存起来,把远端代码和上一次提交合并,然后把暂存的修改再合并到分支上
  • git add -A
  • git rebase --continue:重新提交代码文件,不会产生额外的commit。如果合并的分支中存在多个commit,需要重复处理多次冲突。 只有处理冲突时候才能用这个命令。
  • git push -f:强制提交代码

3. 修补最近一次的提交

  • git commit —amend(-a):修补最近一次push

4. 拉取代码

  • git pull 等价于 git fetch & git merge:这时从远端拉取代码,回产生一个合并日志,产生分叉
  • git pull --rebase (-r):使用 git rebase 合并代码

二. 删除远端误提交代码文件

  • git rm —cached test.txt:不删除本地文件的情况下,删除远端文件
  • git rm -f test.txt:删除远端文件的同时删除本地文件
  • git rm -r test:删除远端文件夹的同时删除本地文件夹
  • 做完上述删除动作,直接commit就好,不用add

三. 撤销修改

  • git reset --hard version:修改本地仓库版本
  • git reset HEAD 文件:把提交到缓存区的代码,回退到本地工作区
  • git checkout --文件:撤销本地工作区的修改

四. 标签管理

  • git tag:列出所有标签
  • git show v1.0:查看标签信息
  • git tag v1.0 commit:给分支打标签。在后面添加commit信息,可以把标签打到以前的commit上
  • git tag -a 标签名 -m '标签描述' 1094adb:给标签写上描述
  • git tag -d v1.0:删除标签
  • git push origin v1.0:提交标签到远程仓库

五. 分支管理

  • git branch:列出所有分支
  • git branch <branch>:创建分支
  • git branch -av:显示所有远程、本地分支,并显示最后提交的commit信息
  • git branch -d :小写时分支上的commit必须已经全部合并到其他分支;大写为强制删除
  • git checkout :切换分支
  • git checkout -b :创建并切换分支
  • git merge -m '合并信息' :合并分支
  • git merge --abort:放弃这次merge(同时也放弃pull)

六. diff

  • git diff:比较修改后的文件和修改前的文件的区别
  • git diff commit:比较工作区和指定提交之间的比较

七. log

  • git log:查看日志
  • git log --graph:查看提交历史图表
  • git log --oneline:把提交信息整合到一行显示
  • git log --stat:显示某次commit中添加行、删除行的总数

八. rebase

  • git rebase --abort:放弃本次变基操作
  • git rebase :基于某个提交(或分支)重新提交你的代码。在另一个分支提交修改代码,然后切换回master分支,执行命令,把另一个分支合并到master分支。并不会产生额外提交信息。

九. 初始化

  • git init:初始化
  • .gitignore:忽略提交文件
  • README.md:代码描述文件

十. 暂存修改

  • git stash:保存当前工作区到暂存区
  • git stash list:列出当前保存的修改
  • git stash pop:弹出保存的修改

十一. 一些心得体验

  • rebase,实际上这个命令没这么难,我解说下。
  • 当使用git rebase <branch>合并分支的时候。会把你当前的commit给去除,临时保存起来,然后把要合并的分支,从开始分叉的地方,全部搬到master分支上,然后把临时保存的commit放在头部,这样就变成了一条线。如果接下来再使用rebase,他会续借原来的分支commit,而不是放在头部
  • 如果使用merge的话,会存在一个分叉,然后再合并到master上,多产生一个commit信息
  • master:commit1=>commit2
  • dev:dev1=>dev2
  • 这两个分支使用rebase合并
  • commit1=>dev1=>dev2=>commit2,如果继续使用rebase,
  • commit1=>dev1=>dev2(dev分支上的commit全都会加入到这后面)=>commit2(master分支的commit全部会加入到这后面)
  •  如果使用merge的话
  •  commit1=>dev1=>dev2=>commit2=>merge dev(新产生一个commit信息,合并分支的)
  •  dev3(从dev2产生分叉)

git一些实践命令,关于reabse和merge的区别在最后做了一个比较的更多相关文章

  1. Git的常用命令记录

    Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支  ...

  2. 『现学现忘』Git后悔药 — 34、git commit --amend 命令

    目录 1.git commit --amend 命令说明 2.使用场景 (1)场景一 (2)场景二 3.git commit --amend 命令原理 这是我们Git中的第三种后悔药. 1.git c ...

  3. Git初级实践教程(图文)

    关于Git Git的由来 Linux 的创始人 Linus Torvalds 在 2005 年开发了 Git 的原型程序.当时,由于在 Linux 内核开发中使用的既有版本管理系统的开发方许可证发生了 ...

  4. Git 最佳实践:分支管理

    5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...

  5. Git 少用 Pull 多用 Fetch 和 Merge

    本文有点长而且有点乱,但就像Mark Twain Blaise Pascal的笑话里说的那样:我没有时间让它更短些.在Git的邮件列表里有很多关于本文的讨论,我会尽量把其中相关的观点列在下面. 我最常 ...

  6. GIT 版本控制常用命令学习汇总

    GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...

  7. git的一些命令行

    以下代码均在命令行中执行:在目标文件夹目录下: 1.初始化一个Git仓库,使用git init命令. 2.添加文件到Git仓库,分两步: 第一步,使用命令git add <file>,注意 ...

  8. git的常用命令

    简介  上篇讲解git的博客,在centos6.5中安装完成了github客户端,接下来我们来熟悉git的操作命令 1.查看自己机器中安装的git版本 [root@jacky conf]# git - ...

  9. Git基本常用命令

    Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...

随机推荐

  1. 使用CSS将图像对齐

    相对于<img>元素的align特性来说,越来越多的网页设计人员使用float属性来对齐图像.可以采用两种方式来实现对齐.为了确保文本不会与图像的边缘接触,我们经常会给图像增加一个外边距. ...

  2. Java泛型方法与泛型类的使用------------(五)

    泛型的本质就是将数据类型也参数化, 普通方法的输入参数的值是可以变的,但是类型(比如: String)是不能变的,它使得了在面对不同类型的输入参数的时候我们要重载方法才行. 泛型就是将这个数据类型也搞 ...

  3. Linux mmc framework2:基本组件之mmc

    1.前言 本文主要mmc组件的主要流程,在介绍的过程中,将详细说明和mmc相关的流程,涉及到其它组件的详细流程再在相关文章中说明. 2.主要数据结构和API TODO 3. 主要流程 3.1 mmc_ ...

  4. c语言的重构、清理与代码分析图形化浏览工具: CScout

    网址: https://www.spinellis.gr/cscout/ https://www2.dmst.aueb.gr/dds/cscout/index.html https://github. ...

  5. nodejs 访问网站并操作xpath

    var xpath = require('xpath'); //引用xpath包 var dom = require('xmldom-silent').DOMParser;//引用xmldom包 va ...

  6. python调用win32com.client的GetObject查找进程信息及服务信息

    为何不用wmi呢?因为执行很慢,为啥不用winreg?因为winreg在批量获取及遍历服务方面很不方便,于是采用这方法 该方法同命令行下的wmic执行 获取服务信息 #coding=utf8 from ...

  7. java中集合的组成及特点

    1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程 ...

  8. uoj#188. 【UR #13】Sanrd(Min_25筛)

    题面 传送门 题解 这是一道语文题 不难看出,题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程,设 \[S(n,j)=\sum_{i=1}^nsec_p( ...

  9. rabbitmq 源码安装

    官网地址:rabbitmqhttp://www.rabbitmq.com/releases/rabbitmq-server/官网地址:erlanghttp://erlang.org/download/ ...

  10. android测试点整理

    Android的功能测试点 安装\卸载 App具体功能点 联网(默认的联网方式是什么?Wifi orSim卡? 网络切换是否有相应的提示说明? 飞行模式) 程序进入输入功能时,是否正常弹出键盘;键盘是 ...