Git 常用命令总结
为什么80%的码农都做不了架构师?>>>
- 话不多说,直接上图,下图描述了一个正常的代码提交以及回退流程。
- 这里顺带提一下几个概念: 工作区和暂存区
- ** 工作区(working directory)**简单来说,电脑中能看到的目录,就是一个工作区。
- ** 版本库(repository)分本地仓库(local repository))和远程仓库(remote repository)** 工作区中有一个隐藏目录.git,这个不算工作区,而是Git的版本库。 Git的版本库里存在很多东西,其中最为重要的是stage(或者叫index)的暂存区。 还有Git为我们自动创建的第一个分支master,以及指向master的第一个指针叫HEAD。
- 以下是常用命令的说明
git clone 克隆远程代码到本地
git remote -v,可以查看你当前项目的远程git地址
git pull 取回远程主机某个分支的更新,再与本地的指定分支合并。
git diff 不加参数即默认比较工作区与暂存区
git diff HEAD 比较工作区与最新本地版本库 如果HEAD指向的是master分支,那么HEAD还可以换成
master
git add README.md 把当前文件放入暂存区域。
git commit -m "更改了README.md文件" 给暂存区域生成快照,并提交到本地 git 仓库
git push <远程主机名> <本地分支名>:<远程分支名>
git push 不带任何参数的git push,默认只推送当前分支,这叫做simple方式。
git push --all origin 将所有本地分支都推送到origin主机。
git push origin 如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分
支推送到origin主机的对应分支
git fetch 当远程仓库有更新需要取回本地时,就要用到git fetch命令,这个不会自动合并。
git revert 已经提交到远程git 仓库
git reset 还没提交到远程 git仓库,
git chechout 分支的创建、合并,请看本人这篇文章-Git 中分支的创建、切换、整合 总结。
git rm 删除文件
git reset是不影响远程分支的,一切都在本地发生,而如果回退需要很快影响远程分支的,应该使用git
revert。
git reset | 提交层面 | 在私有分支上舍弃一些没有提交的更改,用于撤销未被提交到远端的改动 |,放
弃某个 commit
git revert | 提交层面 | 在公共分支上回滚更改,用于撤销远程服务器上的改动,同时本地代码也回滚
了。 git 撤回已经push到远程仓库的修改
git revert HEAD #撤销前一次提交
git revert HEAD^ #撤销前前一次提交
git revert HEAD~n #撤回前n+1次提交
git revert 版本号 (eg:e3fd11233334b535640920e7d350a941b4801d5a) #撤销指定版本提交。
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前
提交的内容。
我们只需要执行:
git revert HEAD
:wq 保存退出。
git push常见问题说明
1、那有人就会问,为什么要分本地commit和服务器的push呢?
因为如果本地不commit的话,修改的纪录可能会丢失。
而有些修改当前是不需要同步至服务器的,所以什么时候同步过去由用户自己选择。什么时候需要同
步再push到服务器2、如上图所示,git相较于svn比较复杂的是因为在本地和版本库之间多了staged缓冲区和远端版本库
(之所以git适合分布式协作开发是因为每个本地的版本库可以脱离远端版本库而独立运行,两者的地
位完全一样),因此在git的回滚和修改提交时相较于svn比较复杂一些,根据上面git reset和git
checkout的对比分析,我们可以得出结论:在staged中存储的是一个snapshot镜像,该镜像是
commit提交的目标(当然可以直接使用commit -a来跳过stage缓冲区,直接将working本地工作目
录提交到本地版本库)。**那么git中如何来放弃本地的修改,以及如何回滚到之前的提交呢?**3、git pull 和 git fetch 区别。
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull
则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge
,这样可能会产生冲突,需要手动解决。4、git reset --hard 和 git reset --sort区别
git reset –-soft commit id :回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;==》貌似很少用到。
git reset -–hard commit id:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;
====>比如提交了两次
第一次 commitId = 123
第二次 commitId = 456,
想回退一次,即回退到 commitId = 123 的版本,就是 git reset --hard 123.
而 git revert 是用 git revert 456,是撤销某一次 commit 操作。(加入不管是否 push 到远程了。))
参考:Git 工作区和缓存区、
Git 初学者(一)、Git 基础与基本用法、
码云(Gitee.com)帮助文档、
git add -A 和 git add . 的区别
转载于:https://my.oschina.net/360yg/blog/1827839
Git 常用命令总结相关推荐
- 【转载】Git 常用命令大全
一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch ...
- Git 常用命令集锦
文档已储存在 GitHub,这里不再更新校正,请原谅. 远程仓库相关命令 克隆远程仓库:git clone git://github.com/jquery/jquery.git 查看远程仓库:git ...
- Git 常用命令速查表(图文+表格)
一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch ...
- git常用命令,分支操作,子模块
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) 二. Git 常用 ...
- Git常用命令和Git团队使用规范指南
1. 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品--Git.它的出现改变了软件开发流程,大大地提高了开发流畅度,直到现在仍十分流行,完全没有衰退 ...
- Java程序员时刻铭记的Git常用命令
今天动力节点Java学院为大家整理了Java架构师必备Git常用命令清单 工程下载.分支的增删查改 工程下载: clone 远程工程:git clone https://XXXX.git fetch ...
- Git常用命令备忘(一) 转载
Git配置 git config --global user.name "robbin" git config --global user.email "fankai@g ...
- git常用命令_10、Git常用命令
Git常用命令 Git作为我们最常用的版本控制工具,多了解并熟悉一些命令,将能节省很多时间 关于git,首先需要了解几个名词,如下: Workspace:工作区 Index / Stage:暂存区 R ...
- Git 常用命令速查表(图文+表格)【转】
转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git co ...
- Git 常用命令和教程
常用命令:http://hi.baidu.com/sunboy_2050/item/ffab7396672895d11a49dfcc 精简教程:http://lugir.com/git-basic.h ...
最新文章
- 如何使用php将字符从全角转为半角
- VIM打开shell脚本中文乱码解决
- NODE-WEBKIT教程(12)全屏
- 航“空”、航“天”大不同
- 主机访问虚拟机中linux上的web服务
- Spring整合定时任务组件Quartz的简单使用
- LeetCode 404左叶子之和-简单
- LeetCode 1801. 积压订单中的订单总数(map)
- JAVA入门级教学之(对象的使用)
- 专访图灵奖得主:完全自动驾驶是计算机接近人类智能的一大步
- Pull or Push?监控系统如何选型
- Spring —— 容器内部逻辑
- 光纤中的多种光学模式芯径_光纤光缆的21条基础知识
- C# UdpClient使用Receive和BeginReceive接收消息时的不同写法
- scjp java程序员_Sun认证Java程序员SCJP考题常见陷阱
- 数据结构之队列java版
- (简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
- 解析UML箭头、线条代表的意义
- 华硕路由域名访问_域名绑定ip怎么做?有什么方法?
- Java编程精选题(1)