git常用命令及用法小计
- git init 初始化一个本地git仓库repository
- git status 查看状态
- git add <file> 将工作区修改加到暂存区(stage)
- git commit -m "<some message>" 将暂存区(stage)提交到仓库(repository)并写一些备忘信息
- git reset --hard HEAD^ 或者 git reset --hard HEAD~1 将工作区退回到仓库(repository)中上一个版本
- git checkout -- <file> 将工作区中file文件的修改撤销,包括把删除的file复原(在添加到stage之前才有效,如果将工作区文件的修改add到了stage,那么再使用这个命令就会无效,这时应该先把stage的unstage撤销掉再使用上面的命令)
- git reset HEAD <file> 将添加至stage的file文件unstage掉
- git rm <file> 把file从repository中删除,之后再用commit就行
- git remote add origin git@server-name:path/repo-name.git 关联一个远程库
- git push -u origin master 第一次将本地的repository的master分支推送到远程,以后再push就不用加-u了
- git clone git@server-name:path/repo-name.git 从远程仓库clone一个仓库到本地,同时会关联到远程仓库
- git clone -b <branchName> git@server-name:path/repo-name.git 从远程clone指定分支到本地
- git branch <name> 创建一个名为name的分支
- git checkout <name> 切换到name分支上
- git chekout -b <name> 上面两条命令合并之后的简写,即创建一个名为name的分支并切换到那个分支
- git branch 查看本地所有分支,当前所在分支前面有一个*号
- git branch -r 查看远程所有分支
- git branch -a 查看本地和远程所有分支
- git branch -d <name> 删除名为name的分支
- git branch -D <name> 强行删除名为name的分支,用d删除的话,如过name分支没有被合并就无法删除,那么就要用D
- git merge <name> 将指定name的分支合并到当前分支,其实就是把当前分支的内容更新为指定name分支的内容(前提是name分支的修改是上次commit之后最新的修改,或者说在上次commit之后name分支commit的次数比当前分支commit的次数多),如果name分支和当前分支的修改都是在上次commit之后最新的修改且内容不一样(或者说这两个分支自上次commit之后各自commit的次数是一样的),那么 就会产生冲突,需要解决冲突才能在当前分支上完成合并。解决冲突的方法就行修改当前分支内容,确定你想要当前分支的内容,然后再在当前分支上add和commit一次就可以了,这时,当前分支会比name分支多一次提交,也就是当前分支的修改比name分支的修改要新(如果此时你切换到name分支上,再merge当前分支,那么就会直接合并了,因为当前分支比name分支要新)
- git merge <name> 时,如果name分支没有当前分支新,那么就会提示Already up to date,就是说当前分支比起name分支是新的。
- git log 查看提交的日志信息
- git log --pretty=oneline 查看只有一行的简略日志信息
- git log --graph 查看日志信息的图示信息
- git merge --no-ff 表示在系统采取fast-forward时让系统采用普通合并方式,而不是采用快速合并,普通合并会多一次commit,这样在以后查看时能够看到合并历史,而fast-forward合并则看不到曾经做过的合并
- 分支管理策略:一般来说都是一个master分支,这个分支只用来发布新版本,不在上面干活,应该新建一个dev分支,平时都在dev上面干活,每个人一个分支,之后合并到dev上面就行,要发布时就把dev合并到master分支上即可。
- git stash 把当前工作现场先存起来(不是add也不是commit),可以暂时去做其他事,之后(主要应用场景是当前手头工作没做完不能commit,但是又有紧急的bug需要切换到其他分支上去修复)
- git stash list 查看所有存起来的工作现场
- git stash apply <指定stash> 或者 git stash pop <指定stash> ,两者区别就是前者恢复工作现场后stash list当中并不删除指定stash,而后者就是直接将stash list中的pop出去删除了。
- git remote 查看远程库信息,远程库默认名字是origin, git remote -v 查看更详细的信息
- git push origin <brancName> 将分支推送到远程的branch分支上
- 如果在git clone时不指定branch名称,那么clone下来的只会包含远程的master分支,在这之后如果要切换到远程的某一分支上,例如dev分支,那么就需要 git checkout -b dev origin/dev ,用这个命令创建本地的dev分支,然后就可以在这个dev上修改,并在之后随时push
- 如果多个人同时关联了远程库(多人协作时),在push的时候,发现有人已经向remote推送了他的提交,而你对同样的文件做了修改,那么在push的时候就会报错rejected推送失败,因为有冲突,所以这时候应该git pull拉取最新的提交并(自动地)在本地合并,产生冲突,然后本地解决冲突之后再add、commit,再push。
- git pull 从远程拉取最新的修改到本地并合并,如果有冲突则需要在本地解决。git pull相当于git fetch加上merge
- 接着上面的说,如果本地解决冲突再push上去之后,其他的人是不会自动的获得更新消息的,就是说别人使用git status会提示up to date with origin/,他们需要git fetch或者git pull之后才能获取到远程最新的变动
- git fetch 从远程取回所有分支的更新(但不会自动合并)
- git fetch origin <branchName> 从远程取回branchName分支的更新(但不会自动合并)。使用fetch之后就可以用git status查看到本地和远程之后的变动了。
- git rebase 变基
- git diff <filename> 不带参数就是比较工作区和stage中filename文件的不同
- git diff --cached <filename> 比较stage和repository中filename文件的不同
- git diff HEAD <filename> 比较工作区和repository中filename文件的不同
- 标签
- git add . 只添加当前目录下的更改
- git add -A 添加repository中所有目录下的修改
- 在本地新建一个分支再push到远端: git checkout -b newbranchName 、 git push origin newbranchName
- git cherry-pick <commitid> 、 git cherry-pick <commitid1>..<commitid2> 这里的<commitid>一般来说不是当前分支上的,而是另一个分支上的<commitid>,用于将另一个分支上的提交commit(或者说复制到、摘抄到)到当前分支,详见:git 场景——从一个分支cherry-pick一个或多个commit到另一个分支
git常用命令及用法小计的更多相关文章
- Git常用命令以及用法
		一 如何让单个文件回退到指定的版本 1. 进入到文件所在文件目录,或者能找到文件的路径 查看整个目录的修改记录 git log . 2. 回退到指定的版本 git reset f7a22076 ... 
- Git 常用命令详解
		Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ... 
- Git 常用命令详解(二)
		Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ... 
- 【转】 Git 常用命令详解(二)----不错
		原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ... 
- Git常用命令(转)
		目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 ... 
- - Git常用命令 基础 总结 MD
		目录 目录 Git常用命令 帮助 help 常用操作 初始化 clone init 提交 push 暂存 更新 撤销修改 分支 branch 查看分支 创建分支 切换分支 checkout 删除分支 ... 
- Ubuntu常用命令及git常用命令
		1. CMakeLists.txt中指定OpenCV路径 set(OPENCV_DIR /***/***/opencv-2.4.9) 2. cmake工程编译安装 mkdir build cd bui ... 
- Git 常用命令2
		Git 常用命令 Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ gi ... 
- Git 常用命令 更新与提交
		整理了一下Git 常用命令,这个版本还是比较好用的,最后附上个人终结版,帮助你快速上手. 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone yourgit ... 
随机推荐
- [转]Win7 + Ubuntu 18.04 LTS (Bionic Beaver)双系统安装方法
			这里介绍在win7的基础上,安装ubuntu 18.04 LTS,实现双系统启动. 首先,假设你已安装了windows 7系统. 一. 制作ubuntu U盘启动盘. 方法见http://blog.p ... 
- nginx的反向代理proxy_pass指令
			1. 首先什么是代理服务器?客户机发送请求时,不会直接发送到目的主机,而是先被代理服务器收到,代理服务器收到客服机的请求后,再向目的机发出,目的机就会返回数据给客户机,在返回给客户机之前,会被代理服务 ... 
- jmeter(十二)关联之正则表达式提取器
			如果有这样的情况:一个完整的操作流程,需要先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数): 在jmeter中,可以利用正 ... 
- async源码学习 - 控制流程waterfall函数
			waterfall函数会连续执行数组中的函数,每次通过数组下一个函数的结果.然而,数组任务中的任意一个函数结果传递失败,那么该函数的下一个函数将不会执行,并且主回调函数立马把错误作为参数执行. 以上是 ... 
- [01] AJAX
			1.概述 AJAX,"Asynchronous JavaScript And XML"的简称,即"异步的JavaScript和XML".AJAX的作用在于页面中 ... 
- 安全提示:IIS不要开启“WebDAV”扩展(转载)
			在IIS设置里,有一个“Web服务扩展”的设置,其中包括“WebDAV”扩展.许多人都不明白,这个“WebDAV”扩展是干嘛用的,要不要开启呢?有不少人的想法是“开启吧,以免影响网站运行,启用总比不启 ... 
- bat基础知识
			1.打日志:使用重定向 eg:call test.bat>log/test.log 2.不关闭cmd窗口:使用pause eg: 结果: ps:注意,在自动化运维的时候,比如创建自动发版的脚本的 ... 
- 省市区三级联动,JS实现
			文件下载地址:http://files.cnblogs.com/files/chenwolong/jsAddress.rar 示例截图: 在这里自己记录一个方法: function cmbAddOpt ... 
- 【php增删改查实例】第十九节 - session的使用: 让服务器知道你是谁?
			因为HTTP请求是一种无状态的请求,所谓无状态,就是服务器不会记录下你本次请求的信息.http它是基于请求 - 相应模式的一种数据传输协议.就是说,你发送一个请求,我服务器给你一个响应,这件事情就算完 ... 
- ElasticSearch实践系列(一):安装
			Elasticsearch简介 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎.它允许您快速,近实时地存储,搜索和分析大量数据.它通常用作底层引擎/技术,为具有复杂搜索功能和要求的 ... 
